diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-07-07 20:48:42 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-07-07 20:48:42 +0000 |
commit | 6ef905f69cbeb03e8fe204d8aaa354d77f13a7d7 (patch) | |
tree | a6d479ed4f35a62d19994910400e3861307695f3 /target-sparc | |
parent | 7f84a7291b19aa5679ef58fdad0a81df4b8a6af0 (diff) |
Fix wrong number of clean/saveable windows, match Linux startup register values
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3050 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r-- | target-sparc/cpu.h | 1 | ||||
-rw-r--r-- | target-sparc/translate.c | 6 |
2 files changed, 5 insertions, 2 deletions
diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h index 7fbc19d142..a3d762f7f9 100644 --- a/target-sparc/cpu.h +++ b/target-sparc/cpu.h @@ -89,6 +89,7 @@ #if defined(TARGET_SPARC64) #define PS_IG (1<<11) #define PS_MG (1<<10) +#define PS_RMO (1<<7) #define PS_RED (1<<5) #define PS_PEF (1<<4) #define PS_AM (1<<3) diff --git a/target-sparc/translate.c b/target-sparc/translate.c index c69ffd9afd..a2f3d5bd34 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -3315,8 +3315,10 @@ void cpu_reset(CPUSPARCState *env) #if defined(CONFIG_USER_ONLY) env->user_mode_only = 1; #ifdef TARGET_SPARC64 - env->cleanwin = NWINDOWS - 1; - env->cansave = NWINDOWS - 1; + env->cleanwin = NWINDOWS - 2; + env->cansave = NWINDOWS - 2; + env->pstate = PS_RMO | PS_PEF | PS_IE; + env->asi = 0x82; // Primary no-fault #endif #else env->psret = 0; |