FEX fails to decode certain instructions when they are prefixed with 0x66.
For the affaceted instructions, the 0x66 prefix is not required and does not change their behavior. Real hardware seems to simply ignore the prefix and execute the instruction normally. However, FEX fails in the Frontend decoding phase.
This happens, e.g, because the lookup tables (like H0F38TableOps) do not have an entry for the prefixed version.
The following non-exhaustive list fails to decode with a 0x66 prefix:
In contrast, instructions like cvttss2si and movd get decoded fine when prefixed with 0x66.
Related issues: #5667 and #5670.
FEX fails to decode certain instructions when they are prefixed with
0x66.For the affaceted instructions, the
0x66prefix is not required and does not change their behavior. Real hardware seems to simply ignore the prefix and execute the instruction normally. However, FEX fails in theFrontenddecoding phase.This happens, e.g, because the lookup tables (like
H0F38TableOps) do not have an entry for the prefixed version.The following non-exhaustive list fails to decode with a
0x66prefix:movntiadoxsha1msg1In contrast, instructions like
cvttss2siandmovdget decoded fine when prefixed with0x66.Related issues: #5667 and #5670.