X86: (Re)implement XORPS and XORPD.

This commit is contained in:
Gabe Black 2009-08-17 18:22:37 -07:00
parent 982b3ad1f0
commit 69f0bf743c
2 changed files with 27 additions and 9 deletions

View file

@ -471,7 +471,7 @@
0x4: andps_Vo_Wo(); 0x4: andps_Vo_Wo();
0x5: andnps_Vo_Wo(); 0x5: andnps_Vo_Wo();
0x6: orps_Vo_Wo(); 0x6: orps_Vo_Wo();
0x7: xorps_Vo_Wo(); 0x7: Inst::XORPS(Vo,Wo);
} }
// repe (0xF3) // repe (0xF3)
0x4: decode OPCODE_OP_BOTTOM3 { 0x4: decode OPCODE_OP_BOTTOM3 {

View file

@ -54,25 +54,43 @@
# Authors: Gabe Black # Authors: Gabe Black
microcode = ''' microcode = '''
# XORPS
def macroop XORPD_XMM_XMM { def macroop XORPD_XMM_XMM {
xorfp xmml, xmml, xmmlm mxor xmml, xmml, xmmlm
xorfp xmmh, xmmh, xmmhm mxor xmmh, xmmh, xmmhm
}; };
def macroop XORPD_XMM_M { def macroop XORPD_XMM_M {
ldfp ufp1, seg, sib, disp, dataSize=8 ldfp ufp1, seg, sib, disp, dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8 ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
xorfp xmml, xmml, ufp1 mxor xmml, xmml, ufp1
xorfp xmmh, xmmh, ufp2 mxor xmmh, xmmh, ufp2
}; };
def macroop XORPD_XMM_P { def macroop XORPD_XMM_P {
rdip t7 rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8 ldfp ufp1, seg, riprel, disp, dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8 ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
xorfp xmml, xmml, ufp1 mxor xmml, xmml, ufp1
xorfp xmmh, xmmh, ufp2 mxor xmmh, xmmh, ufp2
};
def macroop XORPS_XMM_XMM {
mxor xmml, xmml, xmmlm
mxor xmmh, xmmh, xmmhm
};
def macroop XORPS_XMM_M {
ldfp ufp1, seg, sib, disp, dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
mxor xmml, xmml, ufp1
mxor xmmh, xmmh, ufp2
};
def macroop XORPS_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
mxor xmml, xmml, ufp1
mxor xmmh, xmmh, ufp2
}; };
''' '''