From a3717e6ce05a17b837e3027e021cc123f017ae23 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 27 Dec 1999 16:10:31 +0000 Subject: x86 indirect jump/call syntax fixes. Disassembly fix for lcall. --- include/opcode/ChangeLog | 5 +++++ include/opcode/i386.h | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index f1038dccd..fb573ccdb 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +1999-12-27 Alan Modra + + * i386.h: Add JumpAbsolute qualifier to all non-intel mode + indirect jumps and calls. Add FF/3 call for intel mode. + Wed Dec 1 03:05:25 1999 Jeffrey A Law (law@cygnus.com) * mn10300.h: Add new operand types. Add new instruction formats. diff --git a/include/opcode/i386.h b/include/opcode/i386.h index 7e3a56464..c5f6217d4 100644 --- a/include/opcode/i386.h +++ b/include/opcode/i386.h @@ -315,17 +315,20 @@ static const template i386_optab[] = { {"call", 1, 0xff, 2, wl_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} }, /* Intel Syntax */ {"call", 2, 0x9a, X, wl_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} }, +/* Intel Syntax */ +{"call", 1, 0xff, 3, wl_Suf|Modrm|DefaultSize, { WordMem, 0, 0} }, {"lcall", 2, 0x9a, X, wl_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} }, -{"lcall", 1, 0xff, 3, wl_Suf|Modrm|DefaultSize, { WordMem, 0, 0} }, +{"lcall", 1, 0xff, 3, wl_Suf|Modrm|DefaultSize, { WordMem|JumpAbsolute, 0, 0} }, #define JUMP_PC_RELATIVE 0xeb {"jmp", 1, 0xeb, X, NoSuf|Jump, { Disp, 0, 0} }, {"jmp", 1, 0xff, 4, wl_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} }, /* Intel Syntax */ {"jmp", 2, 0xea, X, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} }, +/* Intel Syntax */ {"jmp", 1, 0xff, 5, wl_Suf|Modrm, { WordMem, 0, 0} }, {"ljmp", 2, 0xea, X, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} }, -{"ljmp", 1, 0xff, 5, wl_Suf|Modrm, { WordMem, 0, 0} }, +{"ljmp", 1, 0xff, 5, wl_Suf|Modrm, { WordMem|JumpAbsolute, 0, 0} }, {"ret", 0, 0xc3, X, wl_Suf|DefaultSize, { 0, 0, 0} }, {"ret", 1, 0xc2, X, wl_Suf|DefaultSize, { Imm16, 0, 0} }, -- cgit v1.2.3