mirror of
https://github.com/ksherlock/x65.git
synced 2025-01-15 17:31:19 +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:
parent
5b9e5f6d46
commit
60780a514a
3
x65.cpp
3
x65.cpp
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user