Commit bfa1e5cf0abccb74e8de2c135e7d9f1f509730a9

Authored by j_mayer
1 parent a09d88b8

XER is to be treated as a 64 bits register on 64 bits implementations,

according to the PowerPC 2.04 specification.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3279 c046a42c-6fe2-441c-8c8c-71466251a162
target-ppc/cpu.h
@@ -603,8 +603,8 @@ void ppc_store_asr (CPUPPCState *env, target_ulong value); @@ -603,8 +603,8 @@ void ppc_store_asr (CPUPPCState *env, target_ulong value);
603 target_ulong do_load_sr (CPUPPCState *env, int srnum); 603 target_ulong do_load_sr (CPUPPCState *env, int srnum);
604 void do_store_sr (CPUPPCState *env, int srnum, target_ulong value); 604 void do_store_sr (CPUPPCState *env, int srnum, target_ulong value);
605 #endif 605 #endif
606 -uint32_t ppc_load_xer (CPUPPCState *env);  
607 -void ppc_store_xer (CPUPPCState *env, uint32_t value); 606 +target_ulong ppc_load_xer (CPUPPCState *env);
  607 +void ppc_store_xer (CPUPPCState *env, target_ulong value);
608 target_ulong do_load_msr (CPUPPCState *env); 608 target_ulong do_load_msr (CPUPPCState *env);
609 void do_store_msr (CPUPPCState *env, target_ulong value); 609 void do_store_msr (CPUPPCState *env, target_ulong value);
610 void ppc_store_msr_32 (CPUPPCState *env, uint32_t value); 610 void ppc_store_msr_32 (CPUPPCState *env, uint32_t value);
target-ppc/helper.c
@@ -1644,7 +1644,7 @@ void do_store_sr (CPUPPCState *env, int srnum, target_ulong value) @@ -1644,7 +1644,7 @@ void do_store_sr (CPUPPCState *env, int srnum, target_ulong value)
1644 } 1644 }
1645 #endif /* !defined (CONFIG_USER_ONLY) */ 1645 #endif /* !defined (CONFIG_USER_ONLY) */
1646 1646
1647 -uint32_t ppc_load_xer (CPUPPCState *env) 1647 +target_ulong ppc_load_xer (CPUPPCState *env)
1648 { 1648 {
1649 return (xer_so << XER_SO) | 1649 return (xer_so << XER_SO) |
1650 (xer_ov << XER_OV) | 1650 (xer_ov << XER_OV) |
@@ -1653,7 +1653,7 @@ uint32_t ppc_load_xer (CPUPPCState *env) @@ -1653,7 +1653,7 @@ uint32_t ppc_load_xer (CPUPPCState *env)
1653 (xer_cmp << XER_CMP); 1653 (xer_cmp << XER_CMP);
1654 } 1654 }
1655 1655
1656 -void ppc_store_xer (CPUPPCState *env, uint32_t value) 1656 +void ppc_store_xer (CPUPPCState *env, target_ulong value)
1657 { 1657 {
1658 xer_so = (value >> XER_SO) & 0x01; 1658 xer_so = (value >> XER_SO) & 0x01;
1659 xer_ov = (value >> XER_OV) & 0x01; 1659 xer_ov = (value >> XER_OV) & 0x01;