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;