I have a question about EVEX encoding and more precisely, about operands encoding with EVEX present (SIB, VSIB, EVEX.vvvv, ModR/M). According to https://en.wikipedia.org/wiki/EVEX_prefix,
Four bits R, X, B, and W from the REX prefix. W expands the operand size to 64 bits or serves as an additional opcode, R expands reg, B expands r/m or reg, and X and B expand index and base in the SIB byte. Comparing to the VEX prefix, RXB are provided in non-inversed forms, just like in the REX prefix.
1. Does it mean EVEX.R, EVEX.B, EVEX.X must be used without any 1's complement (while 1's complement is applyed on VEX.RBX) ?
2. Is there any "official" documentation about this ?
3. What about EVEX.V' ? Must we apply a 1's complement ?
- Intel® Advanced Vector Extensions (Intel® AVX)
- Intel® Streaming SIMD Extensions
- Parallel Computing