diff options
| author | Miquel Sabaté Solà <mssola@mssola.com> | 2026-04-24 12:53:22 +0200 |
|---|---|---|
| committer | Miquel Sabaté Solà <mssola@mssola.com> | 2026-04-24 12:53:22 +0200 |
| commit | f89306f26f7fe26d7553c11111d49d971b174cea (patch) | |
| tree | c52a459e312e760b62cfafcb0ec4d07c184c4cc9 /README.md | |
| parent | 7c01c29cec6f5fcc94abcd154c47d2c78f765a78 (diff) | |
| download | tools.nes-f89306f26f7fe26d7553c11111d49d971b174cea.tar.gz tools.nes-f89306f26f7fe26d7553c11111d49d971b174cea.zip | |
Fix calls with arguments containing addresses
Some macro calls could contain addresses, like this:
MACRO_CALL @address
Before this commit this was resolved at the "crunch" stage, but only
because we were grabbing the value from the part that was not
resolved. However, if this unresolved object came from a node which is
not just a value (e.g. an arithmetic operation), then it just applied
the computation from before the "crunch" stage. So, for something like
this:
MACRO_CALL @address + 1
the argument would have been computed as simply "1", as that unresolved
object only contained the "+ 1" known part.
Fix this by re-evaluating the node at "crunch" stage whenever we have an
attached "node" member to the given pending definition. This way, we can
evaluate the full node and get the proper value from the arithmetic
computation.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions
