Fix a small mistake with ecowx/eciwx opcodes (thanks ayuanx)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4721 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2009-12-23 08:14:23 +00:00
parent ea61532926
commit fa19e7f299
4 changed files with 10 additions and 12 deletions

View file

@ -250,11 +250,11 @@ void UpdateInterrupts()
{
if (g_AudioRegister.m_Control.AIINT & g_AudioRegister.m_Control.AIINTMSK)
{
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AUDIO, true);
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, true);
}
else
{
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AUDIO, false);
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, false);
}
}

View file

@ -210,12 +210,12 @@ static const char *Debug_GetInterruptName(u32 _causemask)
{
switch (_causemask)
{
case INT_CAUSE_ERROR: return "INT_CAUSE_ERROR";
case INT_CAUSE_PI: return "INT_CAUSE_PI";
case INT_CAUSE_DI: return "INT_CAUSE_DI";
case INT_CAUSE_RSW: return "INT_CAUSE_RSW";
case INT_CAUSE_SI: return "INT_CAUSE_SI";
case INT_CAUSE_EXI: return "INT_CAUSE_EXI";
case INT_CAUSE_AUDIO: return "INT_CAUSE_AUDIO";
case INT_CAUSE_AI: return "INT_CAUSE_AI";
case INT_CAUSE_DSP: return "INT_CAUSE_DSP";
case INT_CAUSE_MEMORY: return "INT_CAUSE_MEMORY";
case INT_CAUSE_VI: return "INT_CAUSE_VI";

View file

@ -28,12 +28,12 @@ namespace ProcessorInterface
enum InterruptCause
{
INT_CAUSE_ERROR = 0x1, // YAGCD says: GP runtime error
INT_CAUSE_PI = 0x1, // YAGCD says: GP runtime error
INT_CAUSE_RSW = 0x2, // Reset Switch
INT_CAUSE_DI = 0x4, // DVD interrupt
INT_CAUSE_SI = 0x8, // Serial interface
INT_CAUSE_EXI = 0x10, // Expansion interface
INT_CAUSE_AUDIO = 0x20, // Audio Interface Streaming
INT_CAUSE_AI = 0x20, // Audio Interface Streaming
INT_CAUSE_DSP = 0x40, // DSP interface
INT_CAUSE_MEMORY = 0x80, // Memory interface
INT_CAUSE_VI = 0x100, // Video interface
@ -41,9 +41,9 @@ enum InterruptCause
INT_CAUSE_PE_FINISH = 0x400, // GP Finished
INT_CAUSE_CP = 0x800, // Command Fifo
INT_CAUSE_DEBUG = 0x1000, // Debugger (from devkit)
INT_CAUSE_HSP = 0x2000, // High Speed Port
INT_CAUSE_HSP = 0x2000, // High Speed Port (from sdram controller)
INT_CAUSE_WII_IPC = 0x4000, // Wii IPC
INT_CAUSE_RST_BUTTON = 0x10000 // ResetButtonState (1 = unpressed, 0 = pressed) (shuffle2) beh, YAGCD says the inverse...
INT_CAUSE_RST_BUTTON = 0x10000 // ResetButtonState (1 = unpressed, 0 = pressed) it's a state, not maskable
};

View file

@ -330,9 +330,8 @@ void eciwx(UGeckoInstruction _inst)
b = m_GPR[_inst.RA];
EA = b + m_GPR[_inst.RB];
if (!PowerPC::ppcState.spr[SPR_EAR] & 0x80000000)
if (!(PowerPC::ppcState.spr[SPR_EAR] & 0x80000000))
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
//else if?
if (EA & 3)
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;
@ -351,9 +350,8 @@ void ecowx(UGeckoInstruction _inst)
b = m_GPR[_inst.RA];
EA = b + m_GPR[_inst.RB];
if (!PowerPC::ppcState.spr[SPR_EAR] & 0x80000000)
if (!(PowerPC::ppcState.spr[SPR_EAR] & 0x80000000))
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
//else if?
if (EA & 3)
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;