Added PSRLD/PSRLQ/PSLLD/PSLLQ support to x64Emitter
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6180 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
43c11a491a
commit
58ac6e541f
|
@ -1200,6 +1200,36 @@ void XEmitter::PUNPCKLWD(X64Reg dest, const OpArg &arg) {WriteSSEOp(64, 0x61, tr
|
|||
void XEmitter::PUNPCKLDQ(X64Reg dest, const OpArg &arg) {WriteSSEOp(64, 0x62, true, dest, arg);}
|
||||
//void PUNPCKLQDQ(X64Reg dest, OpArg arg) {WriteSSEOp(64, 0x60, true, dest, arg);}
|
||||
|
||||
void XEmitter::PSRLW(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x71, true, (X64Reg)2, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSRLD(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x72, true, (X64Reg)2, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSRLQ(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x73, true, (X64Reg)2, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSLLW(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x71, true, (X64Reg)6, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSLLD(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x72, true, (X64Reg)6, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSLLQ(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x73, true, (X64Reg)6, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
// WARNING not REX compatible
|
||||
void XEmitter::PSRAW(X64Reg reg, int shift) {
|
||||
if (reg > 7)
|
||||
|
@ -1211,16 +1241,6 @@ void XEmitter::PSRAW(X64Reg reg, int shift) {
|
|||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSRLW(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x71, true, (X64Reg)2, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
void XEmitter::PSLLW(X64Reg reg, int shift) {
|
||||
WriteSSEOp(64, 0x71, true, (X64Reg)6, R(reg));
|
||||
Write8(shift);
|
||||
}
|
||||
|
||||
// WARNING not REX compatible
|
||||
void XEmitter::PSRAD(X64Reg reg, int shift) {
|
||||
if (reg > 7)
|
||||
|
|
|
@ -526,8 +526,6 @@ public:
|
|||
void PUNPCKLWD(X64Reg dest, const OpArg &arg);
|
||||
void PUNPCKLDQ(X64Reg dest, const OpArg &arg);
|
||||
|
||||
void PSRAD(X64Reg dest, int shift);
|
||||
|
||||
void PAND(X64Reg dest, OpArg arg);
|
||||
void PANDN(X64Reg dest, OpArg arg);
|
||||
void PXOR(X64Reg dest, OpArg arg);
|
||||
|
@ -581,8 +579,15 @@ public:
|
|||
void PSHUFLW(X64Reg dest, OpArg arg, u8 shuffle);
|
||||
|
||||
void PSRLW(X64Reg reg, int shift);
|
||||
void PSRLD(X64Reg reg, int shift);
|
||||
void PSRLQ(X64Reg reg, int shift);
|
||||
|
||||
void PSLLW(X64Reg reg, int shift);
|
||||
void PSLLD(X64Reg reg, int shift);
|
||||
void PSLLQ(X64Reg reg, int shift);
|
||||
|
||||
void PSRAW(X64Reg reg, int shift);
|
||||
void PSRAD(X64Reg reg, int shift);
|
||||
|
||||
void RTDSC();
|
||||
|
||||
|
|
Loading…
Reference in New Issue