diff --git a/gas/ChangeLog b/gas/ChangeLog index ec7aa61776..7bcb1ce60d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-12-14 H.J. Lu + + * config/tc-i386.c (match_template): Simplify 3 and 4 operand + match. + 2006-12-13 H.J. Lu * 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 959afe67e5..3b54ed5899 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) {