pr30117 showed one of the assertions added by
4d1bb7955a8b was too
strict. oss-fuzz also found the second assertion to be too strict,
with this testcase distilled from 7k of garbage source:
A=%eax%%!
Y=A
Z=A
or $6,Z
PR 32721
* config/tc-i386.c (parse_register): Move "know" into
condition. Simplify.
{
const expressionS *e = symbol_get_value_expression (symbolP);
- if (e->X_op == O_register)
+ if (e->X_op == O_register
+ && (valueT) e->X_add_number < i386_regtab_size)
{
- know (e->X_add_number >= 0
- && (valueT) e->X_add_number < i386_regtab_size);
r = i386_regtab + e->X_add_number;
*end_op = (char *) reg_string + (input_line_pointer - buf);
}