mirror of
				https://github.com/yuzu-emu/unicorn.git
				synced 2025-10-22 08:17:22 +00:00 
			
		
		
		
	target-sparc: fix Trap Based Address Register behavior for sparc64
Accoding the chapter 7.6 Trap Processing of the SPARC Architecture Manual v9, the Trap Based Address Register is not modified as a trap is taken. This fix allows booting FreeBSD-10.3-RELEASE-sparc64. Backports commit de5f1077446ca455342db149737bdc395a7b9882 from qemu
This commit is contained in:
		
							parent
							
								
									34472bd6fd
								
							
						
					
					
						commit
						af0e282ab1
					
				|  | @ -80,9 +80,8 @@ void sparc_cpu_do_interrupt(CPUState *cs) | |||
|     } else if ((intno & 0x1c0) == TT_FILL) { | ||||
|         cpu_set_cwp(env, cpu_cwp_inc(env, env->cwp + 1)); | ||||
|     } | ||||
|     env->tbr &= ~0x7fffULL; | ||||
|     env->tbr |= ((env->tl > 1) ? 1 << 14 : 0) | (intno << 5); | ||||
|     env->pc = env->tbr; | ||||
|     env->pc = env->tbr  & ~0x7fffULL; | ||||
|     env->pc |= ((env->tl > 1) ? 1 << 14 : 0) | (intno << 5); | ||||
|     env->npc = env->pc + 4; | ||||
|     cs->exception_index = -1; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue