From 9168b3a545fae3db8ad0ee7de872c4302651ba7f Mon Sep 17 00:00:00 2001 From: "Igor V. Kovalenko" Date: Wed, 2 Jun 2010 00:12:22 +0400 Subject: sparc64: fix tag access register on mmu traps - set mmu tag access register on FAULT and PROT traps as well Signed-off-by: Igor V. Kovalenko Signed-off-by: Blue Swirl --- target-sparc/helper.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target-sparc/helper.c b/target-sparc/helper.c index 96a22f3475..aa1fd632cc 100644 --- a/target-sparc/helper.c +++ b/target-sparc/helper.c @@ -495,6 +495,9 @@ static int get_physical_address_data(CPUState *env, env->dmmu.sfsr |= (fault_type << 7); env->dmmu.sfar = address; /* Fault address register */ + + env->dmmu.tag_access = (address & ~0x1fffULL) | context; + return 1; } } @@ -544,6 +547,8 @@ static int get_physical_address_code(CPUState *env, env->immu.sfsr |= (is_user << 3) | 1; env->exception_index = TT_TFAULT; + env->immu.tag_access = (address & ~0x1fffULL) | context; + DPRINTF_MMU("TFAULT at %" PRIx64 " context %" PRIx64 "\n", address, context); -- cgit v1.2.3