mirror of
https://github.com/byteworksinc/Linker.git
synced 2024-12-17 16:29:27 +00:00
Allow 2-byte RELEXPR records to be used for branches of + or - 64KB.
Previously, the linker gave an error if the relative displacement was more than + or - 32 KB. But 2-byte RELEXPR records are typically used for the operand of the BRL instruction, and since its address calculation wraps around within the program bank, it can effectively address + or - 64KB (i.e. any location within the program bank). Similar reasoning applies to PER, the other instruction using long relative addressing. This would give an error in code like the following: bigbrl start brl later ds 33000 ; realistic examples would have actual code here later rtl end (This currently also gives an assembler error due to similar logic in ORCA/M, but the output file can be linked anyway.) This issue can affect very large functions compiled with ORCA/C or ORCA/Pascal, which may sometimes have branches that go more than 32 KB forward or back.
This commit is contained in:
parent
42734c7433
commit
76ba56a36b
Loading…
Reference in New Issue
Block a user