Commit 6ef905f69cbeb03e8fe204d8aaa354d77f13a7d7
1 parent
7f84a729
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
Showing
2 changed files
with
5 additions
and
2 deletions
target-sparc/cpu.h
| @@ -89,6 +89,7 @@ | @@ -89,6 +89,7 @@ | ||
| 89 | #if defined(TARGET_SPARC64) | 89 | #if defined(TARGET_SPARC64) |
| 90 | #define PS_IG (1<<11) | 90 | #define PS_IG (1<<11) |
| 91 | #define PS_MG (1<<10) | 91 | #define PS_MG (1<<10) |
| 92 | +#define PS_RMO (1<<7) | ||
| 92 | #define PS_RED (1<<5) | 93 | #define PS_RED (1<<5) |
| 93 | #define PS_PEF (1<<4) | 94 | #define PS_PEF (1<<4) |
| 94 | #define PS_AM (1<<3) | 95 | #define PS_AM (1<<3) |
target-sparc/translate.c
| @@ -3315,8 +3315,10 @@ void cpu_reset(CPUSPARCState *env) | @@ -3315,8 +3315,10 @@ void cpu_reset(CPUSPARCState *env) | ||
| 3315 | #if defined(CONFIG_USER_ONLY) | 3315 | #if defined(CONFIG_USER_ONLY) |
| 3316 | env->user_mode_only = 1; | 3316 | env->user_mode_only = 1; |
| 3317 | #ifdef TARGET_SPARC64 | 3317 | #ifdef TARGET_SPARC64 |
| 3318 | - env->cleanwin = NWINDOWS - 1; | ||
| 3319 | - env->cansave = NWINDOWS - 1; | 3318 | + env->cleanwin = NWINDOWS - 2; |
| 3319 | + env->cansave = NWINDOWS - 2; | ||
| 3320 | + env->pstate = PS_RMO | PS_PEF | PS_IE; | ||
| 3321 | + env->asi = 0x82; // Primary no-fault | ||
| 3320 | #endif | 3322 | #endif |
| 3321 | #else | 3323 | #else |
| 3322 | env->psret = 0; | 3324 | env->psret = 0; |