aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2009-12-16 04:00:35 +0000
committerH.J. Lu <hjl.tools@gmail.com>2009-12-16 04:00:35 +0000
commit8cd7925b457188d333760956a2aa06d8aa302fb0 (patch)
tree3b29eee0ff3c5e12b8173f1e361797a6d73e83cd /gas
parent1ef99a7be96373a4018f793730e9366172510bb7 (diff)
downloadgdb-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/ChangeLog7
-rw-r--r--gas/config/tc-i386.c12
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;