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.
&& (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))))