diff --git a/src/isa-thumb.c b/src/isa-thumb.c index 1ab59cb61..8464a3f71 100644 --- a/src/isa-thumb.c +++ b/src/isa-thumb.c @@ -157,15 +157,22 @@ DEFINE_INSTRUCTION_WITH_HIGH_THUMB(MOV3, ) DEFINE_LOAD_WITH_IMMEDIATE_THUMB(LDR, ) -#define DEFINE_STORE_WITH_IMMEDIATE_EX_THUMB(NAME, RM, BODY) \ +#define DEFINE_LOAD_STORE_WITH_REGISTER_EX_THUMB(NAME, RM, BODY) \ DEFINE_INSTRUCTION_THUMB(NAME, \ - int rd = RM; \ + int rm = RM; \ BODY;) -#define DEFINE_STORE_WITH_IMMEDIATE_THUMB(NAME, BODY) \ - COUNT_3(DEFINE_STORE_WITH_IMMEDIATE_EX_THUMB, NAME ## 2_R, BODY) +#define DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(NAME, BODY) \ + COUNT_3(DEFINE_LOAD_STORE_WITH_REGISTER_EX_THUMB, NAME ## _R, BODY) -DEFINE_STORE_WITH_IMMEDIATE_THUMB(STR, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(LDR2, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(LDRB2, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(LDRH2, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(LDRSB, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(LDRSH, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(STR2, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(STRB2, ) +DEFINE_LOAD_STORE_WITH_REGISTER_THUMB(STRH2, ) DEFINE_INSTRUCTION_THUMB(ILL, ) DEFINE_INSTRUCTION_THUMB(BX, ) @@ -222,7 +229,14 @@ DEFINE_INSTRUCTION_THUMB(BX, ) DECLARE_INSTRUCTION_THUMB(EMITTER, ILL), \ DECLARE_INSTRUCTION_THUMB(EMITTER, ILL), \ APPLY(COUNT_3, DUMMY_4, DECLARE_INSTRUCTION_THUMB(EMITTER, LDR3_R)) \ - APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, STR2_R)) + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, STR2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, STRH2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, STRB2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, LDRSB_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, LDR2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, LDRH2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, LDRB2_R)) \ + APPLY(COUNT_3, DUMMY, DECLARE_INSTRUCTION_THUMB(EMITTER, LDRSH_R)) static const ThumbInstruction _thumbTable[0x400] = { DECLARE_THUMB_EMITTER_BLOCK(_ThumbInstruction)