mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-21 09:49:01 +00:00
DSPEmitter: Fix infinite loop when an exception is present at the start of a block
This commit is contained in:
parent
bfb1eff30e
commit
dd76c0d1a0
1 changed files with 2 additions and 1 deletions
|
@ -243,6 +243,8 @@ void DSPEmitter::Compile(u16 start_addr)
|
||||||
auto& analyzer = m_dsp_core.DSPState().GetAnalyzer();
|
auto& analyzer = m_dsp_core.DSPState().GetAnalyzer();
|
||||||
while (m_compile_pc < start_addr + MAX_BLOCK_SIZE)
|
while (m_compile_pc < start_addr + MAX_BLOCK_SIZE)
|
||||||
{
|
{
|
||||||
|
m_block_size[start_addr]++;
|
||||||
|
|
||||||
if (analyzer.IsCheckExceptions(m_compile_pc))
|
if (analyzer.IsCheckExceptions(m_compile_pc))
|
||||||
checkExceptions(m_block_size[start_addr]);
|
checkExceptions(m_block_size[start_addr]);
|
||||||
|
|
||||||
|
@ -251,7 +253,6 @@ void DSPEmitter::Compile(u16 start_addr)
|
||||||
|
|
||||||
EmitInstruction(inst);
|
EmitInstruction(inst);
|
||||||
|
|
||||||
m_block_size[start_addr]++;
|
|
||||||
m_compile_pc += opcode->size;
|
m_compile_pc += opcode->size;
|
||||||
|
|
||||||
// If the block was trying to link into itself, remove the link
|
// If the block was trying to link into itself, remove the link
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue