aboutsummaryrefslogtreecommitdiff
path: root/i386-asm.h
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-05-16 05:58:30 +0200
committerMichael Matz <matz@suse.de>2016-12-15 17:47:05 +0100
commite2f489aaffdc5806a993a04c121a5b75ac08daaf (patch)
tree808d9ca0b42349506dd8c5c362387fdd4739e79b /i386-asm.h
parent4094f7c5fc28c37565bca91ec4f62acfdee63382 (diff)
downloadtinycc-e2f489aaffdc5806a993a04c121a5b75ac08daaf.tar.gz
tinycc-e2f489aaffdc5806a993a04c121a5b75ac08daaf.tar.bz2
x86-asm: Get rid of OPC_JMP and OPC_SHORTJMP
Those two insn types are nicer to handle as operand types, because the pressure for bits on instr_type is higher than for operands.
Diffstat (limited to 'i386-asm.h')
-rw-r--r--i386-asm.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/i386-asm.h b/i386-asm.h
index 338fa69..7a8fb0d 100644
--- a/i386-asm.h
+++ b/i386-asm.h
@@ -200,9 +200,9 @@ ALT(DEF_ASM_OP3(shrdw, 0x0fad, 0, OPC_MODRM | OPC_WLX, OPT_CL, OPT_REGW, OPT_EA
ALT(DEF_ASM_OP2(shrdw, 0x0fad, 0, OPC_MODRM | OPC_WLX, OPT_REGW, OPT_EA | OPT_REGW))
ALT(DEF_ASM_OP1(call, 0xff, 2, OPC_MODRM, OPT_INDIR))
-ALT(DEF_ASM_OP1(call, 0xe8, 0, OPC_JMP, OPT_ADDR))
+ALT(DEF_ASM_OP1(call, 0xe8, 0, 0, OPT_DISP))
ALT(DEF_ASM_OP1(jmp, 0xff, 4, OPC_MODRM, OPT_INDIR))
-ALT(DEF_ASM_OP1(jmp, 0xeb, 0, OPC_SHORTJMP | OPC_JMP, OPT_ADDR))
+ALT(DEF_ASM_OP1(jmp, 0xeb, 0, 0, OPT_DISP8))
ALT(DEF_ASM_OP2(lcall, 0x9a, 0, 0, OPT_IM16, OPT_IM32))
ALT(DEF_ASM_OP1(lcall, 0xff, 3, OPC_MODRM, OPT_EA))
@@ -221,13 +221,13 @@ ALT(DEF_ASM_OP1(ret, 0xc2, 0, 0, OPT_IM16))
DEF_ASM_OP0(lret, 0xcb)
ALT(DEF_ASM_OP1(lret, 0xca, 0, 0, OPT_IM16))
-ALT(DEF_ASM_OP1(jo, 0x70, 0, OPC_SHORTJMP | OPC_JMP_TEST, OPT_ADDR))
- DEF_ASM_OP1(loopne, 0xe0, 0, OPC_SHORTJMP, OPT_ADDR)
- DEF_ASM_OP1(loopnz, 0xe0, 0, OPC_SHORTJMP, OPT_ADDR)
- DEF_ASM_OP1(loope, 0xe1, 0, OPC_SHORTJMP, OPT_ADDR)
- DEF_ASM_OP1(loopz, 0xe1, 0, OPC_SHORTJMP, OPT_ADDR)
- DEF_ASM_OP1(loop, 0xe2, 0, OPC_SHORTJMP, OPT_ADDR)
- DEF_ASM_OP1(jecxz, 0xe3, 0, OPC_SHORTJMP, OPT_ADDR)
+ALT(DEF_ASM_OP1(jo, 0x70, 0, OPC_TEST, OPT_DISP8))
+ DEF_ASM_OP1(loopne, 0xe0, 0, 0, OPT_DISP8)
+ DEF_ASM_OP1(loopnz, 0xe0, 0, 0, OPT_DISP8)
+ DEF_ASM_OP1(loope, 0xe1, 0, 0, OPT_DISP8)
+ DEF_ASM_OP1(loopz, 0xe1, 0, 0, OPT_DISP8)
+ DEF_ASM_OP1(loop, 0xe2, 0, 0, OPT_DISP8)
+ DEF_ASM_OP1(jecxz, 0xe3, 0, 0, OPT_DISP8)
/* float */
/* specific fcomp handling */