@@ -110,12 +110,11 @@ void asm_arm_asr_reg_reg(asm_arm_t *as, uint rd, uint rs);
110110
111111// memory
112112void asm_arm_ldr_reg_reg_offset (asm_arm_t * as , uint rd , uint rn , uint byte_offset );
113- void asm_arm_ldrh_reg_reg (asm_arm_t * as , uint rd , uint rn );
114113void asm_arm_ldrh_reg_reg_offset (asm_arm_t * as , uint rd , uint rn , uint byte_offset );
115- void asm_arm_ldrb_reg_reg (asm_arm_t * as , uint rd , uint rn );
114+ void asm_arm_ldrb_reg_reg_offset (asm_arm_t * as , uint rd , uint rn , uint byte_offset );
116115void asm_arm_str_reg_reg_offset (asm_arm_t * as , uint rd , uint rm , uint byte_offset );
117- void asm_arm_strh_reg_reg (asm_arm_t * as , uint rd , uint rm );
118- void asm_arm_strb_reg_reg (asm_arm_t * as , uint rd , uint rm );
116+ void asm_arm_strh_reg_reg_offset (asm_arm_t * as , uint rd , uint rm , uint byte_offset );
117+ void asm_arm_strb_reg_reg_offset (asm_arm_t * as , uint rd , uint rm , uint byte_offset );
119118
120119// load from array
121120void asm_arm_ldr_reg_reg_reg (asm_arm_t * as , uint rd , uint rm , uint rn );
@@ -209,16 +208,19 @@ void asm_arm_bx_reg(asm_arm_t *as, uint reg_src);
209208#define ASM_MUL_REG_REG (as , reg_dest , reg_src ) asm_arm_mul_reg_reg_reg((as), (reg_dest), (reg_dest), (reg_src))
210209
211210#define ASM_LOAD_REG_REG_OFFSET (as , reg_dest , reg_base , word_offset ) ASM_LOAD32_REG_REG_OFFSET((as), (reg_dest), (reg_base), (word_offset))
212- #define ASM_LOAD8_REG_REG (as , reg_dest , reg_base ) asm_arm_ldrb_reg_reg((as), (reg_dest), (reg_base))
213- #define ASM_LOAD16_REG_REG (as , reg_dest , reg_base ) asm_arm_ldrh_reg_reg((as), (reg_dest), (reg_base))
214- #define ASM_LOAD16_REG_REG_OFFSET (as , reg_dest , reg_base , uint16_offset ) asm_arm_ldrh_reg_reg_offset((as), (reg_dest), (reg_base), 2 * (uint16_offset))
215- #define ASM_LOAD32_REG_REG (as , reg_dest , reg_base ) asm_arm_ldr_reg_reg_offset((as), (reg_dest), (reg_base), 0)
211+ #define ASM_LOAD8_REG_REG (as , reg_dest , reg_base ) ASM_LOAD8_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
212+ #define ASM_LOAD8_REG_REG_OFFSET (as , reg_dest , reg_base , byte_offset ) asm_arm_ldrb_reg_reg_offset((as), (reg_dest), (reg_base), (byte_offset))
213+ #define ASM_LOAD16_REG_REG (as , reg_dest , reg_base ) ASM_LOAD16_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
214+ #define ASM_LOAD16_REG_REG_OFFSET (as , reg_dest , reg_base , halfword_offset ) asm_arm_ldrh_reg_reg_offset((as), (reg_dest), (reg_base), 2 * (halfword_offset))
215+ #define ASM_LOAD32_REG_REG (as , reg_dest , reg_base ) ASM_LOAD32_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
216216#define ASM_LOAD32_REG_REG_OFFSET (as , reg_dest , reg_base , word_offset ) asm_arm_ldr_reg_reg_offset((as), (reg_dest), (reg_base), 4 * (word_offset))
217217
218218#define ASM_STORE_REG_REG_OFFSET (as , reg_value , reg_base , word_offset ) ASM_STORE32_REG_REG_OFFSET((as), (reg_value), (reg_base), (word_offset))
219- #define ASM_STORE8_REG_REG (as , reg_value , reg_base ) asm_arm_strb_reg_reg((as), (reg_value), (reg_base))
220- #define ASM_STORE16_REG_REG (as , reg_value , reg_base ) asm_arm_strh_reg_reg((as), (reg_value), (reg_base))
221- #define ASM_STORE32_REG_REG (as , reg_value , reg_base ) asm_arm_str_reg_reg_offset((as), (reg_value), (reg_base), 0)
219+ #define ASM_STORE8_REG_REG (as , reg_value , reg_base ) ASM_STORE8_REG_REG_OFFSET((as), (reg_value), (reg_base), 0)
220+ #define ASM_STORE8_REG_REG_OFFSET (as , reg_value , reg_base , byte_offset ) asm_arm_strb_reg_reg_offset((as), (reg_value), (reg_base), (byte_offset))
221+ #define ASM_STORE16_REG_REG (as , reg_value , reg_base ) ASM_STORE16_REG_REG_OFFSET((as), (reg_value), (reg_base), 0)
222+ #define ASM_STORE16_REG_REG_OFFSET (as , reg_value , reg_base , halfword_offset ) asm_arm_strh_reg_reg_offset((as), (reg_value), (reg_base), 2 * (halfword_offset))
223+ #define ASM_STORE32_REG_REG (as , reg_value , reg_base ) ASM_STORE32_REG_REG_OFFSET((as), (reg_value), (reg_base), 0)
222224#define ASM_STORE32_REG_REG_OFFSET (as , reg_value , reg_base , word_offset ) asm_arm_str_reg_reg_offset((as), (reg_value), (reg_base), 4 * (word_offset))
223225
224226#define ASM_LOAD8_REG_REG_REG (as , reg_dest , reg_base , reg_index ) asm_arm_ldrb_reg_reg_reg((as), (reg_dest), (reg_base), (reg_index))
0 commit comments