diff options
author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2020-09-15 10:44:46 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:23 -0400 |
commit | 2e319492254e529a2f5673038ec6c3ea44087199 (patch) | |
tree | 4c7eb0334a17f1fbf343ed08a75ec73805125c62 /ujit_asm_tests.c | |
parent | 090255456aa137f28cc254c609ff95fb7fd3d71b (diff) |
Ported xor and cmovcc instructions
Diffstat (limited to 'ujit_asm_tests.c')
-rw-r--r-- | ujit_asm_tests.c | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/ujit_asm_tests.c b/ujit_asm_tests.c index e163404d05..a0e3e07e15 100644 --- a/ujit_asm_tests.c +++ b/ujit_asm_tests.c @@ -94,29 +94,12 @@ void run_tests() cb_set_pos(cb, 0); call(cb, RAX); check_bytes(cb, "FFD0"); cb_set_pos(cb, 0); call(cb, mem_opnd(64, RSP, 8)); check_bytes(cb, "FF542408"); - /* // cmovcc - test( - delegate void (CodeBlock cb) { cb.cmovg(ESI, X86Opnd(EDI)); }, - "0F4FF7" - ); - test( - delegate void (CodeBlock cb) { cb.cmovg(ESI, X86Opnd(32, RBP, 12)); }, - "0F4F750C" - ); - test( - delegate void (CodeBlock cb) { cb.cmovl(EAX, X86Opnd(ECX)); }, - "0F4CC1" - ); - test( - delegate void (CodeBlock cb) { cb.cmovl(RBX, X86Opnd(RBP)); }, - "480F4CDD" - ); - test( - delegate void (CodeBlock cb) { cb.cmovle(ESI, X86Opnd(32, RSP, 4)); }, - "0F4E742404" - ); - */ + cb_set_pos(cb, 0); cmovg(cb, ESI, EDI); check_bytes(cb, "0F4FF7"); + cb_set_pos(cb, 0); cmovg(cb, ESI, mem_opnd(32, RBP, 12)); check_bytes(cb, "0F4F750C"); + cb_set_pos(cb, 0); cmovl(cb, EAX, ECX); check_bytes(cb, "0F4CC1"); + cb_set_pos(cb, 0); cmovl(cb, RBX, RBP); check_bytes(cb, "480F4CDD"); + cb_set_pos(cb, 0); cmovle(cb, ESI, mem_opnd(32, RSP, 4)); check_bytes(cb, "0F4E742404"); // cmp /* @@ -346,13 +329,8 @@ void run_tests() cb_set_pos(cb, 0); sub(cb, EAX, imm_opnd(1)); check_bytes(cb, "83E801"); cb_set_pos(cb, 0); sub(cb, RAX, imm_opnd(2)); check_bytes(cb, "4883E802"); - /* // xor - test( - delegate void (CodeBlock cb) { cb.xor(X86Opnd(EAX), X86Opnd(EAX)); }, - "31C0" - ); - */ + cb_set_pos(cb, 0); xor(cb, EAX, EAX); check_bytes(cb, "31C0"); printf("Assembler tests done\n"); } |