mirror of https://github.com/xemu-project/xemu.git
MIPS patches 2016-04-28
Changes: * fixed RDHWR exception host PC -----BEGIN PGP SIGNATURE----- iQEcBAABAgAGBQJXIdO2AAoJEFIRjjwLKdprFXEH/1vHbu5dCQjnv1khqa9N11+a 3g2q+KEJuV8r7ZQ2HvlV2Z5iGw1jYDma8vO6xsWhHC7j01NO1nkbDAluPjY6N2Aw zdY6NixDd1xNcbc+rg0dYSrS6i42g6Emkaqkb2MzfMj+SjE6dvDWFjqn2gF5VKWy oweXoZsn5UhAKDiV8dTRquRH/cF08WFBo+p4Eo4lq5b+m3n/NjESE7n8bm+JjeII +1POlZiR+n4uBSEWfLKxR5/kfQMIq9TSXv57izjRX/dz1SwRNrOlOhQ3Sq+BUfQE mqIZRFLKHPuePp6ti7zBo5+33McEYAJQR7g2aZYvegB3VW4BqdI/zwHgruPK7ns= =m8Gv -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/lalrae/tags/mips-20160428' into staging MIPS patches 2016-04-28 Changes: * fixed RDHWR exception host PC # gpg: Signature made Thu 28 Apr 2016 10:11:18 BST using RSA key ID 0B29DA6B # gpg: Good signature from "Leon Alrae <leon.alrae@imgtec.com>" * remotes/lalrae/tags/mips-20160428: target-mips: Fix RDHWR exception host PC Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
8c4bf97580
|
@ -2294,29 +2294,29 @@ void helper_deret(CPUMIPSState *env)
|
|||
}
|
||||
#endif /* !CONFIG_USER_ONLY */
|
||||
|
||||
static inline void check_hwrena(CPUMIPSState *env, int reg)
|
||||
static inline void check_hwrena(CPUMIPSState *env, int reg, uintptr_t pc)
|
||||
{
|
||||
if ((env->hflags & MIPS_HFLAG_CP0) || (env->CP0_HWREna & (1 << reg))) {
|
||||
return;
|
||||
}
|
||||
do_raise_exception(env, EXCP_RI, GETPC());
|
||||
do_raise_exception(env, EXCP_RI, pc);
|
||||
}
|
||||
|
||||
target_ulong helper_rdhwr_cpunum(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 0);
|
||||
check_hwrena(env, 0, GETPC());
|
||||
return env->CP0_EBase & 0x3ff;
|
||||
}
|
||||
|
||||
target_ulong helper_rdhwr_synci_step(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 1);
|
||||
check_hwrena(env, 1, GETPC());
|
||||
return env->SYNCI_Step;
|
||||
}
|
||||
|
||||
target_ulong helper_rdhwr_cc(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 2);
|
||||
check_hwrena(env, 2, GETPC());
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
return env->CP0_Count;
|
||||
#else
|
||||
|
@ -2326,19 +2326,19 @@ target_ulong helper_rdhwr_cc(CPUMIPSState *env)
|
|||
|
||||
target_ulong helper_rdhwr_ccres(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 3);
|
||||
check_hwrena(env, 3, GETPC());
|
||||
return env->CCRes;
|
||||
}
|
||||
|
||||
target_ulong helper_rdhwr_performance(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 4);
|
||||
check_hwrena(env, 4, GETPC());
|
||||
return env->CP0_Performance0;
|
||||
}
|
||||
|
||||
target_ulong helper_rdhwr_xnp(CPUMIPSState *env)
|
||||
{
|
||||
check_hwrena(env, 5);
|
||||
check_hwrena(env, 5, GETPC());
|
||||
return (env->CP0_Config5 >> CP0C5_XNP) & 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue