mirror of
https://github.com/ksherlock/x65.git
synced 2025-02-11 10:30:49 +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
e658b0c03d
commit
b8d37be3ef
Binary file not shown.
BIN
bin/x65_x64.zip
BIN
bin/x65_x64.zip
Binary file not shown.
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