diff options
Diffstat (limited to 'gnu/gcc/gcc-4.2.3-ffast-math.patch')
-rw-r--r-- | gnu/gcc/gcc-4.2.3-ffast-math.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/gcc/gcc-4.2.3-ffast-math.patch b/gnu/gcc/gcc-4.2.3-ffast-math.patch new file mode 100644 index 0000000000..c6601f6978 --- /dev/null +++ b/gnu/gcc/gcc-4.2.3-ffast-math.patch @@ -0,0 +1,50 @@ +diff -Naur gcc-4.2.3.orig/gcc/config/i386/crtfastmath.c gcc-4.2.3/gcc/config/i386/crtfastmath.c +--- gcc-4.2.3.orig/gcc/config/i386/crtfastmath.c 2008-02-05 11:26:52.724719808 -0800 ++++ gcc-4.2.3/gcc/config/i386/crtfastmath.c 2008-02-05 11:27:16.337719080 -0800 +@@ -37,6 +37,23 @@ + #define FXSAVE (1 << 24) + #define SSE (1 << 25) + ++struct ++{ ++ unsigned short int cwd; ++ unsigned short int swd; ++ unsigned short int twd; ++ unsigned short int fop; ++ long int fip; ++ long int fcs; ++ long int foo; ++ long int fos; ++ long int mxcsr; ++ long int mxcsr_mask; ++ long int st_space[32]; ++ long int xmm_space[32]; ++ long int padding[56]; ++} __attribute__ ((aligned (16))) fxsave; ++ + static void __attribute__((constructor)) + #ifndef __x86_64__ + /* The i386 ABI only requires 4-byte stack alignment, so this is necessary +@@ -81,22 +98,6 @@ + if (edx & FXSAVE) + { + /* Check if DAZ is available. */ +- struct +- { +- unsigned short int cwd; +- unsigned short int swd; +- unsigned short int twd; +- unsigned short int fop; +- long int fip; +- long int fcs; +- long int foo; +- long int fos; +- long int mxcsr; +- long int mxcsr_mask; +- long int st_space[32]; +- long int xmm_space[32]; +- long int padding[56]; +- } __attribute__ ((aligned (16))) fxsave; + + __builtin_memset (&fxsave, 0, sizeof (fxsave)); + |