From 96a6954db416d12be722fb127dcb98ea9fd563fd Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sun, 13 Jul 2008 15:21:01 -0700 Subject: [PATCH] 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. --- insns.dat | 8 ++++---- test/jmp64.asm | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 test/jmp64.asm diff --git a/insns.dat b/insns.dat index 2dc540ff..58247ce9 100644 --- a/insns.dat +++ b/insns.dat @@ -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 diff --git a/test/jmp64.asm b/test/jmp64.asm new file mode 100644 index 00000000..440551f7 --- /dev/null +++ b/test/jmp64.asm @@ -0,0 +1,4 @@ + bits 64 + jmp rcx + call [rax] + call qword [rdx] -- 2.11.4.GIT