@@ -205,16 +205,21 @@ void asm_x64_call_ind(asm_x64_t *as, size_t fun_id, int temp_r32);
205205#define ASM_SUB_REG_REG (as , reg_dest , reg_src ) asm_x64_sub_r64_r64((as), (reg_dest), (reg_src))
206206#define ASM_MUL_REG_REG (as , reg_dest , reg_src ) asm_x64_mul_r64_r64((as), (reg_dest), (reg_src))
207207
208- #define ASM_LOAD_REG_REG_OFFSET (as , reg_dest , reg_base , word_offset ) asm_x64_mov_mem64_to_r64((as), (reg_base), 8 * (word_offset), (reg_dest))
209- #define ASM_LOAD8_REG_REG (as , reg_dest , reg_base ) asm_x64_mov_mem8_to_r64zx((as), (reg_base), 0, (reg_dest))
210- #define ASM_LOAD16_REG_REG (as , reg_dest , reg_base ) asm_x64_mov_mem16_to_r64zx((as), (reg_base), 0, (reg_dest))
211- #define ASM_LOAD16_REG_REG_OFFSET (as , reg_dest , reg_base , uint16_offset ) asm_x64_mov_mem16_to_r64zx((as), (reg_base), 2 * (uint16_offset), (reg_dest))
212- #define ASM_LOAD32_REG_REG (as , reg_dest , reg_base ) asm_x64_mov_mem32_to_r64zx((as), (reg_base), 0, (reg_dest))
213-
214- #define ASM_STORE_REG_REG_OFFSET (as , reg_src , reg_base , word_offset ) asm_x64_mov_r64_to_mem64((as), (reg_src), (reg_base), 8 * (word_offset))
215- #define ASM_STORE8_REG_REG (as , reg_src , reg_base ) asm_x64_mov_r8_to_mem8((as), (reg_src), (reg_base), 0)
216- #define ASM_STORE16_REG_REG (as , reg_src , reg_base ) asm_x64_mov_r16_to_mem16((as), (reg_src), (reg_base), 0)
217- #define ASM_STORE32_REG_REG (as , reg_src , reg_base ) asm_x64_mov_r32_to_mem32((as), (reg_src), (reg_base), 0)
208+ #define ASM_LOAD_REG_REG_OFFSET (as , reg_dest , reg_base , qword_offset ) asm_x64_mov_mem64_to_r64((as), (reg_base), 8 * (qword_offset), (reg_dest))
209+ #define ASM_LOAD8_REG_REG (as , reg_dest , reg_base ) ASM_LOAD8_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
210+ #define ASM_LOAD8_REG_REG_OFFSET (as , reg_dest , reg_base , byte_offset ) asm_x64_mov_mem8_to_r64zx((as), (reg_base), (byte_offset), (reg_dest))
211+ #define ASM_LOAD16_REG_REG (as , reg_dest , reg_base ) ASM_LOAD16_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
212+ #define ASM_LOAD16_REG_REG_OFFSET (as , reg_dest , reg_base , word_offset ) asm_x64_mov_mem16_to_r64zx((as), (reg_base), 2 * (word_offset), (reg_dest))
213+ #define ASM_LOAD32_REG_REG (as , reg_dest , reg_base ) ASM_LOAD32_REG_REG_OFFSET((as), (reg_dest), (reg_base), 0)
214+ #define ASM_LOAD32_REG_REG_OFFSET (as , reg_dest , reg_base , dword_offset ) asm_x64_mov_mem32_to_r64zx((as), (reg_base), 4 * (dword_offset), (reg_dest))
215+
216+ #define ASM_STORE_REG_REG_OFFSET (as , reg_src , reg_base , qword_offset ) asm_x64_mov_r64_to_mem64((as), (reg_src), (reg_base), 8 * (qword_offset))
217+ #define ASM_STORE8_REG_REG (as , reg_src , reg_base ) ASM_STORE8_REG_REG_OFFSET((as), (reg_src), (reg_base), 0)
218+ #define ASM_STORE8_REG_REG_OFFSET (as , reg_src , reg_base , byte_offset ) asm_x64_mov_r8_to_mem8((as), (reg_src), (reg_base), (byte_offset))
219+ #define ASM_STORE16_REG_REG (as , reg_src , reg_base ) ASM_STORE16_REG_REG_OFFSET((as), (reg_src), (reg_base), 0)
220+ #define ASM_STORE16_REG_REG_OFFSET (as , reg_src , reg_base , word_offset ) asm_x64_mov_r16_to_mem16((as), (reg_src), (reg_base), 2 * (word_offset))
221+ #define ASM_STORE32_REG_REG (as , reg_src , reg_base ) ASM_STORE32_REG_REG_OFFSET((as), (reg_src), (reg_base), 0)
222+ #define ASM_STORE32_REG_REG_OFFSET (as , reg_src , reg_base , dword_offset ) asm_x64_mov_r32_to_mem32((as), (reg_src), (reg_base), 4 * (dword_offset))
218223
219224#endif // GENERIC_ASM_API
220225
0 commit comments