mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-22 12:04:55 +00:00
Fix an incorrect opcode for an SSE instruction in x64Emitter.cpp. CVTSD2SI should write 0x2D, not 0xF2.
Also format the NormalSSEOps enum.
This commit is contained in:
parent
86f6e8cc1e
commit
d03fb11188
1 changed files with 22 additions and 22 deletions
|
@ -38,28 +38,28 @@ static const NormalOpDef nops[11] =
|
||||||
|
|
||||||
enum NormalSSEOps
|
enum NormalSSEOps
|
||||||
{
|
{
|
||||||
sseCMP = 0xC2,
|
sseCMP = 0xC2,
|
||||||
sseADD = 0x58, //ADD
|
sseADD = 0x58, //ADD
|
||||||
sseSUB = 0x5C, //SUB
|
sseSUB = 0x5C, //SUB
|
||||||
sseAND = 0x54, //AND
|
sseAND = 0x54, //AND
|
||||||
sseANDN = 0x55, //ANDN
|
sseANDN = 0x55, //ANDN
|
||||||
sseOR = 0x56,
|
sseOR = 0x56,
|
||||||
sseXOR = 0x57,
|
sseXOR = 0x57,
|
||||||
sseMUL = 0x59, //MUL,
|
sseMUL = 0x59, //MUL
|
||||||
sseDIV = 0x5E, //DIV
|
sseDIV = 0x5E, //DIV
|
||||||
sseMIN = 0x5D, //MIN
|
sseMIN = 0x5D, //MIN
|
||||||
sseMAX = 0x5F, //MAX
|
sseMAX = 0x5F, //MAX
|
||||||
sseCOMIS = 0x2F, //COMIS
|
sseCOMIS = 0x2F, //COMIS
|
||||||
sseUCOMIS = 0x2E, //UCOMIS
|
sseUCOMIS = 0x2E, //UCOMIS
|
||||||
sseSQRT = 0x51, //SQRT
|
sseSQRT = 0x51, //SQRT
|
||||||
sseRSQRT = 0x52, //RSQRT (NO DOUBLE PRECISION!!!)
|
sseRSQRT = 0x52, //RSQRT (NO DOUBLE PRECISION!!!)
|
||||||
sseMOVAPfromRM = 0x28, //MOVAP from RM
|
sseMOVAPfromRM = 0x28, //MOVAP from RM
|
||||||
sseMOVAPtoRM = 0x29, //MOVAP to RM
|
sseMOVAPtoRM = 0x29, //MOVAP to RM
|
||||||
sseMOVUPfromRM = 0x10, //MOVUP from RM
|
sseMOVUPfromRM = 0x10, //MOVUP from RM
|
||||||
sseMOVUPtoRM = 0x11, //MOVUP to RM
|
sseMOVUPtoRM = 0x11, //MOVUP to RM
|
||||||
sseMASKMOVDQU = 0xF7,
|
sseMASKMOVDQU = 0xF7,
|
||||||
sseLDDQU = 0xF0,
|
sseLDDQU = 0xF0,
|
||||||
sseSHUF = 0xC6,
|
sseSHUF = 0xC6,
|
||||||
sseMOVNTDQ = 0xE7,
|
sseMOVNTDQ = 0xE7,
|
||||||
sseMOVNTP = 0x2B,
|
sseMOVNTP = 0x2B,
|
||||||
};
|
};
|
||||||
|
@ -155,7 +155,7 @@ void OpArg::WriteRex(XEmitter *emit, int opBits, int bits, int customOp) const
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpArg::WriteRest(XEmitter *emit, int extraBytes, X64Reg _operandReg,
|
void OpArg::WriteRest(XEmitter *emit, int extraBytes, X64Reg _operandReg,
|
||||||
bool warn_64bit_offset) const
|
bool warn_64bit_offset) const
|
||||||
{
|
{
|
||||||
if (_operandReg == 0xff)
|
if (_operandReg == 0xff)
|
||||||
_operandReg = (X64Reg)this->operandReg;
|
_operandReg = (X64Reg)this->operandReg;
|
||||||
|
@ -1276,7 +1276,7 @@ void XEmitter::CVTPD2PS(X64Reg regOp, OpArg arg) {WriteSSEOp(64, 0x5A, true, reg
|
||||||
|
|
||||||
void XEmitter::CVTSD2SS(X64Reg regOp, OpArg arg) {WriteSSEOp(64, 0x5A, false, regOp, arg);}
|
void XEmitter::CVTSD2SS(X64Reg regOp, OpArg arg) {WriteSSEOp(64, 0x5A, false, regOp, arg);}
|
||||||
void XEmitter::CVTSS2SD(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0x5A, false, regOp, arg);}
|
void XEmitter::CVTSS2SD(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0x5A, false, regOp, arg);}
|
||||||
void XEmitter::CVTSD2SI(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0xF2, false, regOp, arg);}
|
void XEmitter::CVTSD2SI(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0x2D, false, regOp, arg);}
|
||||||
|
|
||||||
void XEmitter::CVTDQ2PD(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0xE6, false, regOp, arg);}
|
void XEmitter::CVTDQ2PD(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0xE6, false, regOp, arg);}
|
||||||
void XEmitter::CVTDQ2PS(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0x5B, true, regOp, arg);}
|
void XEmitter::CVTDQ2PS(X64Reg regOp, OpArg arg) {WriteSSEOp(32, 0x5B, true, regOp, arg);}
|
||||||
|
|
Loading…
Add table
Reference in a new issue