From: Mark S. <na...@ms...> - 2015-11-05 20:52:15
|
On 4 Nov 2015, at 19:30, Cyrill Gorcunov wrote: > On Wed, Nov 04, 2015 at 10:51:36AM -0800, H. Peter Anvin wrote: >>> >>> Signed-off-by: Mark Scott <na...@ms...> >>> Signed-off-by: Cyrill Gorcunov <gor...@gm...> >>> >> >> This is wrong, though; EVEX is permitted in 32-bit mode just as VEX is. >> >> The key thing is that bits [7:5] have to be 1 in 32-bit mode. It is >> unclear what happens if these bits are 110 as that depends on if it is >> decoded using the modr/m decoder or not. For VEX prefixes we accept >> them as VEX in that case, which may not match the CPU. >> >> The evex_p0 test seems to have been taken out of thin air; I don't think >> that is a requirement for EVEX. >> >> So, I believe the logic should in fact be the exactly same logic that we >> have for VEX: >> >> if (segsize == 64 || (data[1] & 0xc0) == 0xc0) { > > Ah, good point! Thanks for clarification, Peter! I'll fix > Apologies for the mistake, and thanks for spotting! Mark |