[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2][SPARC] Fix TA0_Shutdown feature
From: |
Julien Grall |
Subject: |
[Qemu-devel] [PATCH 2/2][SPARC] Fix TA0_Shutdown feature |
Date: |
Tue, 17 May 2011 17:32:33 +0200 |
Fix TA0_SHUTDOWN feature
Signed-off-by: Julien Grall <address@hidden>
---
target-sparc/op_helper.c | 13 +++++++++++--
target-sparc/translate.c | 9 +--------
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index a6fabad..cb775f5 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -326,8 +326,17 @@ void HELPER(raise_exception)(int tt)
void HELPER(trap_always)(int tt)
{
- env->exception_index = tt;
- do_interrupt(env);
+ if (tt == TT_TRAP
+ && env->def->features & CPU_FEATURE_TA0_SHUTDOWN
+#ifndef TARGET_SPARC64
+ && env->psret == 0
+#endif
+ ) {
+ helper_shutdown();
+ } else {
+ env->exception_index = tt;
+ do_interrupt(env);
+ }
}
void helper_shutdown(void)
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index b30003b..a47a2de 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -2009,14 +2009,7 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_addi_tl(cpu_dst, cpu_dst, TT_TRAP);
tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_dst);
- if (rs2 == 0 &&
- dc->def->features & CPU_FEATURE_TA0_SHUTDOWN) {
-
- gen_helper_shutdown();
-
- } else {
- gen_helper_trap_always(cpu_tmp32);
- }
+ gen_helper_trap_always(cpu_tmp32);
} else if (cond != 0) {
TCGv r_cond = tcg_temp_new();
int l1;
--
1.7.4.4
- [Qemu-devel] [PATCH 2/2][SPARC] Fix TA0_Shutdown feature,
Julien Grall <=