diff options
| author | Marko Pusljar <LM1234@gmail.com> | 2010-02-21 10:35:28 +0000 |
|---|---|---|
| committer | Marko Pusljar <LM1234@gmail.com> | 2010-02-21 10:35:28 +0000 |
| commit | 885299d9856095508036c326870318cf149d318d (patch) | |
| tree | 28ffcb5a551b0fd2421bda60893bc2e2d1fed06f /Source/Core/DSPCore/Src/DSPIntCCUtil.cpp | |
| parent | 2aa03f5b3b1b6212addff70201a3ba3662471ed9 (diff) | |
DSPLLE - flags&stuff (more later)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5093 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DSPCore/Src/DSPIntCCUtil.cpp')
| -rw-r--r-- | Source/Core/DSPCore/Src/DSPIntCCUtil.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/Source/Core/DSPCore/Src/DSPIntCCUtil.cpp b/Source/Core/DSPCore/Src/DSPIntCCUtil.cpp index ac687b15f9..c62aa25637 100644 --- a/Source/Core/DSPCore/Src/DSPIntCCUtil.cpp +++ b/Source/Core/DSPCore/Src/DSPIntCCUtil.cpp @@ -26,7 +26,7 @@ namespace DSPInterpreter { -void Update_SR_Register64(s64 _Value, bool carry, bool overflow, bool sr10) +void Update_SR_Register64(s64 _Value, bool carry, bool overflow) { // TODO: recheck 0x1,0x2,even 0x80... implement... g_dsp.r[DSP_REG_SR] &= ~SR_CMP_MASK; @@ -55,10 +55,10 @@ void Update_SR_Register64(s64 _Value, bool carry, bool overflow, bool sr10) g_dsp.r[DSP_REG_SR] |= SR_SIGN; } - // 0x10 - abs((u40)acc?) >= 0x80000000 - if (sr10) + // 0x10 + if (_Value != (s32)_Value) { - g_dsp.r[DSP_REG_SR] |= SR_10; + g_dsp.r[DSP_REG_SR] |= SR_OVER_S32; } // 0x20 - Checks if top bits of m are equal, what is it good for? @@ -66,10 +66,14 @@ void Update_SR_Register64(s64 _Value, bool carry, bool overflow, bool sr10) { g_dsp.r[DSP_REG_SR] |= SR_TOP2BITS; } + + // 0x80 + { + } } -void Update_SR_Register16(s16 _Value, bool carry, bool overflow, bool sr10) +void Update_SR_Register16(s16 _Value, bool carry, bool overflow, bool overS32) { // TODO: recheck 0x1,0x2,even 0x80... implement... g_dsp.r[DSP_REG_SR] &= ~SR_CMP_MASK; @@ -98,10 +102,10 @@ void Update_SR_Register16(s16 _Value, bool carry, bool overflow, bool sr10) g_dsp.r[DSP_REG_SR] |= SR_SIGN; } - // 0x10 - abs((u40)acc?) >= 0x80000000 - if (sr10) + // 0x10 + if (overS32) { - g_dsp.r[DSP_REG_SR] |= SR_10; + g_dsp.r[DSP_REG_SR] |= SR_OVER_S32; } // 0x20 - Checks if top bits of m are equal, what is it good for? @@ -109,6 +113,10 @@ void Update_SR_Register16(s16 _Value, bool carry, bool overflow, bool sr10) { g_dsp.r[DSP_REG_SR] |= SR_TOP2BITS; } + + // 0x80 + { + } } void Update_SR_LZ(bool value) { |
