forked from eden-emu/eden
		
	GPU/MMEInterpreter: Ignore the 'exit' flag when it's executed inside a delay slot.
It seems instructions marked with the 'exit' flag will not cause an exit when executed within a delay slot. This was hwtested by fincs.
This commit is contained in:
		
							parent
							
								
									7cb17834c7
								
							
						
					
					
						commit
						9ef45f00bf
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		|  | @ -118,10 +118,10 @@ bool MacroInterpreter::Step(u32 offset, bool is_delay_slot) { | |||
|                           static_cast<u32>(opcode.operation.Value())); | ||||
|     } | ||||
| 
 | ||||
|     if (opcode.is_exit) { | ||||
|     // An instruction with the Exit flag will not actually
 | ||||
|     // cause an exit if it's executed inside a delay slot.
 | ||||
|     if (opcode.is_exit && !is_delay_slot) { | ||||
|         // Exit has a delay slot, execute the next instruction
 | ||||
|         // Note: Executing an exit during a branch delay slot will cause the instruction at the
 | ||||
|         // branch target to be executed before exiting.
 | ||||
|         Step(offset, true); | ||||
|         return false; | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sebastian Valle
						Sebastian Valle