|
|
@@ -328,8 +328,6 @@ enum SSECompare
|
|
|
ORD,
|
|
|
};
|
|
|
|
|
|
-typedef const u8* JumpTarget;
|
|
|
-
|
|
|
class XEmitter
|
|
|
{
|
|
|
friend struct OpArg; // for Write8 etc
|
|
|
@@ -434,7 +432,6 @@ public:
|
|
|
void CALLptr(OpArg arg);
|
|
|
|
|
|
FixupBranch J_CC(CCFlags conditionCode, bool force5bytes = false);
|
|
|
- //void J_CC(CCFlags conditionCode, JumpTarget target);
|
|
|
void J_CC(CCFlags conditionCode, const u8* addr, bool force5Bytes = false);
|
|
|
|
|
|
void SetJumpTarget(const FixupBranch& branch);
|
|
|
@@ -640,23 +637,6 @@ public:
|
|
|
// SSE/SSE2: Useful alternative to shuffle in some cases.
|
|
|
void MOVDDUP(X64Reg regOp, const OpArg& arg);
|
|
|
|
|
|
- // TODO: Actually implement
|
|
|
-#if 0
|
|
|
- // SSE3: Horizontal operations in SIMD registers. Could be useful for various VFPU things like dot products...
|
|
|
- void ADDSUBPS(X64Reg dest, const OpArg& src);
|
|
|
- void ADDSUBPD(X64Reg dest, const OpArg& src);
|
|
|
- void HADDPD(X64Reg dest, const OpArg& src);
|
|
|
- void HSUBPS(X64Reg dest, const OpArg& src);
|
|
|
- void HSUBPD(X64Reg dest, const OpArg& src);
|
|
|
-
|
|
|
- // SSE4: Further horizontal operations - dot products. These are weirdly flexible, the arg contains both a read mask and a write "mask".
|
|
|
- void DPPD(X64Reg dest, const OpArg& src, u8 arg);
|
|
|
-
|
|
|
- // These are probably useful for VFPU emulation.
|
|
|
- void INSERTPS(X64Reg dest, const OpArg& src, u8 arg);
|
|
|
- void EXTRACTPS(const OpArg& dest, X64Reg src, u8 arg);
|
|
|
-#endif
|
|
|
-
|
|
|
// SSE3: Horizontal operations in SIMD registers. Very slow! shufps-based code beats it handily on Ivy.
|
|
|
void HADDPS(X64Reg dest, const OpArg& src);
|
|
|
|