/[qemu]/qemu/target-ppc/helper.c
ViewVC logotype

Diff of /qemu/target-ppc/helper.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.29 by bellard, Wed Nov 23 22:05:28 2005 UTC revision 1.30 by bellard, Sat Nov 26 20:15:14 2005 UTC
# Line 807  void do_compute_hflags (CPUPPCState *env Line 807  void do_compute_hflags (CPUPPCState *env
807    
808  void do_store_msr (CPUPPCState *env, target_ulong value)  void do_store_msr (CPUPPCState *env, target_ulong value)
809  {  {
810        int enter_pm;
811    
812      value &= env->msr_mask;      value &= env->msr_mask;
813      if (((value >> MSR_IR) & 1) != msr_ir ||      if (((value >> MSR_IR) & 1) != msr_ir ||
814          ((value >> MSR_DR) & 1) != msr_dr) {          ((value >> MSR_DR) & 1) != msr_dr) {
# Line 846  void do_store_msr (CPUPPCState *env, tar Line 848  void do_store_msr (CPUPPCState *env, tar
848      msr_ri  = (value >> MSR_RI)  & 1;      msr_ri  = (value >> MSR_RI)  & 1;
849      msr_le  = (value >> MSR_LE)  & 1;      msr_le  = (value >> MSR_LE)  & 1;
850      do_compute_hflags(env);      do_compute_hflags(env);
851      if (msr_pow) {  
852        enter_pm = 0;
853        switch (PPC_EXCP(env)) {
854        case PPC_FLAGS_EXCP_7x0:
855            if (msr_pow == 1 && (env->spr[SPR_HID0] & 0x00E00000) != 0)
856                enter_pm = 1;
857            break;
858        default:
859            break;
860        }
861        if (enter_pm) {
862          /* power save: exit cpu loop */          /* power save: exit cpu loop */
863            env->halted = 1;
864          env->exception_index = EXCP_HLT;          env->exception_index = EXCP_HLT;
865          cpu_loop_exit();          cpu_loop_exit();
866      }      }

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26