mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-21 18:52:07 +00:00
Add flag to rgbasm to disable LD->LDH optimization
rgbasm tries to optimize any loads from/to $FF00-$FFFF and generate LDH 2-byte opcodes instead of regular LD 3-byte opcodes. This is a bit inconsistent as it only works for constant values. If a load is trying to access a label in a HRAM floating section, or a section found in a different object file, this optimization doesn't work. This means that a simple refactor or code could allow rgbasm to perform the optimzation or prevent it from doing so. For certain projects, like disassemblies, this is a problem. This patch adds flag -L to rgbasm to disable the optimization, and doesn't change the behaviour of any other existing code. Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
.\"
|
||||
.\" SPDX-License-Identifier: MIT
|
||||
.\"
|
||||
.Dd January 27, 2018
|
||||
.Dd February 24, 2018
|
||||
.Dt RGBASM 5
|
||||
.Os RGBDS Manual
|
||||
.Sh NAME
|
||||
@@ -110,7 +110,13 @@ and
|
||||
.Sy LDH A,[$FF00+n8]
|
||||
syntax instead.
|
||||
This forces the assembler to emit the correct instruction and the linker to
|
||||
check if the value is in the correct range.
|
||||
check if the value is in the correct range. This optimization can be disabled
|
||||
by passing the
|
||||
.Fl L
|
||||
flag to
|
||||
.Sy rgbasm
|
||||
as explained in
|
||||
.Xr rgbasm 1 .
|
||||
.El
|
||||
.Pp
|
||||
A section is usually defined as a floating one, but the code can restrict where
|
||||
|
||||
Reference in New Issue
Block a user