diff options
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 749d7c4..105bc8e 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1935,19 +1935,6 @@ md_assemble (line) } } - if (i.reg_operands && flag_code < CODE_64BIT) - { - int op; - for (op = i.operands; --op >= 0;) - if ((i.types[op] & Reg) - && (i.op[op].regs->reg_flags & (RegRex64|RegRex))) - { - as_bad (_("Extended register `%%%s' available only in 64bit mode."), - i.op[op].regs->reg_name); - return; - } - } - /* If matched instruction specifies an explicit instruction mnemonic suffix, use it. */ if (i.tm.opcode_modifier & (Size16 | Size32 | Size64)) @@ -4531,6 +4518,13 @@ parse_register (reg_string, end_op) } } + if (r != NULL + && r->reg_flags & (RegRex64|RegRex) + && flag_code != CODE_64BIT) + { + return (const reg_entry *) NULL; + } + return r; } |