aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2006-12-14 13:28:24 +0000
committerH.J. Lu <hjl.tools@gmail.com>2006-12-14 13:28:24 +0000
commitd1cbb4db761d593ea18e8cd3526b0167f857b788 (patch)
tree40e98ca3ffe6976f1ea0fe2264123d47733767e0
parentb0956e015259731f445bd7b649ea66608bc1fbf8 (diff)
downloadgdb-d1cbb4db761d593ea18e8cd3526b0167f857b788.zip
gdb-d1cbb4db761d593ea18e8cd3526b0167f857b788.tar.gz
gdb-d1cbb4db761d593ea18e8cd3526b0167f857b788.tar.bz2
2006-12-14 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (match_template): Simplify 3 and 4 operand match.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c12
2 files changed, 13 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ec7aa61..7bcb1ce 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (match_template): Simplify 3 and 4 operand
+ match.
+
2006-12-13 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (build_modrm_byte): Set the Operand_PCrel
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 959afe6..3b54ed5 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2734,10 +2734,14 @@ match_template ()
else
{
/* Found a forward 2 operand match here. */
- if (t->operands > 2)
- overlap2 = i.types[2] & operand_types[2];
- if (t->operands > 3)
- overlap3 = i.types[3] & operand_types[3];
+ switch (t->operands)
+ {
+ case 4:
+ overlap3 = i.types[3] & operand_types[3];
+ case 3:
+ overlap2 = i.types[2] & operand_types[2];
+ break;
+ }
switch (t->operands)
{