X86: Implement the versions of PUNPCKLBW that use XMM registers.

This commit is contained in:
Gabe Black 2009-08-17 18:18:19 -07:00
parent 24496060e5
commit ae4ee21ecd
2 changed files with 19 additions and 3 deletions

View file

@ -562,7 +562,7 @@
}
// operand size (0x66)
0x1: decode OPCODE_OP_BOTTOM3 {
0x0: punpcklbw_Vo_Wq();
0x0: Inst::PUNPCKLBW(Vo,Wq);
0x1: punpcklwd_Vo_Wq();
0x2: punpckldq_Vo_Wq();
0x3: packsswb_Vo_Wo();

View file

@ -54,12 +54,28 @@
# Authors: Gabe Black
microcode = '''
def macroop PUNPCKLBW_XMM_XMM {
unpack xmmh, xmml, xmmlm, sel=1, size=1
unpack xmml, xmml, xmmlm, sel=0, size=1
};
def macroop PUNPCKLBW_XMM_M {
ldfp ufp1, seg, sib, disp, dataSize=8
unpack xmmh, xmml, ufp1, sel=1, size=1
unpack xmml, xmml, ufp1, sel=0, size=1
};
def macroop PUNPCKLBW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
unpack xmmh, xmml, ufp1, sel=1, size=1
unpack xmml, xmml, ufp1, sel=0, size=1
};
'''
# PUNPCKHBW
# PUNPCKHWD
# PUNPCKHDQ
# PUNPCKHQDQ
# PUNPCKLBW
# PUNPCKLWD
# PUNPCKLDQ
# PUNPCKLQDQ
'''