X86: Ignore the size part of XMM/MMX operands. The instructions know what they want.
This commit is contained in:
parent
33cb4c2f09
commit
191590bcc4
9 changed files with 19 additions and 19 deletions
|
@ -63,13 +63,13 @@ def macroop ADDSD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop ADDSD_XMM_M {
|
def macroop ADDSD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
addfp xmml, xmml, ufp1
|
addfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop ADDSD_XMM_P {
|
def macroop ADDSD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
addfp xmml, xmml, ufp1
|
addfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop DIVSD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop DIVSD_XMM_M {
|
def macroop DIVSD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
divfp xmml, xmml, ufp1
|
divfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop DIVSD_XMM_P {
|
def macroop DIVSD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
divfp xmml, xmml, ufp1
|
divfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop MULSD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop MULSD_XMM_M {
|
def macroop MULSD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
mulfp xmml, xmml, ufp1
|
mulfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop MULSD_XMM_P {
|
def macroop MULSD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
mulfp xmml, xmml, ufp1
|
mulfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop SQRTSD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop SQRTSD_XMM_M {
|
def macroop SQRTSD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
sqrtfp xmml, xmml, ufp1
|
sqrtfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop SQRTSD_XMM_P {
|
def macroop SQRTSD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
sqrtfp xmml, xmml, ufp1
|
sqrtfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop SUBSD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop SUBSD_XMM_M {
|
def macroop SUBSD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
subfp xmml, xmml, ufp1
|
subfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop SUBSD_XMM_P {
|
def macroop SUBSD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
subfp xmml, xmml, ufp1
|
subfp xmml, xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop UCOMISD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop UCOMISD_XMM_M {
|
def macroop UCOMISD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
compfp xmml, ufp1
|
compfp xmml, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop UCOMISD_XMM_P {
|
def macroop UCOMISD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
compfp xmml, ufp1
|
compfp xmml, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -63,13 +63,13 @@ def macroop CVTTSD2SI_R_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop CVTTSD2SI_R_M {
|
def macroop CVTTSD2SI_R_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
cvtf_d2i reg, ufp1
|
cvtf_d2i reg, ufp1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop CVTTSD2SI_R_P {
|
def macroop CVTTSD2SI_R_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
cvtf_d2i reg, ufp1
|
cvtf_d2i reg, ufp1
|
||||||
};
|
};
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -62,16 +62,16 @@ def macroop XORPD_XMM_XMM {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop XORPD_XMM_M {
|
def macroop XORPD_XMM_M {
|
||||||
ldfp ufp1, seg, sib, disp
|
ldfp ufp1, seg, sib, disp, dataSize=8
|
||||||
ldfp ufp2, seg, sib, "DISPLACEMENT + 8"
|
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
|
||||||
xorfp xmml, xmml, ufp1
|
xorfp xmml, xmml, ufp1
|
||||||
xorfp xmmh, xmmh, ufp2
|
xorfp xmmh, xmmh, ufp2
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop XORPD_XMM_P {
|
def macroop XORPD_XMM_P {
|
||||||
rdip t7
|
rdip t7
|
||||||
ldfp ufp1, seg, riprel, disp
|
ldfp ufp1, seg, riprel, disp, dataSize=8
|
||||||
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8"
|
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
|
||||||
xorfp xmml, xmml, ufp1
|
xorfp xmml, xmml, ufp1
|
||||||
xorfp xmmh, xmmh, ufp2
|
xorfp xmmh, xmmh, ufp2
|
||||||
};
|
};
|
||||||
|
|
|
@ -139,7 +139,7 @@ let {{
|
||||||
opType = OpType(opTypes[0])
|
opType = OpType(opTypes[0])
|
||||||
opTypes.pop(0)
|
opTypes.pop(0)
|
||||||
|
|
||||||
if opType.tag not in ("I", "J"):
|
if opType.tag not in ("I", "J", "P", "PR", "Q", "V", "VR", "W"):
|
||||||
if opType.size:
|
if opType.size:
|
||||||
env.setSize(opType.size)
|
env.setSize(opType.size)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue