我发现英特尔和AMD手册都不清楚VEX
前缀是否可用于没有为其定义特殊行为的指令,REX
可以显示的方式。例如,CPUID
为0F A2
,我可以将其编码为VEX.LIG.0F.WIG A2
(C4 E1 78 A2
)吗? NOP
使用VEX
VEX.LIG.WIG 90
形式的C5 F8 90
(EVEX
)会怎样?
如果允许,是否必须将未使用的字段设置为特定值?那么bool Image::isPointInsideRectangle(int x, int y, const ofRectangle & rectangle){
return x - xOffset >= rectangle.getX() && x - xOffset <= rectangle.getX() + rectangle.getWidth() &&
y - yOffset >= rectangle.getY() && y - yOffset <= rectangle.getY() + rectangle.getHeight();
}
呢?
答案 0 :(得分:4)
没有
英特尔的insn ref手册(第2卷)非常清楚。请参阅x86 wiki中的链接。它列出了每个指令助记符的所有有效编码。例如,它单独列出了PSHUFB
的非VEX和VEX编码。同样,Intel Future Extensions pdf列出了每个EVEX指令的所有有效编码。
仅 列出imul
的非VEX编码,因为没有VEX编码。
仅 列出pext r64a, r64b, r/m64
的VEX编码,因为该BMI2整数指令仅适用于VEX编码。