mirror of
https://github.com/ksherlock/x65.git
synced 2026-04-20 11:18:21 +00:00
Pool labels of even 16ths would be re-reserved due to a left-right bug
- Shifted left when I should have shifted right.
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -3982,6 +3982,7 @@ StatusCode Asm::AssignPoolLabel(LabelPool &pool, strref label)
|
||||
pLabel->reference = false;
|
||||
|
||||
MarkLabelLocal(label, true);
|
||||
LabelAdded(pLabel, !!pool.scopeDepth);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -4014,7 +4015,7 @@ StatusCode LabelPool::Reserve(int numBytes, unsigned int &ret_addr)
|
||||
for (int b = 0; b<numBytes; b++) {
|
||||
*addr_map |= m;
|
||||
unsigned int _m = m << 2;
|
||||
if (!_m) { m <<= 30; addr_map++; } else { m = _m; }
|
||||
if (!_m) { m >>= 30; addr_map++; } else { m = _m; }
|
||||
}
|
||||
ret_addr = addr;
|
||||
return STATUS_OK;
|
||||
|
||||
Reference in New Issue
Block a user