diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2009-12-16 04:00:35 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2009-12-16 04:00:35 +0000 |
commit | 8cd7925b457188d333760956a2aa06d8aa302fb0 (patch) | |
tree | 3b29eee0ff3c5e12b8173f1e361797a6d73e83cd /gas | |
parent | 1ef99a7be96373a4018f793730e9366172510bb7 (diff) | |
download | gdb-8cd7925b457188d333760956a2aa06d8aa302fb0.zip gdb-8cd7925b457188d333760956a2aa06d8aa302fb0.tar.gz gdb-8cd7925b457188d333760956a2aa06d8aa302fb0.tar.bz2 |
Replace Vex2Sources and Vex3Sources with VexSources.
gas/
2009-12-15 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (process_operands): Check vexsources
instead of vex3sources.
(build_modrm_byte): Check vexsources instead of vex2sources
and vex3sources.
opcodes/
2009-12-15 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (opcode_modifiers): Remove Vex3Sources and
Vex2Sources. Add VexSources.
* i386-opc.h ()Vex2Sources: Removed.
(Vex3Sources): Likewise.
(VEX2SOURCES): New.
(VEX3SOURCES): Likewise.
(VexSources): Likewise.
(i386_opcode_modifier): Remove vex2sources and vex3sources.
Add vexsources.
* i386-opc.tbl: Replace Vex2Sources with VexSources=1 and
Vex3Sourceswith VexSources=2.
* i386-tbl.h: Regenerated.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 837020e..d57e76a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,12 @@ 2009-12-15 H.J. Lu <hongjiu.lu@intel.com> + * config/tc-i386.c (process_operands): Check vexsources + instead of vex3sources. + (build_modrm_byte): Check vexsources instead of vex2sources + and vex3sources. + +2009-12-15 H.J. Lu <hongjiu.lu@intel.com> + * config/tc-i386.c (build_vex_prefix): Replace vexw0/vexw1 with vexw. (build_modrm_byte): Likewise. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index ac99ffd..eb99acc 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4722,7 +4722,7 @@ process_operands (void) if (i.op[0].regs->reg_num != 0) return bad_implicit_operand (1); - if (i.tm.opcode_modifier.vex3sources) + if (i.tm.opcode_modifier.vexsources == VEX3SOURCES) { /* Keep xmm0 for instructions with VEX prefix and 3 sources. */ @@ -4744,7 +4744,8 @@ process_operands (void) else if (i.tm.opcode_modifier.implicit1stxmm0) { gas_assert ((MAX_OPERANDS - 1) > dupl - && i.tm.opcode_modifier.vex3sources); + && (i.tm.opcode_modifier.vexsources + == VEX3SOURCES)); /* Add the implicit xmm0 for instructions with VEX prefix and 3 sources. */ @@ -4922,12 +4923,11 @@ build_modrm_byte (void) { const seg_entry *default_seg = 0; unsigned int source, dest; - int vex_3_sources, vex_2_sources; + int vex_3_sources; /* The first operand of instructions with VEX prefix and 3 sources must be VEX_Imm4. */ - vex_3_sources = i.tm.opcode_modifier.vex3sources; - vex_2_sources = i.tm.opcode_modifier.vex2sources; + vex_3_sources = i.tm.opcode_modifier.vexsources == VEX3SOURCES; if (vex_3_sources) { unsigned int nds, reg_slot; @@ -5311,7 +5311,7 @@ build_modrm_byte (void) else mem = ~0; - if (vex_2_sources) + if (i.tm.opcode_modifier.vexsources == VEX2SOURCES) { if (operand_type_check (i.types[0], imm)) i.vex.register_specifier = NULL; |