diff options
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index bd4ca3d..d29d07c 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4178,12 +4178,20 @@ process_suffix (void) } else if (i.suffix == BYTE_MNEM_SUFFIX) { - if (!check_byte_reg ()) + if (intel_syntax + && i.tm.opcode_modifier.ignoresize + && i.tm.opcode_modifier.no_bsuf) + i.suffix = 0; + else if (!check_byte_reg ()) return 0; } else if (i.suffix == LONG_MNEM_SUFFIX) { - if (!check_long_reg ()) + if (intel_syntax + && i.tm.opcode_modifier.ignoresize + && i.tm.opcode_modifier.no_lsuf) + i.suffix = 0; + else if (!check_long_reg ()) return 0; } else if (i.suffix == QWORD_MNEM_SUFFIX) @@ -4197,7 +4205,11 @@ process_suffix (void) } else if (i.suffix == WORD_MNEM_SUFFIX) { - if (!check_word_reg ()) + if (intel_syntax + && i.tm.opcode_modifier.ignoresize + && i.tm.opcode_modifier.no_wsuf) + i.suffix = 0; + else if (!check_word_reg ()) return 0; } else if (i.suffix == XMMWORD_MNEM_SUFFIX @@ -4375,10 +4387,6 @@ check_byte_reg (void) if (i.types[op].bitfield.reg8) continue; - /* Don't generate this warning if not needed. */ - if (intel_syntax && i.tm.opcode_modifier.byteokintel) - continue; - /* crc32 doesn't generate this warning. */ if (i.tm.base_opcode == 0xf20f38f0) continue; |