Skip to content

Commit

Permalink
Merge pull request #314 from Sonicadvance1/Clean-UpdateCR1
Browse files Browse the repository at this point in the history
Removes unused argument in Helper_UpdateCR1.
  • Loading branch information
delroth committed Apr 27, 2014
2 parents 21315ae + 9449796 commit 8bf2a33
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 54 deletions.
3 changes: 1 addition & 2 deletions Source/Core/Core/PowerPC/Interpreter/Interpreter.h
Expand Up @@ -304,8 +304,7 @@ class Interpreter : public CPUCoreBase
private:
// flag helper
static void Helper_UpdateCR0(u32 _uValue);
static void Helper_UpdateCR1(double _fValue);
static void Helper_UpdateCR1(float _fValue);
static void Helper_UpdateCR1();
static void Helper_UpdateCRx(int _x, u32 _uValue);

// address helper
Expand Down
54 changes: 27 additions & 27 deletions Source/Core/Core/PowerPC/Interpreter/Interpreter_FloatingPoint.cpp
Expand Up @@ -28,7 +28,7 @@ void UpdateSSEState();

// Extremely rare - actually, never seen.
// Star Wars : Rogue Leader spams that at some point :|
void Interpreter::Helper_UpdateCR1(double _fValue)
void Interpreter::Helper_UpdateCR1()
{
SetCRField(1, (FPSCR.FX << 4) | (FPSCR.FEX << 3) | (FPSCR.VX << 2) | FPSCR.OX);
}
Expand Down Expand Up @@ -172,7 +172,7 @@ void Interpreter::fctiwx(UGeckoInstruction _inst)
if (value == 0 && ( (*(u64*)&b) & DOUBLE_SIGN ))
riPS0(_inst.FD) |= 0x100000000ull;
if (_inst.Rc)
Helper_UpdateCR1(rPS0(_inst.FD));
Helper_UpdateCR1();
}

// Always round toward zero
Expand Down Expand Up @@ -216,42 +216,42 @@ void Interpreter::fctiwzx(UGeckoInstruction _inst)
if (value == 0 && ( (*(u64*)&b) & DOUBLE_SIGN ))
riPS0(_inst.FD) |= 0x100000000ull;
if (_inst.Rc)
Helper_UpdateCR1(rPS0(_inst.FD));
Helper_UpdateCR1();
}

void Interpreter::fmrx(UGeckoInstruction _inst)
{
riPS0(_inst.FD) = riPS0(_inst.FB);
// This is a binary instruction. Does not alter FPSCR
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fabsx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = fabs(rPS0(_inst.FB));
// This is a binary instruction. Does not alter FPSCR
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fnabsx(UGeckoInstruction _inst)
{
riPS0(_inst.FD) = riPS0(_inst.FB) | (1ULL << 63);
// This is a binary instruction. Does not alter FPSCR
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fnegx(UGeckoInstruction _inst)
{
riPS0(_inst.FD) = riPS0(_inst.FB) ^ (1ULL << 63);
// This is a binary instruction. Does not alter FPSCR
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fselx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = (rPS0(_inst.FA) >= -0.0) ? rPS0(_inst.FC) : rPS0(_inst.FB);
// This is a binary instruction. Does not alter FPSCR
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

// !!! warning !!!
Expand All @@ -275,7 +275,7 @@ void Interpreter::fmulx(UGeckoInstruction _inst)
FPSCR.FI = 0; // are these flags important?
FPSCR.FR = 0;
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}
void Interpreter::fmulsx(UGeckoInstruction _inst)
{
Expand All @@ -285,15 +285,15 @@ void Interpreter::fmulsx(UGeckoInstruction _inst)
FPSCR.FI = 0;
FPSCR.FR = 0;
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fmaddx(UGeckoInstruction _inst)
{
double result = ForceDouble(NI_madd( rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB) ));
rPS0(_inst.FD) = result;
UpdateFPRF(result);
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fmaddsx(UGeckoInstruction _inst)
Expand All @@ -303,21 +303,21 @@ void Interpreter::fmaddsx(UGeckoInstruction _inst)
FPSCR.FI = d_value != rPS0(_inst.FD);
FPSCR.FR = 0;
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}


void Interpreter::faddx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = ForceDouble(NI_add(rPS0(_inst.FA), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}
void Interpreter::faddsx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = rPS1(_inst.FD) = ForceSingle(NI_add(rPS0(_inst.FA), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fdivx(UGeckoInstruction _inst)
Expand Down Expand Up @@ -349,7 +349,7 @@ void Interpreter::fdivx(UGeckoInstruction _inst)
}
UpdateFPRF(rPS0(_inst.FD));
// FR,FI,OX,UX???
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}
void Interpreter::fdivsx(UGeckoInstruction _inst)
{
Expand Down Expand Up @@ -381,7 +381,7 @@ void Interpreter::fdivsx(UGeckoInstruction _inst)
}
rPS0(_inst.FD) = rPS1(_inst.FD) = res;
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

// Single precision only.
Expand All @@ -406,7 +406,7 @@ void Interpreter::fresx(UGeckoInstruction _inst)
SetFPException(FPSCR_ZX);
}
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::frsqrtex(UGeckoInstruction _inst)
Expand Down Expand Up @@ -449,43 +449,43 @@ void Interpreter::frsqrtex(UGeckoInstruction _inst)
#endif
}
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fmsubx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = ForceDouble(NI_msub( rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB) ));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fmsubsx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = rPS1(_inst.FD) =
ForceSingle( NI_msub(rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB) ));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fnmaddx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = ForceDouble(-NI_madd(rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}
void Interpreter::fnmaddsx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = rPS1(_inst.FD) =
ForceSingle(-NI_madd(rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fnmsubx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = ForceDouble(-NI_msub(rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

// fnmsubsx does not handle QNAN properly - see NI_msub
Expand All @@ -494,21 +494,21 @@ void Interpreter::fnmsubsx(UGeckoInstruction _inst)
rPS0(_inst.FD) = rPS1(_inst.FD) =
ForceSingle(-NI_msub(rPS0(_inst.FA), rPS0(_inst.FC), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fsubx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = ForceDouble(NI_sub(rPS0(_inst.FA), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fsubsx(UGeckoInstruction _inst)
{
rPS0(_inst.FD) = rPS1(_inst.FD) = ForceSingle(NI_sub(rPS0(_inst.FA), rPS0(_inst.FB)));
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

void Interpreter::fsqrtx(UGeckoInstruction _inst)
Expand All @@ -521,5 +521,5 @@ void Interpreter::fsqrtx(UGeckoInstruction _inst)
}
rPS0(_inst.FD) = sqrt(b);
UpdateFPRF(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1(rPS0(_inst.FD));
if (_inst.Rc) Helper_UpdateCR1();
}

0 comments on commit 8bf2a33

Please sign in to comment.