[PATCH 1/5] x86: drop redundant i.operands checks from output_disp()
Jan Beulich
jbeulich@suse.com
Mon Feb 3 11:40:16 GMT 2025
The opcode space, major opcode, and - where applicable - opcode
extension checks fully qualify the insns we're after; operand matching
has been done far earlier, so wrong operand counts cannot occur here.
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -12939,17 +12939,14 @@ output_disp (fragS *insn_start_frag, off
&& (i.rm.mode == 2
|| (i.rm.mode == 0 && i.rm.regmem == 5))
&& ((space == SPACE_BASE
- && i.operands == 1
&& i.tm.base_opcode == 0xff
&& (i.rm.reg == 2 || i.rm.reg == 4))
|| ((space == SPACE_BASE
|| space == SPACE_0F38
|| space == SPACE_MAP4)
- && i.operands == 2
&& i.tm.base_opcode == 0x8b)
|| ((space == SPACE_BASE
|| space == SPACE_MAP4)
- && i.operands >= 2
&& (i.tm.base_opcode == 0x85
|| (i.tm.base_opcode
| (i.operands > 2 ? 0x3a : 0x38)) == 0x3b))))
More information about the Binutils
mailing list