News for hackers. Stuff that matters.
Re:More on x86 – The Chip Letter by jcranmer on Thursday April 25, 2024 @10:46AM (#40158217)
> It would also need 1-2 operand bytes

Only 1 operand byte. The VEX and EVEX prefixes replace the 0f/0f38/0f3a opcode prefixes with an opcode map selector, and the 66/f2/f3 prefixes are also shoved into some more bits in the prefix. The only prefixes not subsumed by the EVEX prefix are F0 (largely lock), the segment selectors, and the address size override prefix... the last of which should never be used in 64-bit code anyways, and the former are pretty rare in instructions.

If you've got a 3-byte opcode that needs the REX prefix, you're going from 5 byte encoding to 6-byte encoding, which isn't too bad, but it is going to hurt for those instructions that previously could get away with 2 bytes.

Re:More on x86 – The Chip Letter by hajile on Thursday April 25, 2024 @11:09AM (#40158485)
An extra byte to eliminate a MOV via a 3-register instruction is a no-brainer savings.

The extra 16 registers are going to be a lot more fun though. It will also eliminate a lot of those MOVs, but every access will have a 17% penalty going from 5 to 6 bytes.

Meanwhile, ARM/RISC-V can use 32 registers and use 3-register assignments with just 2/4 bytes.