Open flobernd opened 6 years ago
Can I ask why you care about KNC? The KNC ISA was essentially deprecated with the introduction of AVX512 for Xeon and Xeon Phi. The support in XED for KNC is significantly lower priority.
But yeah, I think I repro'd this for AVX512. I'll look at this tomorrow.
With respect to your second question: sure looks like KNC is 64b mode only. I don't think I enforce that. Not sure if it worth bothering.
Can I ask why you care about KNC?
KNC is low priority for me as well. Just trying to support as much of the x86-64 isa-extensions as possible. I was simultaneously feeding the MVEX and the EVEX version of XED with random data and the KNC instance was the first one that encountered unexpected behavior (the byte-sequence of my first post in this issue).
I think I repro'd this for AVX512. I'll look at this tomorrow.
Thank you! Seems like a RM=4
besides RM[0b100]
in the pattern would do the trick. But you might want to handle this globally in the UISA_VMODRM_xxx()
/KNC_VMODRM()
functions instead.
With respect to your second question: sure looks like KNC is 64b mode only. I don't think I enforce that. Not sure if it worth bothering.
Yeah, probably not. Was just curious. Thanks for helping me out.
yeah. the RM=4 is the obvious thing. The other style of constraint is supposed to be equivalent. Suspect there is a little bug lurking somewhere. That is my goal for tomorrow...
So this is now fixed. But I don't like the fix. I hope I'll have some time over the next few days to do something better. Issue keeps coming up...
Hey there,
sorry for bothering you again. I tried to decode a random byte sequence and XED reported this:
I noticed the
modrm.rm
field is not 4 (= noSIB
/VSIB
byte should be present), but XED behaves like there is a validVSIB
. Shouldn't this instruction just #UD?The correct(?) form disassembles as well, but with different
length
,mem.index
,mem.scale
andmem.disp
:I only tested the EVEX and MVEX form of
VSCATTERDPD
andVGATHERDPD
, but I'm pretty sure this happens for every instruction that uses theVSIB
encoding.Another (minor) thing I was wondering about: Are KNC instructions only valid in 64-bit mode? Because in the manual it says:
for every single KNC VEX/MVEX instruction.
Thanks in advance!