diff options
Diffstat (limited to 'emulators/qemu-devel/files/patch-bh')
-rw-r--r-- | emulators/qemu-devel/files/patch-bh | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/emulators/qemu-devel/files/patch-bh b/emulators/qemu-devel/files/patch-bh index 52dff1c7160e..1218bb4656c5 100644 --- a/emulators/qemu-devel/files/patch-bh +++ b/emulators/qemu-devel/files/patch-bh @@ -24,68 +24,3 @@ diff -w -u -d -r1.12 dyngen-exec.h #undef NULL #define NULL 0 #ifdef _BSD -Index: qemu/target-ppc/op_helper.c -=================================================================== -RCS file: /cvsroot/qemu/qemu/target-ppc/op_helper.c,v -retrieving revision 1.6 -diff -w -u -d -r1.6 op_helper.c ---- target-ppc/op_helper.c 21 May 2004 12:59:31 -0000 1.6 -+++ target-ppc/op_helper.c 21 May 2004 15:00:49 -0000 -@@ -210,6 +210,22 @@ - } - /* TODO: update FEX & VX */ - /* Set rounding mode */ -+#ifdef _BSD -+ switch(env->fpscr[0] & 0x3) { -+ case 0: -+ fpsetround(FP_RN); -+ break; -+ case 1: -+ fpsetround(FP_RZ); -+ break; -+ case 2: -+ fpsetround(FP_RP); -+ break; -+ case 3: -+ fpsetround(FP_RM); -+ break; -+ } -+#else - switch (env->fpscr[0] & 0x3) { - case 0: - /* Best approximation (round to nearest) */ -@@ -228,6 +244,7 @@ - fesetround(FE_DOWNWARD); - break; - } -+#endif - } - - void do_fctiw (void) -@@ -253,9 +270,13 @@ - double d; - uint64_t i; - } *p = (void *)&FT1; -+#ifdef _BSD -+ int cround = fpgetround(); -+ fpsetround(FP_RZ); -+#else - int cround = fegetround(); -- - fesetround(FE_TOWARDZERO); -+#endif - if (FT0 > (double)0x7FFFFFFF) - p->i = 0x7FFFFFFFULL << 32; - else if (FT0 < -(double)0x80000000) -@@ -264,7 +285,11 @@ - p->i = 0; - p->i |= (uint32_t)FT0; - FT0 = p->d; -+#ifdef _BSD -+ fpsetround(cround); -+#else - fesetround(cround); -+#endif - } - - void do_fnmadds (void) |