mirror of
https://github.com/ARMSX2/ARMSX2.git
synced 2026-08-24 16:50:16 -07:00
Core: Don't create xImpl_G1Logic instances
This commit is contained in:
committed by
TellowKrinkle
parent
e5ba376985
commit
59125c9b12
+13
-11
@@ -454,11 +454,12 @@ namespace
|
||||
|
||||
static void rpsxLogicalOp_constv(LogicalOp op, int info, int creg, u32 vreg, int regv)
|
||||
{
|
||||
xImpl_G1Logic bad{};
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND : op == LogicalOp::OR ? xOR :
|
||||
op == LogicalOp::XOR ? xXOR :
|
||||
op == LogicalOp::NOR ? xOR :
|
||||
bad;
|
||||
xImpl_G1Logic* bad = nullptr;
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND
|
||||
: op == LogicalOp::OR ? xOR
|
||||
: op == LogicalOp::XOR ? xXOR
|
||||
: op == LogicalOp::NOR ? xOR
|
||||
: *bad;
|
||||
s32 fixedInput, fixedOutput, identityInput;
|
||||
bool hasFixed = true;
|
||||
switch (op)
|
||||
@@ -509,12 +510,13 @@ static void rpsxLogicalOp(LogicalOp op, int info)
|
||||
{
|
||||
pxAssert(!(info & PROCESS_EE_XMM));
|
||||
|
||||
xImpl_G1Logic bad{};
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND : op == LogicalOp::OR ? xOR :
|
||||
op == LogicalOp::XOR ? xXOR :
|
||||
op == LogicalOp::NOR ? xOR :
|
||||
bad;
|
||||
pxAssert(&xOP != &bad);
|
||||
xImpl_G1Logic* bad = nullptr;
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND
|
||||
: op == LogicalOp::OR ? xOR
|
||||
: op == LogicalOp::XOR ? xXOR
|
||||
: op == LogicalOp::NOR ? xOR
|
||||
: *bad;
|
||||
pxAssert(&xOP != bad);
|
||||
|
||||
// swap because it's commutative and Rd might be Rt
|
||||
u32 rs = _Rs_, rt = _Rt_;
|
||||
|
||||
@@ -412,11 +412,12 @@ static void recLogicalOp_constv(LogicalOp op, int info, int creg, u32 vreg, int
|
||||
{
|
||||
pxAssert(!(info & PROCESS_EE_XMM));
|
||||
|
||||
xImpl_G1Logic bad{};
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND : op == LogicalOp::OR ? xOR :
|
||||
op == LogicalOp::XOR ? xXOR :
|
||||
op == LogicalOp::NOR ? xOR :
|
||||
bad;
|
||||
xImpl_G1Logic* bad = nullptr;
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND
|
||||
: op == LogicalOp::OR ? xOR
|
||||
: op == LogicalOp::XOR ? xXOR
|
||||
: op == LogicalOp::NOR ? xOR
|
||||
: *bad;
|
||||
s64 fixedInput, fixedOutput, identityInput;
|
||||
bool hasFixed = true;
|
||||
switch (op)
|
||||
@@ -467,12 +468,13 @@ static void recLogicalOp(LogicalOp op, int info)
|
||||
{
|
||||
pxAssert(!(info & PROCESS_EE_XMM));
|
||||
|
||||
xImpl_G1Logic bad{};
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND : op == LogicalOp::OR ? xOR :
|
||||
op == LogicalOp::XOR ? xXOR :
|
||||
op == LogicalOp::NOR ? xOR :
|
||||
bad;
|
||||
pxAssert(&xOP != &bad);
|
||||
xImpl_G1Logic* bad = nullptr;
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND
|
||||
: op == LogicalOp::OR ? xOR
|
||||
: op == LogicalOp::XOR ? xXOR
|
||||
: op == LogicalOp::NOR ? xOR
|
||||
: *bad;
|
||||
pxAssert(&xOP != bad);
|
||||
|
||||
// swap because it's commutative and Rd might be Rt
|
||||
u32 rs = _Rs_, rt = _Rt_;
|
||||
|
||||
@@ -165,11 +165,12 @@ enum class LogicalOp
|
||||
|
||||
static void recLogicalOpI(int info, LogicalOp op)
|
||||
{
|
||||
xImpl_G1Logic bad{};
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND : op == LogicalOp::OR ? xOR :
|
||||
op == LogicalOp::XOR ? xXOR :
|
||||
bad;
|
||||
pxAssert(&xOP != &bad);
|
||||
xImpl_G1Logic* bad = nullptr;
|
||||
const xImpl_G1Logic& xOP = op == LogicalOp::AND ? xAND
|
||||
: op == LogicalOp::OR ? xOR
|
||||
: op == LogicalOp::XOR ? xXOR
|
||||
: *bad;
|
||||
pxAssert(&xOP != bad);
|
||||
|
||||
if (_ImmU_ != 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user