Revision 2f462816 target-ppc/helper_regs.h

b/target-ppc/helper_regs.h
82 82

  
83 83
static always_inline int hreg_store_msr (CPUPPCState *env, target_ulong value)
84 84
{
85
    int enter_pm, excp;
85
    int excp;
86 86

  
87 87
    excp = 0;
88 88
    value &= env->msr_mask;
......
106 106
#endif
107 107
    env->msr = value;
108 108
    hreg_compute_hflags(env);
109
    enter_pm = 0;
110 109
#if !defined (CONFIG_USER_ONLY)
111 110
    if (unlikely(msr_pow == 1)) {
112
        switch (env->excp_model) {
113
        case POWERPC_EXCP_603:
114
        case POWERPC_EXCP_603E:
115
        case POWERPC_EXCP_G2:
116
            /* Don't handle SLEEP mode: we should disable all clocks...
117
             * No dynamic power-management.
118
             */
119
            if ((env->spr[SPR_HID0] & 0x00C00000) != 0)
120
                enter_pm = 1;
121
            break;
122
        case POWERPC_EXCP_604:
123
            enter_pm = 1;
124
            break;
125
        case POWERPC_EXCP_7x0:
126
            if ((env->spr[SPR_HID0] & 0x00E00000) != 0)
127
                enter_pm = 1;
128
            break;
129
        default:
130
            break;
131
        }
132
        if (enter_pm) {
111
        if ((*env->check_pow)(env)) {
133 112
            env->halted = 1;
134 113
            excp = EXCP_HALTED;
135 114
        }

Also available in: Unified diff