* i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands.
authorJan Hubicka <jh@suse.cz>
Mon, 18 Feb 2002 16:32:25 +0000 (16:32 +0000)
committerJan Hubicka <jh@suse.cz>
Mon, 18 Feb 2002 16:32:25 +0000 (16:32 +0000)
include/opcode/ChangeLog
include/opcode/i386.h

index 884e202..c6c554f 100644 (file)
@@ -1,3 +1,7 @@
+Mon Feb 18 17:31:48 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands.
+
 Mon Feb 11 12:53:19 CET 2002  Jan Hubicka  <jh@suse.cz>
 
        * i386.h (push,pop): Allow 16bit operands in 64bit mode.
index 201329f..43d7208 100644 (file)
@@ -149,10 +149,10 @@ static const template i386_optab[] = {
 {"push",   1,  0x06, X, 0|CpuNo64, wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } },
 {"push",   1, 0x0fa0, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
 /* In 64bit mode, the operand size is implicitly 64bit.  */
-{"push",   1,  0x50, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { Reg64, 0, 0 } },
-{"push",   1,  0xff, 6, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { Reg64|WordMem, 0, 0 } },
+{"push",   1,  0x50, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { WordReg, 0, 0 } },
+{"push",   1,  0xff, 6, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { WordReg|WordMem, 0, 0 } },
 {"push",   1,  0x6a, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} },
-{"push",   1,  0x68, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm32S, 0, 0} },
+{"push",   1,  0x68, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm32S|Imm16, 0, 0} },
 {"push",   1,  0x06, X, Cpu64, wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } },
 {"push",   1, 0x0fa0, X, Cpu386|Cpu64, wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },
 
@@ -165,8 +165,8 @@ static const template i386_optab[] = {
 {"pop",           1,   0x07, X, CpuNo64,        wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } },
 {"pop",           1, 0x0fa1, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
 /* In 64bit mode, the operand size is implicitly 64bit.  */
-{"pop",           1,   0x58, X, Cpu64,  wq_Suf|ShortForm|DefaultSize|NoRex64,  { Reg64, 0, 0 } },
-{"pop",           1,   0x8f, 0, Cpu64,  wq_Suf|Modrm|DefaultSize|NoRex64,      { Reg64|WordMem, 0, 0 } },
+{"pop",           1,   0x58, X, Cpu64,  wq_Suf|ShortForm|DefaultSize|NoRex64,  { WordReg, 0, 0 } },
+{"pop",           1,   0x8f, 0, Cpu64,  wq_Suf|Modrm|DefaultSize|NoRex64,      { WordReg|WordMem, 0, 0 } },
 {"pop",           1,   0x07, X, Cpu64,  wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } },
 {"pop",           1, 0x0fa1, X, Cpu64,  wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },