Some small emitter enhancements; I was originally planning on actually
using these, but I changed my mind. They could potentially be useful in the future, though. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1574 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
a6a279a7da
commit
97e01e31d0
|
@ -1230,7 +1230,17 @@ namespace Gen
|
||||||
Write8(0xE0 | reg);
|
Write8(0xE0 | reg);
|
||||||
Write8(shift);
|
Write8(shift);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PSRLW(X64Reg reg, int shift) {
|
||||||
|
WriteSSEOp(64, 0x71, true, (X64Reg)2, R(reg));
|
||||||
|
Write8(shift);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PSLLW(X64Reg reg, int shift) {
|
||||||
|
WriteSSEOp(64, 0x71, true, (X64Reg)6, R(reg));
|
||||||
|
Write8(shift);
|
||||||
|
}
|
||||||
|
|
||||||
// WARNING not REX compatible
|
// WARNING not REX compatible
|
||||||
void PSRAD(X64Reg reg, int shift) {
|
void PSRAD(X64Reg reg, int shift) {
|
||||||
if (reg > 7)
|
if (reg > 7)
|
||||||
|
@ -1304,6 +1314,8 @@ namespace Gen
|
||||||
|
|
||||||
void PMOVMSKB(X64Reg dest, OpArg arg) {WriteSSEOp(64, 0xD7, true, dest, arg); }
|
void PMOVMSKB(X64Reg dest, OpArg arg) {WriteSSEOp(64, 0xD7, true, dest, arg); }
|
||||||
|
|
||||||
|
void PSHUFLW(X64Reg regOp, OpArg arg, u8 shuffle) {WriteSSEOp(64, 0x70, false, regOp, arg, 1); Write8(shuffle);}
|
||||||
|
|
||||||
// Prefixes
|
// Prefixes
|
||||||
|
|
||||||
void LOCK() { Write8(0xF0); }
|
void LOCK() { Write8(0xF0); }
|
||||||
|
|
|
@ -520,6 +520,12 @@ namespace Gen
|
||||||
void PMOVMSKB(X64Reg dest, OpArg arg);
|
void PMOVMSKB(X64Reg dest, OpArg arg);
|
||||||
void PSHUFB(X64Reg dest, OpArg arg);
|
void PSHUFB(X64Reg dest, OpArg arg);
|
||||||
|
|
||||||
|
void PSHUFLW(X64Reg dest, OpArg arg, u8 shuffle);
|
||||||
|
|
||||||
|
void PSRLW(X64Reg reg, int shift);
|
||||||
|
void PSLLW(X64Reg reg, int shift);
|
||||||
|
void PSRAW(X64Reg reg, int shift);
|
||||||
|
|
||||||
void RTDSC();
|
void RTDSC();
|
||||||
|
|
||||||
void CallCdeclFunction3(void* fnptr, u32 arg0, u32 arg1, u32 arg2);
|
void CallCdeclFunction3(void* fnptr, u32 arg0, u32 arg1, u32 arg2);
|
||||||
|
|
Loading…
Reference in New Issue