From 0cad7ea2485b4bb05eb968a2399bec90a1450884 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 28 Jun 2013 20:28:25 +0000 Subject: Support no-FPU ColdFire in sysdeps/m68k/fpu_control.h. --- ports/ChangeLog.m68k | 10 ++++++++++ ports/sysdeps/m68k/fpu_control.h | 16 +++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k index c5b1e2156d..15c8da32c8 100644 --- a/ports/ChangeLog.m68k +++ b/ports/ChangeLog.m68k @@ -1,3 +1,13 @@ +2013-06-28 Nathan Sidwell + + * 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 * sysdeps/m68k/sysdep.h (CALL_MCOUNT) [PROF]: Use %a6 instead of diff --git a/ports/sysdeps/m68k/fpu_control.h b/ports/sysdeps/m68k/fpu_control.h index c37fcf4ee4..848b5ba3b5 100644 --- a/ports/sysdeps/m68k/fpu_control.h +++ b/ports/sysdeps/m68k/fpu_control.h @@ -53,6 +53,15 @@ #include +#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 @@ -95,12 +104,13 @@ 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; -- cgit v1.2.3