x86: Simplify register operand property checks.
Optimizes x86 assembler code by using direct type checks instead of indirect register structure access.
This patch refactors the x86 assembler’s optimize_encoding function to improve efficiency when checking operand properties. It replaces indirect accesses to register properties via i.op[n].regs->reg_type with direct accesses to i.types[n], which holds the same information but avoids an extra level of indirection, leading to slightly cleaner and potentially faster code.
In Details
Improves the x86 assembler's optimize_encoding function by changing how register operand properties are checked. Instead of dereferencing the register structure pointer (i.op[n].regs->reg_type), it directly uses the i.types[n] structure, which is populated with the same information earlier in the parsing process. This removes a layer of indirection for checks like .bitfield.word, .bitfield.qword, and .bitfield.dword.
- operand
- A value or variable that an instruction operates on. In assembly, operands follow the opcode.
- x86 assembler
- The part of binutils that processes x86 assembly language code, translating it into machine code.
- optimize_encoding
- A function within the assembler that attempts to use more compact instruction encodings where possible.