Support no-FPU ColdFire in sysdeps/m68k/fpu_control.h.
authorNathan Sidwell <nathan@codesourcery.com>
Fri, 28 Jun 2013 20:28:25 +0000 (20:28 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 28 Jun 2013 20:28:25 +0000 (20:28 +0000)
ports/ChangeLog.m68k
ports/sysdeps/m68k/fpu_control.h

index c5b1e21..15c8da3 100644 (file)
@@ -1,3 +1,13 @@
+2013-06-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * sysdeps/m68k/fpu_control.h [__mcoldfire__ && !__mcffpu__]
+       (_FPU_RESERVED): Provide alternative definition.
+       [__mcoldfire__ && !__mcffpu__] (_FPU_DEFAULT): Likewise.
+       [__mcoldfire__ && !__mcffpu__] (_FPU_GETCW): Likewise.
+       [__mcoldfire__ && !__mcffpu__] (_FPU_SETCW): Likewise.
+       [!(__mcoldfire__ && !__mcffpu__)]: Make existing macro definitions
+       conditional.
+
 2013-06-25  Andreas Schwab  <schwab@linux-m68k.org>
 
        * sysdeps/m68k/sysdep.h (CALL_MCOUNT) [PROF]: Use %a6 instead of
index c37fcf4..848b5ba 100644 (file)
 
 #include <features.h>
 
+#if defined (__mcoldfire__) && !defined (__mcffpu__)
+
+#define _FPU_RESERVED 0xffffffff
+#define _FPU_DEFAULT  0x00000000
+#define _FPU_GETCW(cw) ((cw) = 0)
+#define _FPU_SETCW(cw) ((void) (cw))
+
+#else
+
 /* masking of interrupts */
 #define _FPU_MASK_BSUN  0x8000
 #define _FPU_MASK_SNAN  0x4000
    that __setfpucw works.  This bit will be ignored.  */
 #define _FPU_IEEE     0x00000001
 
-/* Type of the control word.  */
-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
-
 /* Macros for accessing the hardware control word.  */
 #define _FPU_GETCW(cw) __asm__ ("fmove%.l %!, %0" : "=dm" (cw))
 #define _FPU_SETCW(cw) __asm__ volatile ("fmove%.l %0, %!" : : "dm" (cw))
+#endif
+
+/* Type of the control word.  */
+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
 
 /* Default control word set at startup.  */
 extern fpu_control_t __fpu_control;