]> xenbits.xensource.com Git - qemu-xen-3.3-testing.git/commitdiff
Fix endianness bug for PowerPC stfiwx instruction.
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 27 Oct 2007 17:18:49 +0000 (17:18 +0000)
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 27 Oct 2007 17:18:49 +0000 (17:18 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3456 c046a42c-6fe2-441c-8c8c-71466251a162

target-ppc/op_mem.h

index ca48f5de0ac9d6eb26a262f3c7e400b3cfa1877c..b1daf848d4157bce6d675892cce9f37f639e8302 100644 (file)
@@ -411,17 +411,26 @@ static always_inline void glue(stfs, MEMSUFFIX) (target_ulong EA, double d)
     glue(stfl, MEMSUFFIX)(EA, float64_to_float32(d, &env->fp_status));
 }
 
+#if defined(WORDS_BIGENDIAN)
+#define WORD0 0
+#define WORD1 1
+#else
+#define WORD0 1
+#define WORD1 0
+#endif
 static always_inline void glue(stfiwx, MEMSUFFIX) (target_ulong EA, double d)
 {
     union {
         double d;
-        uint64_t u;
+        uint32_t u[2];
     } u;
 
     /* Store the low order 32 bits without any conversion */
     u.d = d;
-    glue(stl, MEMSUFFIX)(EA, u.u);
+    glue(stl, MEMSUFFIX)(EA, u.u[WORD0]);
 }
+#undef WORD0
+#undef WORD1
 
 PPC_STF_OP(fd, stfq);
 PPC_STF_OP(fs, stfs);