diff options
-rw-r--r-- | gas/config/tc-i386.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 9e13f2f..95f5810 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -9850,11 +9850,13 @@ check_byte_reg (void) if (i.types[op].bitfield.class != Reg) continue; - /* If this is an eight bit register, it's OK. If it's the 16 or - 32 bit version of an eight bit register, we will just use the - low portion, and that's OK too. */ + /* If this is an eight bit register, it's OK. */ if (i.types[op].bitfield.byte) - continue; + { + if (i.tm.opcode_modifier.checkoperandsize) + break; + continue; + } /* I/O port address operands are OK too. */ if (i.tm.operand_types[op].bitfield.instance == RegD @@ -9908,6 +9910,9 @@ check_long_reg (void) i.suffix); return 0; } + else if (i.tm.opcode_modifier.checkoperandsize) + break; + return 1; } @@ -9943,6 +9948,9 @@ check_qword_reg (void) register_prefix, i.op[op].regs->reg_name, i.suffix); return 0; } + else if (i.tm.opcode_modifier.checkoperandsize) + break; + return 1; } @@ -9978,6 +9986,9 @@ check_word_reg (void) i.suffix); return 0; } + else if (i.tm.opcode_modifier.checkoperandsize) + break; + return 1; } |