X86: Implement the movaps instruction.

--HG--
extra : convert_revision : 2aeb1c05205f8ea8f7484e8bacf3fbbc581defd2
This commit is contained in:
Gabe Black 2007-08-29 20:38:22 -07:00
parent 3da3190f07
commit c1a776de8a
2 changed files with 31 additions and 2 deletions

View file

@ -164,8 +164,10 @@
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();

View file

@ -99,4 +99,31 @@ def macroop MOVSD_P_R {
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
};
'''