X86: Implement the movaps instruction.
--HG-- extra : convert_revision : 2aeb1c05205f8ea8f7484e8bacf3fbbc581defd2
This commit is contained in:
parent
3da3190f07
commit
c1a776de8a
|
@ -164,8 +164,10 @@
|
||||||
0x05: decode LEGACY_DECODEVAL {
|
0x05: decode LEGACY_DECODEVAL {
|
||||||
// no prefix
|
// no prefix
|
||||||
0x0: decode OPCODE_OP_BOTTOM3 {
|
0x0: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: movaps_Vo_Wo();
|
//These moves should really use size o (octword), but
|
||||||
0x1: movaps_Wo_Vo();
|
//because they are split in two, they use q (quadword).
|
||||||
|
0x0: Inst::MOVAPS(Vq,Wq);
|
||||||
|
0x1: Inst::MOVAPS(Wq,Vq);
|
||||||
0x2: decode MODRM_MOD {
|
0x2: decode MODRM_MOD {
|
||||||
0x3: cvtpi2pS_Vq_Pq();
|
0x3: cvtpi2pS_Vq_Pq();
|
||||||
default: cvtpi2ps_Vq_Mq();
|
default: cvtpi2ps_Vq_Mq();
|
||||||
|
|
|
@ -99,4 +99,31 @@ def macroop MOVSD_P_R {
|
||||||
def macroop MOVSD_R_R {
|
def macroop MOVSD_R_R {
|
||||||
movfp xmml, xmml, xmmlm, dataSize=8
|
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
|
||||||
|
};
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Reference in a new issue