mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-18 18:26:27 +01:00
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:
parent
ea61532926
commit
fa19e7f299
@ -250,11 +250,11 @@ void UpdateInterrupts()
|
|||||||
{
|
{
|
||||||
if (g_AudioRegister.m_Control.AIINT & g_AudioRegister.m_Control.AIINTMSK)
|
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
|
else
|
||||||
{
|
{
|
||||||
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AUDIO, false);
|
ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,12 +210,12 @@ static const char *Debug_GetInterruptName(u32 _causemask)
|
|||||||
{
|
{
|
||||||
switch (_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_DI: return "INT_CAUSE_DI";
|
||||||
case INT_CAUSE_RSW: return "INT_CAUSE_RSW";
|
case INT_CAUSE_RSW: return "INT_CAUSE_RSW";
|
||||||
case INT_CAUSE_SI: return "INT_CAUSE_SI";
|
case INT_CAUSE_SI: return "INT_CAUSE_SI";
|
||||||
case INT_CAUSE_EXI: return "INT_CAUSE_EXI";
|
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_DSP: return "INT_CAUSE_DSP";
|
||||||
case INT_CAUSE_MEMORY: return "INT_CAUSE_MEMORY";
|
case INT_CAUSE_MEMORY: return "INT_CAUSE_MEMORY";
|
||||||
case INT_CAUSE_VI: return "INT_CAUSE_VI";
|
case INT_CAUSE_VI: return "INT_CAUSE_VI";
|
||||||
|
@ -28,12 +28,12 @@ namespace ProcessorInterface
|
|||||||
|
|
||||||
enum InterruptCause
|
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_RSW = 0x2, // Reset Switch
|
||||||
INT_CAUSE_DI = 0x4, // DVD interrupt
|
INT_CAUSE_DI = 0x4, // DVD interrupt
|
||||||
INT_CAUSE_SI = 0x8, // Serial interface
|
INT_CAUSE_SI = 0x8, // Serial interface
|
||||||
INT_CAUSE_EXI = 0x10, // Expansion 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_DSP = 0x40, // DSP interface
|
||||||
INT_CAUSE_MEMORY = 0x80, // Memory interface
|
INT_CAUSE_MEMORY = 0x80, // Memory interface
|
||||||
INT_CAUSE_VI = 0x100, // Video interface
|
INT_CAUSE_VI = 0x100, // Video interface
|
||||||
@ -41,9 +41,9 @@ enum InterruptCause
|
|||||||
INT_CAUSE_PE_FINISH = 0x400, // GP Finished
|
INT_CAUSE_PE_FINISH = 0x400, // GP Finished
|
||||||
INT_CAUSE_CP = 0x800, // Command Fifo
|
INT_CAUSE_CP = 0x800, // Command Fifo
|
||||||
INT_CAUSE_DEBUG = 0x1000, // Debugger (from devkit)
|
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_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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -330,9 +330,8 @@ void eciwx(UGeckoInstruction _inst)
|
|||||||
b = m_GPR[_inst.RA];
|
b = m_GPR[_inst.RA];
|
||||||
EA = b + m_GPR[_inst.RB];
|
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;
|
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
|
||||||
//else if?
|
|
||||||
if (EA & 3)
|
if (EA & 3)
|
||||||
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;
|
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;
|
||||||
|
|
||||||
@ -351,9 +350,8 @@ void ecowx(UGeckoInstruction _inst)
|
|||||||
b = m_GPR[_inst.RA];
|
b = m_GPR[_inst.RA];
|
||||||
EA = b + m_GPR[_inst.RB];
|
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;
|
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
|
||||||
//else if?
|
|
||||||
if (EA & 3)
|
if (EA & 3)
|
||||||
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;
|
PowerPC::ppcState.Exceptions |= EXCEPTION_ALIGNMENT;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user