summaryrefslogtreecommitdiff
path: root/ujit_asm.h
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2020-10-02 12:12:28 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:24 -0400
commite3cd43e2bc44fdd358f8ea1c373125ce4320f972 (patch)
treeac46bb8422210074d029f126a365856041908cb1 /ujit_asm.h
parent4e9a62c963292cec76c6011e9e18987f64d8257d (diff)
Implemented opt_minus in MicroJIT
Diffstat (limited to 'ujit_asm.h')
-rw-r--r--ujit_asm.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/ujit_asm.h b/ujit_asm.h
index baeadc75b0..a52a9691df 100644
--- a/ujit_asm.h
+++ b/ujit_asm.h
@@ -225,6 +225,14 @@ x86opnd_t const_ptr_opnd(void* ptr);
offsetof(struct_type, member_name) \
)
+// Struct member operand with an array index
+#define member_opnd_idx(base_reg, struct_type, member_name, idx) mem_opnd( \
+ 8 * sizeof(((struct_type*)0)->member_name), \
+ base_reg, \
+ (offsetof(struct_type, member_name) + \
+ sizeof(((struct_type*)0)->member_name) * idx) \
+)
+
// Code block methods
uint8_t* alloc_exec_mem(size_t mem_size);
void cb_init(codeblock_t* cb, uint8_t* mem_block, size_t mem_size);