+2012-07-31 Jan Beulich <jbeulich@suse.com>
+
+ * config/tc-i386.c (match_template): New local variable
+ 'specific_error'. Set it from i.error after failed
+ check_VecOperands or VEX_check_operands. Use it if set in
+ preference to i.error when actually issuing disagnostic.
+
2012-07-30 Nick Clifton <nickc@redhat.com>
* po/gas.pot: Updated template.
unsigned int j;
unsigned int found_cpu_match;
unsigned int check_register;
+ enum i386_error specific_error = 0;
#if MAX_OPERANDS != 5
# error "MAX_OPERANDS must be 5."
continue;
}
- /* Check if vector operands are valid. */
- if (check_VecOperands (t))
- continue;
-
- /* Check if VEX operands are valid. */
- if (VEX_check_operands (t))
- continue;
+ /* Check if vector and VEX operands are valid. */
+ if (check_VecOperands (t) || VEX_check_operands (t))
+ {
+ specific_error = i.error;
+ continue;
+ }
/* We've found a match; break out of loop. */
break;
{
/* We found no match. */
const char *err_msg;
- switch (i.error)
+ switch (specific_error ? specific_error : i.error)
{
default:
abort ();