Revision 7e8695ed target-sparc/op_helper.c
b/target-sparc/op_helper.c | ||
---|---|---|
11 | 11 |
//#define DEBUG_UNASSIGNED |
12 | 12 |
//#define DEBUG_ASI |
13 | 13 |
//#define DEBUG_PCALL |
14 |
//#define DEBUG_PSTATE |
|
14 | 15 |
|
15 | 16 |
#ifdef DEBUG_MMU |
16 | 17 |
#define DPRINTF_MMU(fmt, ...) \ |
... | ... | |
31 | 32 |
do { printf("ASI: " fmt , ## __VA_ARGS__); } while (0) |
32 | 33 |
#endif |
33 | 34 |
|
35 |
#ifdef DEBUG_PSTATE |
|
36 |
#define DPRINTF_PSTATE(fmt, ...) \ |
|
37 |
do { printf("PSTATE: " fmt , ## __VA_ARGS__); } while (0) |
|
38 |
#else |
|
39 |
#define DPRINTF_PSTATE(fmt, ...) do {} while (0) |
|
40 |
#endif |
|
41 |
|
|
34 | 42 |
#ifdef TARGET_SPARC64 |
35 | 43 |
#ifndef TARGET_ABI32 |
36 | 44 |
#define AM_CHECK(env1) ((env1)->pstate & PS_AM) |
... | ... | |
3244 | 3252 |
{ |
3245 | 3253 |
switch (pstate) { |
3246 | 3254 |
default: |
3255 |
DPRINTF_PSTATE("ERROR in get_gregset: active pstate bits=%x%s%s%s\n", |
|
3256 |
pstate, |
|
3257 |
(pstate & PS_IG) ? " IG" : "", |
|
3258 |
(pstate & PS_MG) ? " MG" : "", |
|
3259 |
(pstate & PS_AG) ? " AG" : ""); |
|
3260 |
/* pass through to normal set of global registers */ |
|
3247 | 3261 |
case 0: |
3248 | 3262 |
return env->bgregs; |
3249 | 3263 |
case PS_AG: |
... | ... | |
3269 | 3283 |
new_pstate_regs = new_pstate & 0xc01; |
3270 | 3284 |
|
3271 | 3285 |
if (new_pstate_regs != pstate_regs) { |
3286 |
DPRINTF_PSTATE("change_pstate: switching regs old=%x new=%x\n", |
|
3287 |
pstate_regs, new_pstate_regs); |
|
3272 | 3288 |
// Switch global register bank |
3273 | 3289 |
src = get_gregset(new_pstate_regs); |
3274 | 3290 |
dst = get_gregset(pstate_regs); |
3275 | 3291 |
memcpy32(dst, env->gregs); |
3276 | 3292 |
memcpy32(env->gregs, src); |
3277 | 3293 |
} |
3294 |
else { |
|
3295 |
DPRINTF_PSTATE("change_pstate: regs new=%x (unchanged)\n", |
|
3296 |
new_pstate_regs); |
|
3297 |
} |
|
3278 | 3298 |
env->pstate = new_pstate; |
3279 | 3299 |
} |
3280 | 3300 |
|
Also available in: Unified diff