mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	hacked CPU interpreter to ignore branch on SVC instruction (as we are HLEing this...)
This commit is contained in:
		
							parent
							
								
									cd7de52fea
								
							
						
					
					
						commit
						4d88318903
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		|  | @ -530,9 +530,13 @@ ARMul_Abort (ARMul_State * state, ARMword vector) | |||
| 			  isize); | ||||
| 		break; | ||||
| 	case ARMul_SWIV:	/* Software Interrupt */ | ||||
| 		SETABORT (IBIT, state->prog32Sig ? SVC32MODE : SVC26MODE, | ||||
| 		// Modified SETABORT that doesn't branch to a SVC vector as we are implementing this in HLE
 | ||||
| 		// Instead of doing normal routine, backup R15 by one instruction (this is what PC will get 
 | ||||
| 		// set to, making it the next instruction after the SVC call), and skip setting the LR.
 | ||||
| 		SETABORT_SKIPBRANCH (IBIT, state->prog32Sig ? SVC32MODE : SVC26MODE, | ||||
| 			  isize); | ||||
| 		break; | ||||
| 		state->Reg[15] -= 4; | ||||
| 		return; | ||||
| 	case ARMul_PrefetchAbortV:	/* Prefetch Abort */ | ||||
| 		state->AbortAddr = 1; | ||||
| 		SETABORT (IBIT, state->prog32Sig ? ABORT32MODE : SVC26MODE, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue