From 71c68fe79f380fa6e1a33809752d5a912dca75c6 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Fri, 12 Apr 2013 19:59:55 -0700 Subject: [PATCH] Implement ADD(6) --- src/isa-thumb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/isa-thumb.c b/src/isa-thumb.c index 5b29a9b97..084cf501e 100644 --- a/src/isa-thumb.c +++ b/src/isa-thumb.c @@ -170,6 +170,7 @@ DEFINE_INSTRUCTION_WITH_HIGH_THUMB(MOV3, cpu->gprs[rd] = cpu->gprs[rm]) #define DEFINE_IMMEDIATE_WITH_REGISTER_EX_THUMB(NAME, RD, BODY) \ DEFINE_INSTRUCTION_THUMB(NAME, \ int rd = RD; \ + int immediate = (opcode & 0x00FF) << 2; \ BODY;) #define DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(NAME, BODY) \ @@ -180,7 +181,7 @@ DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(LDR4, ARM_STUB) DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(STR3, ARM_STUB) DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(ADD5, ARM_STUB) -DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(ADD6, ARM_STUB) +DEFINE_IMMEDIATE_WITH_REGISTER_THUMB(ADD6, cpu->gprs[rd] = cpu->gprs[ARM_SP] + immediate) #define DEFINE_LOAD_STORE_WITH_REGISTER_EX_THUMB(NAME, RM, BODY) \ DEFINE_INSTRUCTION_THUMB(NAME, \