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:
magumagu9 2008-12-18 06:46:32 +00:00
parent a6a279a7da
commit 97e01e31d0
2 changed files with 19 additions and 1 deletions

View File

@ -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); }

View File

@ -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);