From fb8bf47a348997eb3912fcc8c3a983339c3aad07 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 10 Oct 2012 20:35:32 +0200 Subject: sfp-machine.h (FP_RND_NEAREST, [...]): Move to ... * config/i386/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): Move to ... * config/i386/32/sfp-machine.h: ... here. * config/i386/64/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): New defines. From-SVN: r192324 --- libgcc/ChangeLog | 9 +++++++++ libgcc/config/i386/32/sfp-machine.h | 15 +++++++++++++++ libgcc/config/i386/64/sfp-machine.h | 15 +++++++++++++++ libgcc/config/i386/sfp-machine.h | 15 --------------- 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index b09c22fe5..e521dfa 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,12 @@ +2012-10-10 Uros Bizjak + + * config/i386/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, + FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): Move to ... + * config/i386/32/sfp-machine.h: ... here. + * config/i386/64/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, + FP_RND_PINF, FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): + New defines. + 2012-10-07 Matthias Klose * config/arm/unwind-arm.h (__gnu_unwind_24bit): Mark parameters diff --git a/libgcc/config/i386/32/sfp-machine.h b/libgcc/config/i386/32/sfp-machine.h index 7f0c099..474ade0 100644 --- a/libgcc/config/i386/32/sfp-machine.h +++ b/libgcc/config/i386/32/sfp-machine.h @@ -76,3 +76,18 @@ 16byte since soft-fp emulation is done in 16byte. */ #define _FP_NANFRAC_E _FP_QNANBIT_E, 0, 0, 0 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 + +#define FP_RND_NEAREST 0 +#define FP_RND_ZERO 0xc00 +#define FP_RND_PINF 0x800 +#define FP_RND_MINF 0x400 + +#define FP_RND_MASK 0xc00 + +#define _FP_DECL_EX \ + unsigned short _fcw __attribute__ ((unused)) = FP_RND_NEAREST; + +#define FP_INIT_ROUNDMODE \ + do { \ + __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_fcw)); \ + } while (0) diff --git a/libgcc/config/i386/64/sfp-machine.h b/libgcc/config/i386/64/sfp-machine.h index 8cc982e..fc9a38a 100644 --- a/libgcc/config/i386/64/sfp-machine.h +++ b/libgcc/config/i386/64/sfp-machine.h @@ -17,3 +17,18 @@ typedef unsigned int UTItype __attribute__ ((mode (TI))); #define _FP_NANFRAC_D _FP_QNANBIT_D #define _FP_NANFRAC_E _FP_QNANBIT_E, 0 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 + +#define FP_RND_NEAREST 0 +#define FP_RND_ZERO 0x6000 +#define FP_RND_PINF 0x4000 +#define FP_RND_MINF 0x2000 + +#define FP_RND_MASK 0x6000 + +#define _FP_DECL_EX \ + unsigned int _fcw __attribute__ ((unused)) = FP_RND_NEAREST; + +#define FP_INIT_ROUNDMODE \ + do { \ + __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_fcw)); \ + } while (0) diff --git a/libgcc/config/i386/sfp-machine.h b/libgcc/config/i386/sfp-machine.h index 34b4ca1..01bf14f 100644 --- a/libgcc/config/i386/sfp-machine.h +++ b/libgcc/config/i386/sfp-machine.h @@ -55,21 +55,6 @@ void __sfp_handle_exceptions (int); __sfp_handle_exceptions (_fex); \ } while (0); -#define FP_RND_NEAREST 0 -#define FP_RND_ZERO 0xc00 -#define FP_RND_PINF 0x800 -#define FP_RND_MINF 0x400 - -#define FP_RND_MASK 0xc00 - -#define _FP_DECL_EX \ - unsigned short _fcw __attribute__ ((unused)) = FP_RND_NEAREST - -#define FP_INIT_ROUNDMODE \ - do { \ - __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_fcw)); \ - } while (0) - #define FP_ROUNDMODE (_fcw & FP_RND_MASK) #define __LITTLE_ENDIAN 1234 -- cgit v1.1