X86: Implement the mask move instructions.
This commit is contained in:
parent
75528a497c
commit
d9970f139a
3 changed files with 17 additions and 4 deletions
|
@ -1067,7 +1067,7 @@
|
||||||
0x4: PMULUDQ(Pq,Qq);
|
0x4: PMULUDQ(Pq,Qq);
|
||||||
0x5: PMADDWD(Pq,Qq);
|
0x5: PMADDWD(Pq,Qq);
|
||||||
0x6: PSADBW(Pq,Qq);
|
0x6: PSADBW(Pq,Qq);
|
||||||
0x7: WarnUnimpl::maskmovq_Pq_PRq();
|
0x7: MASKMOVQ(Pq,PRq);
|
||||||
default: UD2();
|
default: UD2();
|
||||||
}
|
}
|
||||||
// operand size (0x66)
|
// operand size (0x66)
|
||||||
|
@ -1078,7 +1078,7 @@
|
||||||
0x4: PMULUDQ(Vo,Wo);
|
0x4: PMULUDQ(Vo,Wo);
|
||||||
0x5: PMADDWD(Vo,Wo);
|
0x5: PMADDWD(Vo,Wo);
|
||||||
0x6: PSADBW(Vo,Wo);
|
0x6: PSADBW(Vo,Wo);
|
||||||
0x7: WarnUnimpl::maskmovdqu_Vo_VRo();
|
0x7: MASKMOVDQU(Vo,VRo);
|
||||||
default: UD2();
|
default: UD2();
|
||||||
}
|
}
|
||||||
// repne (0xF2)
|
// repne (0xF2)
|
||||||
|
|
|
@ -55,5 +55,13 @@
|
||||||
|
|
||||||
microcode = '''
|
microcode = '''
|
||||||
# MOVNTDQ
|
# MOVNTDQ
|
||||||
# MASKMOVDQU
|
|
||||||
|
def macroop MASKMOVDQU_XMM_XMM {
|
||||||
|
ldfp ufp1, ds, [1, t0, rdi], dataSize=8
|
||||||
|
ldfp ufp2, ds, [1, t0, rdi], 8, dataSize=8
|
||||||
|
maskmov ufp1, xmml, xmmlm, size=1
|
||||||
|
maskmov ufp2, xmmh, xmmhm, size=1
|
||||||
|
stfp ufp1, ds, [1, t0, rdi], dataSize=8
|
||||||
|
stfp ufp2, ds, [1, t0, rdi], 8, dataSize=8
|
||||||
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -55,5 +55,10 @@
|
||||||
|
|
||||||
microcode = '''
|
microcode = '''
|
||||||
# MOVNTQ
|
# MOVNTQ
|
||||||
# MASKMOVQ
|
|
||||||
|
def macroop MASKMOVQ_MMX_MMX {
|
||||||
|
ldfp ufp1, ds, [1, t0, rdi], dataSize=8
|
||||||
|
maskmov ufp1, mmx, mmxm, size=1
|
||||||
|
stfp ufp1, ds, [1, t0, rdi], dataSize=8
|
||||||
|
};
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Reference in a new issue