summaryrefslogtreecommitdiff
path: root/nandgame/assembler
diff options
context:
space:
mode:
authoruvok2026-01-05 14:40:19 +0100
committeruvok2026-01-05 14:40:19 +0100
commitc1fdbef01ff06d4d9b518b360ecc1890a17d4c21 (patch)
treea3247d33204b86b71299dbde5907bc625452ac37 /nandgame/assembler
parent572e9f8d21896bf266bd88895dc1056576f6de2c (diff)
disas: Canonocalize AND dest, #0... to mov
Diffstat (limited to 'nandgame/assembler')
-rwxr-xr-xnandgame/assembler/disas.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/nandgame/assembler/disas.py b/nandgame/assembler/disas.py
index 607537a..0256976 100755
--- a/nandgame/assembler/disas.py
+++ b/nandgame/assembler/disas.py
@@ -146,6 +146,12 @@ def fixup_ins(ins: int) -> list[str]:
# all other jumps? <=, >=, =, <=>
else:
return ["jmp", "", "", "", ""]
+ if mnemonic == "and" and op1 == ZERO:
+ if jumpdest in ["jgt", "jlt", "jne", JUMP_NONE]:
+ newjmp = ""
+ else:
+ newjmp = "jmp"
+ return ["mov", dest, ZERO, "", newjmp]
return [mnemonic, dest, op1, op2, jumpdest]