From f364efb4b0b55b30d7c101402184df2eca16189e Mon Sep 17 00:00:00 2001 From: dingusdev <52434309+dingusdev@users.noreply.github.com> Date: Tue, 28 Jan 2020 18:45:36 -0700 Subject: [PATCH] Fixed up floating-point value saving --- cpu/ppc/ppcfpopcodes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpu/ppc/ppcfpopcodes.cpp b/cpu/ppc/ppcfpopcodes.cpp index 989e82f..22df7ca 100644 --- a/cpu/ppc/ppcfpopcodes.cpp +++ b/cpu/ppc/ppcfpopcodes.cpp @@ -47,7 +47,7 @@ uint64_t fp_return_uint64(uint32_t reg) { void ppc_store_sfpresult(bool int_rep) { if (int_rep) { ppc_state.ppc_fpr[reg_d].int64_r = ppc_result64_d; - ppc_state.ppc_fpr[reg_d].dbl64_r = static_cast<double>(ppc_result64_d); + ppc_state.ppc_fpr[reg_d].dbl64_r = *(double*)&ppc_result64_d; } else { ppc_state.ppc_fpr[reg_d].dbl64_r = ppc_dblresult64_d; @@ -58,7 +58,7 @@ void ppc_store_sfpresult(bool int_rep) { void ppc_store_dfpresult(bool int_rep) { if (int_rep) { ppc_state.ppc_fpr[reg_d].int64_r = ppc_result64_d; - ppc_state.ppc_fpr[reg_d].dbl64_r = static_cast<double>(ppc_result64_d); + ppc_state.ppc_fpr[reg_d].dbl64_r = *(double*)&ppc_result64_d; } else { ppc_state.ppc_fpr[reg_d].dbl64_r = ppc_dblresult64_d;