From: Cyrill G. <gor...@gm...> - 2015-11-04 19:30:31
|
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 |