X86: Implement the MOVQ instruction.

This commit is contained in:
Gabe Black 2009-08-17 18:17:29 -07:00
parent f1bfa9d6e4
commit 24496060e5
2 changed files with 51 additions and 8 deletions

View file

@ -581,7 +581,7 @@
0x2: punpckhdq_Pq_Qq();
0x3: packssdw_Pq_Qq();
0x6: Inst::MOVD(Pq,Edp);
0x7: movq_Pq_Qq();
0x7: Inst::MOVQ(Pq,Qq);
default: Inst::UD2();
}
// repe (0xF3)
@ -741,12 +741,12 @@
0x0: vmread_Ed_or_Eq_Gd_or_Gq();
0x1: vmwrite_Gd_or_Gq_Ed_or_Eq();
0x6: Inst::MOVD(Edp,Pdp);
0x7: mov_Qq_Pq();
0x7: Inst::MOVQ(Qq,Pq);
default: Inst::UD2();
}
// repe (0xF3)
0x4: decode OPCODE_OP_BOTTOM3 {
0x6: movq_Vo_Mq_or_Vq_Vq();
0x6: Inst::MOVQ(Vq,Wq);
0x7: movdqu_Wo_Vo();
default: Inst::UD2();
}
@ -969,10 +969,7 @@
0x3: psrlq_Vo_Wo();
0x4: paddq_Vo_Wo();
0x5: pmullw_Vo_Wo();
0x6: decode MODRM_MOD {
0x3: movq_Vq_Vq();
default: movq_Mq_Vq();
}
0x6: Inst::MOVQ(Wq,Vq);
0x7: pmovmskb_Gd_VRo();
}
// repne (0xF2)

View file

@ -79,8 +79,54 @@ def macroop MOVD_P_MMX {
rdip t7
stfp mmx, seg, riprel, disp, dataSize=8
};
def macroop MOVQ_XMM_XMM {
movfp xmml, xmmlm
lfpimm xmmh, 0
};
def macroop MOVQ_XMM_M {
ldfp xmml, seg, sib, disp, dataSize=8
lfpimm xmmh, 0
};
def macroop MOVQ_XMM_P {
rdip t7
ldfp xmml, seg, riprel, disp, dataSize=8
lfpimm xmmh, 0
};
def macroop MOVQ_M_XMM {
stfp xmml, seg, sib, disp, dataSize=8
};
def macroop MOVQ_P_XMM {
rdip t7
stfp xmml, seg, riprel, disp, dataSize=8
};
def macroop MOVQ_MMX_MMX {
movfp mmx, mmxm
};
def macroop MOVQ_MMX_M {
ldfp mmx, seg, sib, disp, dataSize=8
};
def macroop MOVQ_MMX_P {
rdip t7
ldfp mmx, seg, riprel, disp, dataSize=8
};
def macroop MOVQ_M_MMX {
stfp mmx, seg, sib, disp, dataSize=8
};
def macroop MOVQ_P_MMX {
rdip t7
stfp mmx, seg, riprel, disp, dataSize=8
};
'''
# MOVQ
# MOVDQA
# MOVDQU
# MOVDQ2Q