diff options
author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2020-09-10 10:57:29 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:23 -0400 |
commit | efcaa49a7be1ea016a57bed5080c02df3f88f884 (patch) | |
tree | 3751b990d163c75566a9ebb47e7502c631941f22 /ujit_asm.h | |
parent | 1392a6f2a499f7400320b87d0bf53d3ef0e26d93 (diff) |
Added sub instruction, 32-bit registers, more tests
Diffstat (limited to 'ujit_asm.h')
-rw-r--r-- | ujit_asm.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/ujit_asm.h b/ujit_asm.h index 1f8ed35f8f..bc93b1e360 100644 --- a/ujit_asm.h +++ b/ujit_asm.h @@ -149,6 +149,24 @@ const x86opnd_t R13; const x86opnd_t R14; const x86opnd_t R15; +// 32-bit GP registers +const x86opnd_t EAX; +const x86opnd_t ECX; +const x86opnd_t EDX; +const x86opnd_t EBX; +const x86opnd_t EBP; +const x86opnd_t ESP; +const x86opnd_t ESI; +const x86opnd_t EDI; +const x86opnd_t R8D; +const x86opnd_t R9D; +const x86opnd_t R10D; +const x86opnd_t R11D; +const x86opnd_t R12D; +const x86opnd_t R13D; +const x86opnd_t R14D; +const x86opnd_t R15D; + // Memory operand with base register and displacement/offset x86opnd_t mem_opnd(size_t num_bits, x86opnd_t base_reg, int32_t disp); @@ -170,16 +188,12 @@ void cb_write_epilogue(codeblock_t* cb); void add(codeblock_t* cb, x86opnd_t opnd0, x86opnd_t opnd1); void call(codeblock_t* cb, x86opnd_t opnd); void jmp(codeblock_t* cb, x86opnd_t opnd); +void lea(codeblock_t* cb, x86opnd_t dst, x86opnd_t src); void mov(codeblock_t* cb, x86opnd_t dst, x86opnd_t src); void nop(codeblock_t* cb, size_t length); void push(codeblock_t* cb, x86opnd_t reg); void pop(codeblock_t* cb, x86opnd_t reg); void ret(codeblock_t* cb); - - - - - - +void sub(codeblock_t* cb, x86opnd_t opnd0, x86opnd_t opnd1); #endif |