x86inc: Misc. improvements
- Feb 21, 2022
-
-
Henrik Gramner authored
When operating on large blocks of data it's common to repeatedly use an instruction on multiple registers. Using the REPX macro makes it easy to quickly write dense code to achieve this without having to explicitly duplicate the same instruction over and over. For example, REPX {paddw x, m4}, m0, m1, m2, m3 REPX {mova [r0+16*x], m5}, 0, 1, 2, 3 will expand to paddw m0, m4 paddw m1, m4 paddw m2, m4 paddw m3, m4 mova [r0+16*0], m5 mova [r0+16*1], m5 mova [r0+16*2], m5 mova [r0+16*3], m5
6d10612a -
Henrik Gramner authored
Correctly handle emulation of 4-operand instructions (e.g. 'shufps') where src1 is a memory operand.
f52e5e11
-
- Feb 19, 2022
-
-
Henrik Gramner authored
With legacy encoding the last operand (the index) must be xmm0, but aside from that emulating non-destructive forms works the same as any other instruction.
3e2a0d4c
-