x86 indirect jump/call syntax fixes. Disassembly fix for lcall.
This commit is contained in:
parent
6b55bdd0c0
commit
a3717e6ce0
@ -1,3 +1,8 @@
|
|||||||
|
1999-12-27 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||||
|
|
||||||
|
* 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)
|
Wed Dec 1 03:05:25 1999 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* mn10300.h: Add new operand types. Add new instruction formats.
|
* mn10300.h: Add new operand types. Add new instruction formats.
|
||||||
|
@ -315,17 +315,20 @@ static const template i386_optab[] = {
|
|||||||
{"call", 1, 0xff, 2, wl_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} },
|
{"call", 1, 0xff, 2, wl_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} },
|
||||||
/* Intel Syntax */
|
/* Intel Syntax */
|
||||||
{"call", 2, 0x9a, X, wl_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} },
|
{"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", 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
|
#define JUMP_PC_RELATIVE 0xeb
|
||||||
{"jmp", 1, 0xeb, X, NoSuf|Jump, { Disp, 0, 0} },
|
{"jmp", 1, 0xeb, X, NoSuf|Jump, { Disp, 0, 0} },
|
||||||
{"jmp", 1, 0xff, 4, wl_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} },
|
{"jmp", 1, 0xff, 4, wl_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} },
|
||||||
/* Intel Syntax */
|
/* Intel Syntax */
|
||||||
{"jmp", 2, 0xea, X, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} },
|
{"jmp", 2, 0xea, X, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} },
|
||||||
|
/* Intel Syntax */
|
||||||
{"jmp", 1, 0xff, 5, wl_Suf|Modrm, { WordMem, 0, 0} },
|
{"jmp", 1, 0xff, 5, wl_Suf|Modrm, { WordMem, 0, 0} },
|
||||||
{"ljmp", 2, 0xea, X, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 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", 0, 0xc3, X, wl_Suf|DefaultSize, { 0, 0, 0} },
|
||||||
{"ret", 1, 0xc2, X, wl_Suf|DefaultSize, { Imm16, 0, 0} },
|
{"ret", 1, 0xc2, X, wl_Suf|DefaultSize, { Imm16, 0, 0} },
|
||||||
|
Loading…
Reference in New Issue
Block a user