You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The VEX prefix comes in two forms, 2 byte and 3 byte. The 2 byte version is missing some fields from the 3 byte version so can't encode all instructions.
The missing fields are VEX.W, VEX.mmmmm, VEX.X, and VEX.B. VEX.X is only used by memory instructions. VEX.W isn't used on most instructions.
For a commutable instructions like the register only form of VPADDD, if one input is xmm8-15 and the other is xmm0-7, we could take advantage of commuting to always put the xmm8-15 in the operand that uses VEX.R to avoid needing VEX.B.
This would only work for instructions that use VEX.mmmmm = 0x1, but that's the more common encoding for that field.
The text was updated successfully, but these errors were encountered:
Extended Description
The VEX prefix comes in two forms, 2 byte and 3 byte. The 2 byte version is missing some fields from the 3 byte version so can't encode all instructions.
The missing fields are VEX.W, VEX.mmmmm, VEX.X, and VEX.B. VEX.X is only used by memory instructions. VEX.W isn't used on most instructions.
For a commutable instructions like the register only form of VPADDD, if one input is xmm8-15 and the other is xmm0-7, we could take advantage of commuting to always put the xmm8-15 in the operand that uses VEX.R to avoid needing VEX.B.
This would only work for instructions that use VEX.mmmmm = 0x1, but that's the more common encoding for that field.
The text was updated successfully, but these errors were encountered: