BR 2039212: Handle indirect far jumps in 64-bit mode

Handle indirect far jumps in 64-bit mode.  Default to 64 bit unless
overridden, for consistency with other jumps.
This commit is contained in:
H. Peter Anvin 2008-08-28 17:35:25 -07:00
parent 5eff8912bc
commit 7b4dc622c6
2 changed files with 16 additions and 2 deletions

View file

@ -210,9 +210,11 @@ CALL imm16:imm \320\1\x9A\31\30 8086,NOLONG
CALL imm:imm16 \320\1\x9A\31\30 8086,NOLONG
CALL imm32:imm \321\1\x9A\41\30 386,NOLONG
CALL imm:imm32 \321\1\x9A\41\30 386,NOLONG
CALL mem|far \322\1\xFF\203 8086
CALL mem|far \322\1\xFF\203 8086,NOLONG
CALL mem|far \324\1\xFF\203 X64
CALL mem16|far \320\1\xFF\203 8086
CALL mem32|far \321\1\xFF\203 386
CALL mem64|far \324\1\xFF\203 X64
CALL mem|near \322\1\xFF\202 8086
CALL mem16|near \320\1\xFF\202 8086
CALL mem32|near \321\1\xFF\202 386,NOLONG
@ -632,9 +634,11 @@ JMP imm16:imm \320\1\xEA\31\30 8086,NOLONG
JMP imm:imm16 \320\1\xEA\31\30 8086,NOLONG
JMP imm32:imm \321\1\xEA\41\30 386,NOLONG
JMP imm:imm32 \321\1\xEA\41\30 386,NOLONG
JMP mem|far \322\1\xFF\205 8086
JMP mem|far \322\1\xFF\205 8086,NOLONG
JMP mem|far \324\1\xFF\205 X64
JMP mem16|far \320\1\xFF\205 8086
JMP mem32|far \321\1\xFF\205 386
JMP mem64|far \324\1\xFF\205 X64
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

10
test/far64.asm Normal file
View file

@ -0,0 +1,10 @@
;Testname=test; Arguments=-fbin -ofar64.bin; Files=.stdout .stderr far64.bin
; BR 2039212
bits 64
call qword far [rax]
jmp qword far [rax]
call dword far [rax]
jmp dword far [rax]
call far [rax]
jmp far [rax]