diff options
author | Jan Hubicka <jh@suse.cz> | 2001-01-13 09:05:55 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2001-01-13 09:05:55 +0000 |
commit | e2914f484eed1dc5a9abd52301dae35f7500ff48 (patch) | |
tree | 219463cfd50346692bb759efd223bdfd6c2fb8ad | |
parent | 272d76e0cbba693781509c939ddfda5941a50e9d (diff) | |
download | gdb-e2914f484eed1dc5a9abd52301dae35f7500ff48.zip gdb-e2914f484eed1dc5a9abd52301dae35f7500ff48.tar.gz gdb-e2914f484eed1dc5a9abd52301dae35f7500ff48.tar.bz2 |
* i386.c (md_assemble): Check cpu_flags even for nullary instructions.
* i386.h (i386_optab): Fix pusha and ret templates.
* i386-dis.c (dis386_att, disx86_64_att): Fix ret, lret and iret
templates.
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 9 | ||||
-rw-r--r-- | include/opcode/ChangeLog | 4 | ||||
-rw-r--r-- | include/opcode/i386.h | 8 | ||||
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 16 |
6 files changed, 35 insertions, 13 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index cddf473..b1d0d33 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 13 01:47:35 MET 2001 Jan Hubicka <jh@suse.cz> + + * config/tc-i386.c (md_assemble): Check cpu_flags even for nullary + instructions. + 2001-01-12 Frank Ch. Eigler <fche@redhat.com> * cgen.c (gas_cgen_finish_insn): Call dwarf2_emit_insn. @@ -84,6 +89,7 @@ Use DOLLAR_LABEL_CHAR and LOCAL_LABEL_CHAR. (S_IS_LOCAL): Use DOLLAR_LABEL_CHAR and LOCAL_LABEL_CHAR. +>>>>>>> 1.724 2001-01-08 Bo Thorsen <bo@suse.de> * config/tc-i386.c (i386_immediate, i386_displacement): diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 7cca4cf..da2bf48 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1707,9 +1707,14 @@ md_assemble (line) || t->extension_opcode == 7))) /* 0xd9,7 "f{n}stcw" */ continue; + /* Do not verify operands when there are none. */ else if (!t->operands) - /* 0 operands always matches. */ - break; + { + if (t->cpu_flags & ~cpu_arch_flags) + continue; + /* We've found a match; break out of loop. */ + break; + } overlap0 = i.types[0] & t->operand_types[0]; switch (t->operands) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index b506b66..4632f75 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +Sat Jan 13 09:56:32 MET 2001 Jan Hubicka <jh@suse.cz> + + * i386.h (i386_optab): Fix pusha and ret templates. + 2001-01-11 Peter Targett <peter.targett@arccores.com> * arc.h (ARC_MACH_5, ARC_MACH_6, ARC_MACH_7, ARC_MACH_8): New diff --git a/include/opcode/i386.h b/include/opcode/i386.h index d095e5b..f6f7afd 100644 --- a/include/opcode/i386.h +++ b/include/opcode/i386.h @@ -154,7 +154,7 @@ static const template i386_optab[] = { {"push", 1, 0x06, X, Cpu64, q_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, {"push", 1, 0x0fa0, X, Cpu386|Cpu64, q_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, -{"pusha", 0, 0x60, X, Cpu186|Cpu64, wl_Suf|DefaultSize, { 0, 0, 0 } }, +{"pusha", 0, 0x60, X, Cpu186|CpuNo64, wl_Suf|DefaultSize, { 0, 0, 0 } }, /* Pop instructions. */ {"pop", 1, 0x58, X, CpuNo64, wl_Suf|ShortForm|DefaultSize, { WordReg, 0, 0 } }, @@ -389,8 +389,10 @@ static const template i386_optab[] = { {"ljmp", 1, 0xff, 5, CpuNo64, wl_Suf|Modrm, { WordMem|JumpAbsolute, 0, 0} }, {"ljmp", 1, 0xff, 5, Cpu64, q_Suf|Modrm|NoRex64, { WordMem|JumpAbsolute, 0, 0} }, -{"ret", 0, 0xc3, X, 0, wlq_Suf|DefaultSize, { 0, 0, 0} }, -{"ret", 1, 0xc2, X, 0, wlq_Suf|DefaultSize, { Imm16, 0, 0} }, +{"ret", 0, 0xc3, X, CpuNo64,wlq_Suf|DefaultSize, { 0, 0, 0} }, +{"ret", 1, 0xc2, X, CpuNo64,wlq_Suf|DefaultSize, { Imm16, 0, 0} }, +{"ret", 0, 0xc3, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, +{"ret", 1, 0xc2, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ Imm16, 0, 0} }, {"lret", 0, 0xcb, X, 0, wlq_Suf|DefaultSize, { 0, 0, 0} }, {"lret", 1, 0xca, X, 0, wlq_Suf|DefaultSize, { Imm16, 0, 0} }, {"enter", 2, 0xc8, X, Cpu186, wlq_Suf|DefaultSize, { Imm16, Imm8, 0} }, diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 9612b66..eba00c6 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 13 01:48:24 MET 2001 Jan Hubicka <jh@suse.cz> + + * i386-dis.c (dis386_att, disx86_64_att): Fix ret, lret and iret + templates. + 2001-01-11 Peter Targett <peter.targett@arccores.com> * configure.in: Add arc-ext.lo for bfd_arc_arch selection. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index ca9c39d..5667d77 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -661,8 +661,8 @@ static const struct dis386 dis386_att[] = { /* c0 */ { GRP2b }, { GRP2S }, - { "retP", Iw, XX, XX }, - { "retP", XX, XX, XX }, + { "retI", Iw, XX, XX }, + { "retI", XX, XX, XX }, { "lesS", Gv, Mp, XX }, { "ldsS", Gv, Mp, XX }, { "movA", Eb, Ib, XX }, @@ -670,12 +670,12 @@ static const struct dis386 dis386_att[] = { /* c8 */ { "enterI", Iw, Ib, XX }, { "leaveI", XX, XX, XX }, - { "lretI", Iw, XX, XX }, - { "lretI", XX, XX, XX }, + { "lretP", Iw, XX, XX }, + { "lretP", XX, XX, XX }, { "int3", XX, XX, XX }, { "int", Ib, XX, XX }, { "into", XX, XX, XX}, - { "iretI", XX, XX, XX }, + { "iretP", XX, XX, XX }, /* d0 */ { GRP2b_one }, { GRP2S_one }, @@ -1256,12 +1256,12 @@ static const struct dis386 disx86_64_att[] = { /* c8 */ { "enterI", Iw, Ib, XX }, { "leaveI", XX, XX, XX }, - { "lretI", Iw, XX, XX }, - { "lretI", XX, XX, XX }, + { "lretP", Iw, XX, XX }, + { "lretP", XX, XX, XX }, { "int3", XX, XX, XX }, { "int", Ib, XX, XX }, { "(bad)", XX, XX, XX }, /* reserved. */ - { "iretI", XX, XX, XX }, + { "iretP", XX, XX, XX }, /* d0 */ { GRP2b_one }, { GRP2S_one }, |