mirror of https://github.com/PCSX2/pcsx2.git
Added COMI.SS/COMI.SD to the emitter (and moved UCOMI from moremovs to comparisons, where it belongs -- oops)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1224 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
9eda5dc951
commit
faf535a461
|
@ -55,6 +55,22 @@ public:
|
|||
SimdImpl_Compare() {} //GCWhat?
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Compare scalar floating point values and set EFLAGS (Ordered or Unordered)
|
||||
//
|
||||
template< bool Ordered >
|
||||
class SimdImpl_COMI
|
||||
{
|
||||
protected:
|
||||
static const u16 OpcodeSSE = Ordered ? 0x2f : 0x2e;
|
||||
|
||||
public:
|
||||
const SimdImpl_DestRegSSE<0x00,OpcodeSSE> SS;
|
||||
const SimdImpl_DestRegSSE<0x66,OpcodeSSE> SD;
|
||||
|
||||
SimdImpl_COMI() {}
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
|
|
@ -165,18 +165,6 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
template< u8 AltPrefix, u16 OpcodeSSE >
|
||||
class SimdImpl_UcomI
|
||||
{
|
||||
public:
|
||||
const SimdImpl_DestRegSSE<0x00,OpcodeSSE> SS;
|
||||
const SimdImpl_DestRegSSE<AltPrefix,OpcodeSSE> SD;
|
||||
SimdImpl_UcomI() {}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Blend - Conditional copying of values in src into dest.
|
||||
//
|
||||
|
|
|
@ -453,7 +453,8 @@ namespace x86Emitter
|
|||
|
||||
extern const Internal::SimdImpl_AndNot xANDN;
|
||||
|
||||
extern const Internal::SimdImpl_UcomI<0x66,0x2e> xUCOMI;
|
||||
extern const Internal::SimdImpl_COMI<true> xCOMI;
|
||||
extern const Internal::SimdImpl_COMI<false> xUCOMI;
|
||||
extern const Internal::SimdImpl_rSqrt<0x53> xRCP;
|
||||
extern const Internal::SimdImpl_rSqrt<0x52> xRSQRT;
|
||||
extern const Internal::SimdImpl_Sqrt<0x51> xSQRT;
|
||||
|
|
|
@ -209,6 +209,7 @@ DEFINE_LEGACY_CMP_OPCODE( NLT )
|
|||
DEFINE_LEGACY_CMP_OPCODE( NLE )
|
||||
DEFINE_LEGACY_CMP_OPCODE( ORD )
|
||||
|
||||
DEFINE_LEGACY_SSSD_OPCODE( COMI )
|
||||
DEFINE_LEGACY_SSSD_OPCODE( UCOMI )
|
||||
DEFINE_LEGACY_RSQRT_OPCODE( RCP )
|
||||
DEFINE_LEGACY_RSQRT_OPCODE( RSQRT )
|
||||
|
|
|
@ -95,14 +95,9 @@ const MovhlImplAll<0x12> xMOVL;
|
|||
const MovhlImpl_RtoR<0x16> xMOVLH;
|
||||
const MovhlImpl_RtoR<0x12> xMOVHL;
|
||||
|
||||
const SimdImpl_DestRegEither<0x66,0xdb> xPAND;
|
||||
const SimdImpl_DestRegEither<0x66,0xdf> xPANDN;
|
||||
const SimdImpl_DestRegEither<0x66,0xeb> xPOR;
|
||||
const SimdImpl_DestRegEither<0x66,0xef> xPXOR;
|
||||
|
||||
const SimdImpl_AndNot xANDN;
|
||||
|
||||
const SimdImpl_UcomI<0x66,0x2e> xUCOMI;
|
||||
const SimdImpl_COMI<true> xCOMI;
|
||||
const SimdImpl_COMI<false> xUCOMI;
|
||||
const SimdImpl_rSqrt<0x53> xRCP;
|
||||
const SimdImpl_rSqrt<0x52> xRSQRT;
|
||||
const SimdImpl_Sqrt<0x51> xSQRT;
|
||||
|
@ -111,6 +106,11 @@ const SimdImpl_MinMax<0x5f> xMAX;
|
|||
const SimdImpl_MinMax<0x5d> xMIN;
|
||||
const SimdImpl_Shuffle<0xc6> xSHUF;
|
||||
|
||||
const SimdImpl_DestRegEither<0x66,0xdb> xPAND;
|
||||
const SimdImpl_DestRegEither<0x66,0xdf> xPANDN;
|
||||
const SimdImpl_DestRegEither<0x66,0xeb> xPOR;
|
||||
const SimdImpl_DestRegEither<0x66,0xef> xPXOR;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// [SSE-4.1] Performs a bitwise AND of dest against src, and sets the ZF flag
|
||||
|
|
Loading…
Reference in New Issue