diff options
| author | uvok | 2026-01-05 14:40:19 +0100 |
|---|---|---|
| committer | uvok | 2026-01-05 14:40:19 +0100 |
| commit | c1fdbef01ff06d4d9b518b360ecc1890a17d4c21 (patch) | |
| tree | a3247d33204b86b71299dbde5907bc625452ac37 /nandgame | |
| parent | 572e9f8d21896bf266bd88895dc1056576f6de2c (diff) | |
disas: Canonocalize AND dest, #0... to mov
Diffstat (limited to 'nandgame')
| -rwxr-xr-x | nandgame/assembler/disas.py | 6 |
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] |
