From ba701545b217d0b5098ca121b9fb1c2765f0632d Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Fri, 15 Apr 2016 14:23:24 -0500 Subject: [PATCH] Fix assembler bug involving extended immediates. --- src/assembler/instructions.c | 6 ++++-- src/disassembler/mnemonics.c | 2 +- tests/asm/roms.tar.gz | Bin 1488 -> 1488 bytes 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/assembler/instructions.c b/src/assembler/instructions.c index e268ebf..4ba0fc0 100644 --- a/src/assembler/instructions.c +++ b/src/assembler/instructions.c @@ -92,9 +92,11 @@ static ASMErrorDesc parse_inst_##mnemonic( \ } #define INST_IMM_U16_B1(imm) \ - ((imm).is_label ? (*symbol = cr_strdup((imm).label), 0) : (imm).uval >> 8) + ((imm).is_label ? \ + (*symbol = cr_strdup((imm).label), 0) : \ + (imm).uval & 0xFF) #define INST_IMM_U16_B2(imm) \ - ((imm).is_label ? 0 : (imm).uval & 0xFF) + ((imm).is_label ? 0 : (imm).uval >> 8) #define INST_INDEX_PREFIX(n) INST_PREFIX_(INST_INDEX(n).reg) diff --git a/src/disassembler/mnemonics.c b/src/disassembler/mnemonics.c index 42239a8..1dd214c 100644 --- a/src/disassembler/mnemonics.c +++ b/src/disassembler/mnemonics.c @@ -18,7 +18,7 @@ static char* instr_mnemonics[256] = { /* 58 */ "ld", "ld", "ld", "ld", "ld", "ld", "ld", "ld", /* 60 */ "ld", "ld", "ld", "ld", "ld", "ld", "ld", "ld", /* 68 */ "ld", "ld", "ld", "ld", "ld", "ld", "ld", "ld", - /* 70 */ "ld", "ld", "ld", "ld", "ld", "ld", "ld", "ld", + /* 70 */ "ld", "ld", "ld", "ld", "ld", "ld", "halt", "ld", /* 78 */ "ld", "ld", "ld", "ld", "ld", "ld", "ld", "ld", /* 80 */ "add", "add", "add", "add", "add", "add", "add", "add", /* 88 */ "adc", "adc", "adc", "adc", "adc", "adc", "adc", "adc", diff --git a/tests/asm/roms.tar.gz b/tests/asm/roms.tar.gz index 10d3d107b7c0b101830cf5dd1dc4aed4117e4769..d2223edf60946d3784e49df28333736c03c7b7c6 100644 GIT binary patch delta 278 zcmV+x0qOqG3(yM(ABzY8cs>!a2eJfzvS?IQU1yOuqbgDsXFJ9RI~)vK{qZQ7(+Qqw<}j^6F9f@1ycx56ka8EWiJQH?O?;{3}OXuU!7v z(Wig()|I!Ozjt)+^5|<arcJ#~9tE2Ad;KstAzIpvi-@cI+zWRloFq>l@kT>e@<5 cU;kW6sh0o%000000DuecJ;;Og4FIqN0C2gOJ^%m! delta 279 zcmV+y0qFkF3(yM(ABzY8r3eVI2eJfzBBIP2%`Ea}G^&)v*^cqS4hO?le>}=|dw*u% zxUJKfu^-cOoaO~_{2*m7o%^jDt)BZU0001h5A{O3*E_hCy?oH`?cA96FaQ7mz`3}6 z?PjAak8VD^byTMD@8L;(`lx*7sC?(Byn0mr`>6ca!}5C%%kTf-%`0y{|H{!^E0;fZ z^yweHb>*$+?;YK{Jo?(z=RWzF&o9?sdFkzUk4LYKen0xz=+~pyM}HXoeDs^qFGjx` z{dDxJ(H}>@9sP3j>Zm(9xbdfjZ(je>w{N6{uYMsd+@1FalfeNOC4m3J*7`=axw^KJ d($_ziQtBlD00000007{^dk>%+cRm2H1OQ#Xmu>(6