1
Description: Correctly set floating point control word
2
In interpreter mode small assembler snippeds are used to set the floating point
3
control word to emulate the MIPS coprocessor behaviour. The makefile variable
4
isn't propagated to the c preprocessor and thus we need to check otherwise if
5
target architecture is x86 or compatible.
6
Bug: http://code.google.com/p/mupen64plus/issues/detail?id=272
7
Author: Sven Eckelmann <sven.eckelmann@gmx.de>
10
diff --git a/r4300/macros.h b/r4300/macros.h
11
index 1afcacaf129d339cf980e1f86811f5543ec4c7d7..18fe545de4ba05c36e900e603a81b288e421e382 100644
14
@@ -98,7 +98,7 @@ stop=1; \
15
#define TagHi reg_cop0[29]
16
#define ErrorEPC reg_cop0[30]
19
+#if (defined(__i386__) || defined(__x86_64__))
20
#define set_rounding() __asm__ __volatile__("fldcw %0" : : "m" (rounding_mode))
21
#define set_trunc() __asm__ __volatile__("fldcw %0" : : "m" (trunc_mode))
22
#define set_round() __asm__ __volatile__("fldcw %0" : : "m" (round_mode))