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?
|
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.
|
// 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_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<0x53> xRCP;
|
||||||
extern const Internal::SimdImpl_rSqrt<0x52> xRSQRT;
|
extern const Internal::SimdImpl_rSqrt<0x52> xRSQRT;
|
||||||
extern const Internal::SimdImpl_Sqrt<0x51> xSQRT;
|
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( NLE )
|
||||||
DEFINE_LEGACY_CMP_OPCODE( ORD )
|
DEFINE_LEGACY_CMP_OPCODE( ORD )
|
||||||
|
|
||||||
|
DEFINE_LEGACY_SSSD_OPCODE( COMI )
|
||||||
DEFINE_LEGACY_SSSD_OPCODE( UCOMI )
|
DEFINE_LEGACY_SSSD_OPCODE( UCOMI )
|
||||||
DEFINE_LEGACY_RSQRT_OPCODE( RCP )
|
DEFINE_LEGACY_RSQRT_OPCODE( RCP )
|
||||||
DEFINE_LEGACY_RSQRT_OPCODE( RSQRT )
|
DEFINE_LEGACY_RSQRT_OPCODE( RSQRT )
|
||||||
|
|
|
@ -95,14 +95,9 @@ const MovhlImplAll<0x12> xMOVL;
|
||||||
const MovhlImpl_RtoR<0x16> xMOVLH;
|
const MovhlImpl_RtoR<0x16> xMOVLH;
|
||||||
const MovhlImpl_RtoR<0x12> xMOVHL;
|
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_AndNot xANDN;
|
||||||
|
const SimdImpl_COMI<true> xCOMI;
|
||||||
const SimdImpl_UcomI<0x66,0x2e> xUCOMI;
|
const SimdImpl_COMI<false> xUCOMI;
|
||||||
const SimdImpl_rSqrt<0x53> xRCP;
|
const SimdImpl_rSqrt<0x53> xRCP;
|
||||||
const SimdImpl_rSqrt<0x52> xRSQRT;
|
const SimdImpl_rSqrt<0x52> xRSQRT;
|
||||||
const SimdImpl_Sqrt<0x51> xSQRT;
|
const SimdImpl_Sqrt<0x51> xSQRT;
|
||||||
|
@ -111,6 +106,11 @@ const SimdImpl_MinMax<0x5f> xMAX;
|
||||||
const SimdImpl_MinMax<0x5d> xMIN;
|
const SimdImpl_MinMax<0x5d> xMIN;
|
||||||
const SimdImpl_Shuffle<0xc6> xSHUF;
|
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
|
// [SSE-4.1] Performs a bitwise AND of dest against src, and sets the ZF flag
|
||||||
|
|
Loading…
Reference in New Issue