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();
0x5: andnps_Vo_Wo();
0x6: orps_Vo_Wo();
0x7: xorps_Vo_Wo();
0x7: Inst::XORPS(Vo,Wo);
}
// repe (0xF3)
0x4: decode OPCODE_OP_BOTTOM3 {

View file

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