BR 2017453: indirect jumps in 64-bit mode are implicitly 64 bits

Indirect jumps in 64-bit mode implicitly have 64-bit operand size.
Fix this; the disassembly is still unnecessarily ugly, however.
This commit is contained in:
H. Peter Anvin 2008-07-13 15:21:01 -07:00
parent 570b1c12b6
commit 96a6954db4
2 changed files with 8 additions and 4 deletions

View file

@ -219,11 +219,11 @@ CALL mem32|near \321\1\xFF\202 386,NOLONG
CALL mem64|near \324\1\xFF\202 X64
CALL reg16 \320\1\xFF\202 8086
CALL reg32 \321\1\xFF\202 386,NOLONG
CALL reg64 \324\1\xFF\202 X64
CALL reg64 \323\1\xFF\202 X64
CALL mem \322\1\xFF\202 8086
CALL mem16 \320\1\xFF\202 8086
CALL mem32 \321\1\xFF\202 386,NOLONG
CALL mem64 \324\1\xFF\202 X64
CALL mem64 \323\1\xFF\202 X64
CBW void \320\1\x98 8086
CDQ void \321\1\x99 386
CDQE void \324\1\x98 X64
@ -638,14 +638,14 @@ JMP mem32|far \321\1\xFF\205 386
JMP mem|near \322\1\xFF\204 8086
JMP mem16|near \320\1\xFF\204 8086
JMP mem32|near \321\1\xFF\204 386,NOLONG
JMP mem64|near \324\1\xFF\204 X64
JMP mem64|near \323\1\xFF\204 X64
JMP reg16 \320\1\xFF\204 8086
JMP reg32 \321\1\xFF\204 386,NOLONG
JMP reg64 \324\1\xFF\204 X64
JMP mem \322\1\xFF\204 8086
JMP mem16 \320\1\xFF\204 8086
JMP mem32 \321\1\xFF\204 386,NOLONG
JMP mem64 \324\1\xFF\204 X64
JMP mem64 \323\1\xFF\204 X64
JMPE imm \322\2\x0F\xB8\64 IA64
JMPE imm16 \320\2\x0F\xB8\64 IA64
JMPE imm32 \321\2\x0F\xB8\64 IA64

4
test/jmp64.asm Normal file
View file

@ -0,0 +1,4 @@
bits 64
jmp rcx
call [rax]
call qword [rdx]