0x05: decode LEGACY_DECODEVAL {
// no prefix
0x0: decode OPCODE_OP_BOTTOM3 {
- 0x0: movaps_Vo_Wo();
- 0x1: movaps_Wo_Vo();
+ //These moves should really use size o (octword), but
+ //because they are split in two, they use q (quadword).
+ 0x0: Inst::MOVAPS(Vq,Wq);
+ 0x1: Inst::MOVAPS(Wq,Vq);
0x2: decode MODRM_MOD {
0x3: cvtpi2pS_Vq_Pq();
default: cvtpi2ps_Vq_Mq();
def macroop MOVSD_R_R {
movfp xmml, xmml, xmmlm, dataSize=8
};
+
+def macroop MOVAPS_R_M {
+ ldfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8
+ ldfp xmml, seg, sib, disp, dataSize=8
+};
+
+def macroop MOVAPS_R_P {
+ rdip t7
+ ldfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8
+ ldfp xmml, seg, riprel, disp, dataSize=8
+};
+
+def macroop MOVAPS_M_R {
+ stfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8
+ stfp xmml, seg, sib, disp, dataSize=8
+};
+
+def macroop MOVAPS_P_R {
+ rdip t7
+ stfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8
+ stfp xmml, seg, riprel, disp, dataSize=8
+};
+
+def macroop MOVAPS_R_R {
+ movfp xmml, xmml, xmmlm, dataSize=8
+ movfp xmmh, xmmh, xmmhm, dataSize=8
+};
'''