summaryrefslogtreecommitdiff
path: root/ujit_asm.h
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2020-09-10 10:57:29 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:23 -0400
commitefcaa49a7be1ea016a57bed5080c02df3f88f884 (patch)
tree3751b990d163c75566a9ebb47e7502c631941f22 /ujit_asm.h
parent1392a6f2a499f7400320b87d0bf53d3ef0e26d93 (diff)
Added sub instruction, 32-bit registers, more tests
Diffstat (limited to 'ujit_asm.h')
-rw-r--r--ujit_asm.h26
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