Clean up JMP/CALL patterns, especially for 64 bits

Clean up JMP/CALL patterns so they don't disassemble quite so uglily.
Fix a CALL pattern which would have incorrectly generated a (harmless)
REX.W prefix.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin 2012-02-25 12:05:53 -08:00
parent b496c68f91
commit c3bfc7f643
2 changed files with 15 additions and 8 deletions

View file

@ -244,16 +244,17 @@ CALL mem|far [m: o64 ff /3] X64
CALL mem16|far [m: o16 ff /3] 8086
CALL mem32|far [m: o32 ff /3] 386
CALL mem64|far [m: o64 ff /3] X64
CALL mem|near [m: odf ff /2] 8086
CALL mem16|near [m: o16 ff /2] 8086
CALL mem32|near [m: o32 ff /2] 386,NOLONG
CALL mem64|near [m: o64 ff /2] X64
CALL mem|near [m: odf ff /2] 8086,ND
CALL mem16|near [m: o16 ff /2] 8086,ND
CALL mem32|near [m: o32 ff /2] 386,NOLONG,ND
CALL mem64|near [m: o64nw ff /2] X64,ND
CALL reg16 [m: o16 ff /2] 8086
CALL reg32 [m: o32 ff /2] 386,NOLONG
CALL reg64 [m: o64nw ff /2] X64
CALL mem [m: odf ff /2] 8086
CALL mem16 [m: o16 ff /2] 8086
CALL mem32 [m: o32 ff /2] 386,NOLONG
CALL mem [m: o64nw ff /2] X64
CALL mem64 [m: o64nw ff /2] X64
CBW void [ o16 98] 8086
CDQ void [ o32 99] 386
@ -672,16 +673,17 @@ JMP mem|far [m: o64 ff /5] X64
JMP mem16|far [m: o16 ff /5] 8086
JMP mem32|far [m: o32 ff /5] 386
JMP mem64|far [m: o64 ff /5] X64
JMP mem|near [m: odf ff /4] 8086
JMP mem16|near [m: o16 ff /4] 8086
JMP mem32|near [m: o32 ff /4] 386,NOLONG
JMP mem64|near [m: o64nw ff /4] X64
JMP mem|near [m: odf ff /4] 8086,ND
JMP mem16|near [m: o16 ff /4] 8086,ND
JMP mem32|near [m: o32 ff /4] 386,NOLONG,ND
JMP mem64|near [m: o64nw ff /4] X64,ND
JMP reg16 [m: o16 ff /4] 8086
JMP reg32 [m: o32 ff /4] 386,NOLONG
JMP reg64 [m: o64nw ff /4] X64
JMP mem [m: odf ff /4] 8086
JMP mem16 [m: o16 ff /4] 8086
JMP mem32 [m: o32 ff /4] 386,NOLONG
JMP mem [m: o64nw ff /4] X64
JMP mem64 [m: o64nw ff /4] X64
JMPE imm [i: odf 0f b8 rel] IA64
JMPE imm16 [i: o16 0f b8 rel] IA64
@ -3316,6 +3318,7 @@ VPGATHERDQ ymmreg,mem64,ymmreg [rmv: vm32x vex.dds.256.66.0f38.w1 90 /r] FUTURE
VPGATHERQQ ymmreg,mem64,ymmreg [rmv: vm64y vex.dds.256.66.0f38.w1 91 /r] FUTURE,AVX2
;# Transactional Synchronization Extensions (TSX)
XABORT imm [i: c6 f8 ib] FUTURE,RTM
XABORT imm8 [i: c6 f8 ib] FUTURE,RTM
XBEGIN imm [i: odf c7 f8 rel] FUTURE,RTM
XBEGIN imm|near [i: odf c7 f8 rel] FUTURE,RTM

View file

@ -4,12 +4,16 @@
jmp rcx
jmp [rax]
jmp qword [rax]
jmp near [rax]
jmp near qword [rax]
jmp far [rax]
jmp far dword [rax]
jmp far qword [rax]
call rcx
call [rax]
call qword [rax]
call near [rax]
call near qword [rax]
call far [rax]
call far dword [rax]
call far qword [rax]