From 3dead1f65cda2afe5b7455d8e58135af160fb3bb Mon Sep 17 00:00:00 2001 From: dingusdev Date: Wed, 29 Jan 2020 21:08:42 -0700 Subject: [PATCH] Updated TBRs correctly in mtspr --- cpu/ppc/ppcopcodes.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpu/ppc/ppcopcodes.cpp b/cpu/ppc/ppcopcodes.cpp index 2656eec..04b1ddd 100644 --- a/cpu/ppc/ppcopcodes.cpp +++ b/cpu/ppc/ppcopcodes.cpp @@ -1334,12 +1334,12 @@ void ppc_mtspr() { switch (ref_spr) { //Mirror the TBRs in the SPR range to the user-mode TBRs. case 284: - ppc_state.ppc_spr[284] = ppc_state.ppc_gpr[reg_s]; - ppc_state.ppc_tbr[TBR::TBL] = ppc_state.ppc_gpr[reg_s]; + ppc_state.ppc_spr[284] = (uint32_t)timebase_counter; + ppc_state.ppc_tbr[TBR::TBL] = (uint32_t)timebase_counter; break; case 285: - ppc_state.ppc_spr[285] = ppc_state.ppc_gpr[reg_s]; - ppc_state.ppc_tbr[TBR::TBU] = ppc_state.ppc_gpr[reg_s]; + ppc_state.ppc_spr[285] = (uint32_t)(timebase_counter >> 32); + ppc_state.ppc_tbr[TBR::TBU] = (uint32_t)(timebase_counter >> 32); break; case 528: case 529: