patches/glibc/ports-2.13/570-arm-cirrus-ep93xx-maverick-crunch-fpu.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue May 03 00:19:56 2011 +0200 (2011-05-03)
changeset 2438 2ba5655f6297
permissions -rw-r--r--
libc/glibc: add 2.13

Patchset provided by "Ioannis E. Venetis" <venetis@mail.capsl.udel.edu>
http://sourceware.org/ml/crossgcc/2011-04/msg00072.html
http://sourceware.org/ml/crossgcc/2011-04/msg00073.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@2438
     1
http://yann.poupet.free.fr/ep93xx/
yann@2438
     2
Add support for the Maverick Crunch FPU on Cirrus EP93XX processor series
yann@2438
     3
yann@2438
     4
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/bits/endian.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/bits/endian.h
yann@2438
     5
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/bits/endian.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
     6
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/bits/endian.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
     7
@@ -12,7 +12,7 @@
yann@2438
     8
 /* FPA floating point units are always big-endian, irrespective of the
yann@2438
     9
    CPU endianness.  VFP floating point units use the same endianness
yann@2438
    10
    as the rest of the system.  */
yann@2438
    11
-#ifdef __VFP_FP__
yann@2438
    12
+#if defined __VFP_FP__ || defined __MAVERICK__
yann@2438
    13
 #define __FLOAT_WORD_ORDER __BYTE_ORDER
yann@2438
    14
 #else
yann@2438
    15
 #define __FLOAT_WORD_ORDER __BIG_ENDIAN
yann@2438
    16
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/__longjmp.S glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/__longjmp.S
yann@2438
    17
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/__longjmp.S	2009-05-16 10:36:20.000000000 +0200
yann@2438
    18
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/__longjmp.S	2009-11-13 00:51:22.000000000 +0100
yann@2438
    19
@@ -30,7 +30,33 @@
yann@2438
    20
 	movs	r0, r1		/* get the return value in place */
yann@2438
    21
 	moveq	r0, #1		/* can't let setjmp() return zero! */
yann@2438
    22
 
yann@2438
    23
+#ifdef __MAVERICK__
yann@2438
    24
+	cfldrd	mvd4,  [ip], #8
yann@2438
    25
+	nop
yann@2438
    26
+	cfldrd	mvd5,  [ip], #8
yann@2438
    27
+	nop
yann@2438
    28
+	cfldrd	mvd6,  [ip], #8
yann@2438
    29
+	nop
yann@2438
    30
+	cfldrd	mvd7,  [ip], #8
yann@2438
    31
+	nop
yann@2438
    32
+	cfldrd	mvd8,  [ip], #8
yann@2438
    33
+	nop
yann@2438
    34
+	cfldrd	mvd9,  [ip], #8
yann@2438
    35
+	nop
yann@2438
    36
+	cfldrd	mvd10, [ip], #8
yann@2438
    37
+	nop
yann@2438
    38
+	cfldrd	mvd11, [ip], #8
yann@2438
    39
+	nop
yann@2438
    40
+	cfldrd	mvd12, [ip], #8
yann@2438
    41
+	nop
yann@2438
    42
+	cfldrd	mvd13, [ip], #8
yann@2438
    43
+	nop
yann@2438
    44
+	cfldrd	mvd14, [ip], #8
yann@2438
    45
+	nop
yann@2438
    46
+	cfldrd	mvd15, [ip], #8
yann@2438
    47
+#else
yann@2438
    48
 	lfmfd	f4, 4, [ip] !	/* load the floating point regs */
yann@2438
    49
+#endif
yann@2438
    50
 
yann@2438
    51
 	LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
yann@2438
    52
 END (__longjmp)
yann@2438
    53
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/bits/fenv.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/bits/fenv.h
yann@2438
    54
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/bits/fenv.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
    55
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/bits/fenv.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
    56
@@ -20,6 +20,45 @@
yann@2438
    57
 # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
yann@2438
    58
 #endif
yann@2438
    59
 
yann@2438
    60
+#if defined(__MAVERICK__)
yann@2438
    61
+
yann@2438
    62
+/* Define bits representing exceptions in the FPU status word.  */
yann@2438
    63
+enum
yann@2438
    64
+  {
yann@2438
    65
+    FE_INVALID = 1,
yann@2438
    66
+#define FE_INVALID FE_INVALID
yann@2438
    67
+    FE_OVERFLOW = 4,
yann@2438
    68
+#define FE_OVERFLOW FE_OVERFLOW
yann@2438
    69
+    FE_UNDERFLOW = 8,
yann@2438
    70
+#define FE_UNDERFLOW FE_UNDERFLOW
yann@2438
    71
+    FE_INEXACT = 16,
yann@2438
    72
+#define FE_INEXACT FE_INEXACT
yann@2438
    73
+  };
yann@2438
    74
+
yann@2438
    75
+/* Amount to shift by to convert an exception to a mask bit.  */
yann@2438
    76
+#define FE_EXCEPT_SHIFT	5
yann@2438
    77
+
yann@2438
    78
+/* All supported exceptions.  */
yann@2438
    79
+#define FE_ALL_EXCEPT	\
yann@2438
    80
+	(FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
yann@2438
    81
+
yann@2438
    82
+/* IEEE rounding modes.  */
yann@2438
    83
+enum
yann@2438
    84
+  {
yann@2438
    85
+    FE_TONEAREST = 0,
yann@2438
    86
+#define FE_TONEAREST    FE_TONEAREST
yann@2438
    87
+    FE_TOWARDZERO = 0x400,
yann@2438
    88
+#define FE_TOWARDZERO   FE_TOWARDZERO
yann@2438
    89
+    FE_DOWNWARD = 0x800,
yann@2438
    90
+#define FE_DOWNWARD     FE_DOWNWARD
yann@2438
    91
+    FE_UPWARD = 0xc00,
yann@2438
    92
+#define FE_UPWARD       FE_UPWARD
yann@2438
    93
+  };
yann@2438
    94
+
yann@2438
    95
+#define FE_ROUND_MASK (FE_UPWARD)
yann@2438
    96
+
yann@2438
    97
+#else /* FPA */
yann@2438
    98
+
yann@2438
    99
 /* Define bits representing exceptions in the FPU status word.  */
yann@2438
   100
 enum
yann@2438
   101
   {
yann@2438
   102
@@ -44,6 +83,8 @@
yann@2438
   103
    modes exist, but you have to encode them in the actual instruction.  */
yann@2438
   104
 #define FE_TONEAREST	0
yann@2438
   105
 
yann@2438
   106
+#endif
yann@2438
   107
+
yann@2438
   108
 /* Type representing exception flags. */
yann@2438
   109
 typedef unsigned long int fexcept_t;
yann@2438
   110
 
yann@2438
   111
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/bits/setjmp.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/bits/setjmp.h
yann@2438
   112
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/bits/setjmp.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
   113
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/bits/setjmp.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
   114
@@ -28,7 +28,11 @@
yann@2438
   115
 #ifndef _ASM
yann@2438
   116
 /* Jump buffer contains v1-v6, sl, fp, sp and pc.  Other registers are not
yann@2438
   117
    saved.  */
yann@2438
   118
+#ifdef __MAVERICK__
yann@2438
   119
+typedef int __jmp_buf[34];
yann@2438
   120
+#else
yann@2438
   121
 typedef int __jmp_buf[22];
yann@2438
   122
 #endif
yann@2438
   123
+#endif
yann@2438
   124
 
yann@2438
   125
 #endif
yann@2438
   126
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fegetround.c glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fegetround.c
yann@2438
   127
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fegetround.c	2009-05-16 10:36:20.000000000 +0200
yann@2438
   128
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fegetround.c	2009-11-13 00:51:22.000000000 +0100
yann@2438
   129
@@ -18,9 +18,21 @@
yann@2438
   130
    02111-1307 USA.  */
yann@2438
   131
 
yann@2438
   132
 #include <fenv.h>
yann@2438
   133
+#include <fpu_control.h>
yann@2438
   134
 
yann@2438
   135
 int
yann@2438
   136
 fegetround (void)
yann@2438
   137
 {
yann@2438
   138
+#if defined(__MAVERICK__)
yann@2438
   139
+
yann@2438
   140
+  unsigned long temp;
yann@2438
   141
+
yann@2438
   142
+  _FPU_GETCW (temp);
yann@2438
   143
+  return temp & FE_ROUND_MASK;
yann@2438
   144
+
yann@2438
   145
+#else /* FPA */
yann@2438
   146
+
yann@2438
   147
   return FE_TONEAREST;		/* Easy. :-) */
yann@2438
   148
+
yann@2438
   149
+#endif
yann@2438
   150
 }
yann@2438
   151
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fesetround.c glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fesetround.c
yann@2438
   152
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fesetround.c	2009-05-16 10:36:20.000000000 +0200
yann@2438
   153
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fesetround.c	2009-11-13 00:51:22.000000000 +0100
yann@2438
   154
@@ -18,12 +18,28 @@
yann@2438
   155
    02111-1307 USA.  */
yann@2438
   156
 
yann@2438
   157
 #include <fenv.h>
yann@2438
   158
+#include <fpu_control.h>
yann@2438
   159
 
yann@2438
   160
 int
yann@2438
   161
 fesetround (int round)
yann@2438
   162
 {
yann@2438
   163
+#if defined(__MAVERICK__)
yann@2438
   164
+  unsigned long temp;
yann@2438
   165
+
yann@2438
   166
+  if (round & ~FE_ROUND_MASK)
yann@2438
   167
+    return 1;
yann@2438
   168
+
yann@2438
   169
+  _FPU_GETCW (temp);
yann@2438
   170
+  temp = (temp & ~FE_ROUND_MASK) | round;
yann@2438
   171
+  _FPU_SETCW (temp);
yann@2438
   172
+  return 0;
yann@2438
   173
+
yann@2438
   174
+#else /* FPA */
yann@2438
   175
+
yann@2438
   176
   /* We only support FE_TONEAREST, so there is no need for any work.  */
yann@2438
   177
   return (round == FE_TONEAREST)?0:1;
yann@2438
   178
+
yann@2438
   179
+#endif
yann@2438
   180
 }
yann@2438
   181
 
yann@2438
   182
 libm_hidden_def (fesetround)
yann@2438
   183
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fpu_control.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fpu_control.h
yann@2438
   184
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/fpu_control.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
   185
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/fpu_control.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
   186
@@ -1,5 +1,6 @@
yann@2438
   187
 /* FPU control word definitions.  ARM version.
yann@2438
   188
-   Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
yann@2438
   189
+   Copyright (C) 1996, 1997, 1998, 2000, 2005
yann@2438
   190
+   Free Software Foundation, Inc.
yann@2438
   191
    This file is part of the GNU C Library.
yann@2438
   192
 
yann@2438
   193
    The GNU C Library is free software; you can redistribute it and/or
yann@2438
   194
@@ -20,6 +21,79 @@
yann@2438
   195
 #ifndef _FPU_CONTROL_H
yann@2438
   196
 #define _FPU_CONTROL_H
yann@2438
   197
 
yann@2438
   198
+#if defined(__MAVERICK__)
yann@2438
   199
+
yann@2438
   200
+/* DSPSC register: (from EP9312 User's Guide)
yann@2438
   201
+ *
yann@2438
   202
+ * bits 31..29	- DAID
yann@2438
   203
+ * bits 28..26	- HVID
yann@2438
   204
+ * bits 25..24	- RSVD
yann@2438
   205
+ * bit  23	- ISAT
yann@2438
   206
+ * bit  22	- UI
yann@2438
   207
+ * bit  21	- INT
yann@2438
   208
+ * bit  20	- AEXC
yann@2438
   209
+ * bits 19..18	- SAT
yann@2438
   210
+ * bits 17..16	- FCC
yann@2438
   211
+ * bit  15	- V
yann@2438
   212
+ * bit  14	- FWDEN
yann@2438
   213
+ * bit  13	- Invalid
yann@2438
   214
+ * bit	12	- Denorm
yann@2438
   215
+ * bits 11..10	- RM
yann@2438
   216
+ * bits 9..5	- IXE, UFE, OFE, RSVD, IOE
yann@2438
   217
+ * bits 4..0	- IX, UF, OF, RSVD, IO
yann@2438
   218
+ */
yann@2438
   219
+
yann@2438
   220
+/* masking of interrupts */
yann@2438
   221
+#define _FPU_MASK_IM	(1 << 5)	/* invalid operation */
yann@2438
   222
+#define _FPU_MASK_ZM	0		/* divide by zero */
yann@2438
   223
+#define _FPU_MASK_OM	(1 << 7)	/* overflow */
yann@2438
   224
+#define _FPU_MASK_UM	(1 << 8)	/* underflow */
yann@2438
   225
+#define _FPU_MASK_PM	(1 << 9)	/* inexact */
yann@2438
   226
+#define _FPU_MASK_DM	0		/* denormalized operation */
yann@2438
   227
+
yann@2438
   228
+#define _FPU_RESERVED	0xfffff000	/* These bits are reserved.  */
yann@2438
   229
+
yann@2438
   230
+#define _FPU_DEFAULT	0x00b00000	/* Default value.  */
yann@2438
   231
+#define _FPU_IEEE	0x00b003a0	/* Default + exceptions enabled. */
yann@2438
   232
+
yann@2438
   233
+/* Type of the control word.  */
yann@2438
   234
+typedef unsigned int fpu_control_t;
yann@2438
   235
+
yann@2438
   236
+/* Macros for accessing the hardware control word.  */
yann@2438
   237
+#define _FPU_GETCW(cw) ({			\
yann@2438
   238
+	register int __t1, __t2;		\
yann@2438
   239
+						\
yann@2438
   240
+	__asm__ volatile (			\
yann@2438
   241
+	"cfmvr64l	%1, mvdx0\n\t"		\
yann@2438
   242
+	"cfmvr64h	%2, mvdx0\n\t"		\
yann@2438
   243
+	"cfmv32sc	mvdx0, dspsc\n\t"	\
yann@2438
   244
+	"cfmvr64l	%0, mvdx0\n\t"		\
yann@2438
   245
+	"cfmv64lr	mvdx0, %1\n\t"		\
yann@2438
   246
+	"cfmv64hr	mvdx0, %2"		\
yann@2438
   247
+	: "=r" (cw), "=r" (__t1), "=r" (__t2)	\
yann@2438
   248
+	);					\
yann@2438
   249
+})
yann@2438
   250
+
yann@2438
   251
+#define _FPU_SETCW(cw) ({			\
yann@2438
   252
+	register int __t0, __t1, __t2;		\
yann@2438
   253
+						\
yann@2438
   254
+	__asm__ volatile (			\
yann@2438
   255
+	"cfmvr64l	%1, mvdx0\n\t"		\
yann@2438
   256
+	"cfmvr64h	%2, mvdx0\n\t"		\
yann@2438
   257
+	"cfmv64lr	mvdx0, %0\n\t"		\
yann@2438
   258
+	"cfmvsc32	dspsc, mvdx0\n\t"	\
yann@2438
   259
+	"cfmv64lr	mvdx0, %1\n\t"		\
yann@2438
   260
+	"cfmv64hr	mvdx0, %2"		\
yann@2438
   261
+	: "=r" (__t0), "=r" (__t1), "=r" (__t2)	\
yann@2438
   262
+	: "0" (cw)				\
yann@2438
   263
+	);					\
yann@2438
   264
+})
yann@2438
   265
+
yann@2438
   266
+/* Default control word set at startup.  */
yann@2438
   267
+extern fpu_control_t __fpu_control;
yann@2438
   268
+
yann@2438
   269
+#else /* FPA */
yann@2438
   270
+
yann@2438
   271
 /* We have a slight terminology confusion here.  On the ARM, the register
yann@2438
   272
  * we're interested in is actually the FPU status word - the FPU control
yann@2438
   273
  * word is something different (which is implementation-defined and only
yann@2438
   274
@@ -99,4 +173,6 @@
yann@2438
   275
 /* Default control word set at startup.  */
yann@2438
   276
 extern fpu_control_t __fpu_control;
yann@2438
   277
 
yann@2438
   278
+#endif
yann@2438
   279
+
yann@2438
   280
 #endif /* _FPU_CONTROL_H */
yann@2438
   281
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/jmpbuf-offsets.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/jmpbuf-offsets.h
yann@2438
   282
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/jmpbuf-offsets.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
   283
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/jmpbuf-offsets.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
   284
@@ -17,4 +17,8 @@
yann@2438
   285
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@2438
   286
    02111-1307 USA.  */
yann@2438
   287
 
yann@2438
   288
+#ifdef __MAVERICK__
yann@2438
   289
+#define __JMP_BUF_SP		32
yann@2438
   290
+#else
yann@2438
   291
 #define __JMP_BUF_SP		20
yann@2438
   292
+#endif
yann@2438
   293
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/setjmp.S glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/setjmp.S
yann@2438
   294
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/fpu/setjmp.S	2009-05-16 10:36:20.000000000 +0200
yann@2438
   295
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/fpu/setjmp.S	2009-11-13 00:51:22.000000000 +0100
yann@2438
   296
@@ -24,11 +24,41 @@
yann@2438
   297
 
yann@2438
   298
 ENTRY (__sigsetjmp)
yann@2438
   299
 	/* Save registers */
yann@2438
   300
+#ifdef __MAVERICK__
yann@2438
   301
+	cfstrd	mvd4,  [r0], #8
yann@2438
   302
+	nop
yann@2438
   303
+	cfstrd	mvd5,  [r0], #8
yann@2438
   304
+	nop
yann@2438
   305
+	cfstrd	mvd6,  [r0], #8
yann@2438
   306
+	nop
yann@2438
   307
+	cfstrd	mvd7,  [r0], #8
yann@2438
   308
+	nop
yann@2438
   309
+	cfstrd	mvd8,  [r0], #8
yann@2438
   310
+	nop
yann@2438
   311
+	cfstrd	mvd9,  [r0], #8
yann@2438
   312
+	nop
yann@2438
   313
+	cfstrd	mvd10, [r0], #8
yann@2438
   314
+	nop
yann@2438
   315
+	cfstrd	mvd11, [r0], #8
yann@2438
   316
+	nop
yann@2438
   317
+	cfstrd	mvd12, [r0], #8
yann@2438
   318
+	nop
yann@2438
   319
+	cfstrd	mvd13, [r0], #8
yann@2438
   320
+	nop
yann@2438
   321
+	cfstrd	mvd14, [r0], #8
yann@2438
   322
+	nop
yann@2438
   323
+	cfstrd	mvd15, [r0], #8
yann@2438
   324
+#else
yann@2438
   325
 	sfmea	f4, 4, [r0]!
yann@2438
   326
+#endif
yann@2438
   327
 	stmia	r0, {v1-v6, sl, fp, sp, lr}
yann@2438
   328
 
yann@2438
   329
 	/* Restore pointer to jmp_buf */
yann@2438
   330
+#ifdef __MAVERICK__
yann@2438
   331
+	sub	r0, r0, #96
yann@2438
   332
+#else
yann@2438
   333
 	sub	r0, r0, #48
yann@2438
   334
+#endif
yann@2438
   335
 
yann@2438
   336
 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
yann@2438
   337
 	B	PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
yann@2438
   338
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/gccframe.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/gccframe.h
yann@2438
   339
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/gccframe.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
   340
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/gccframe.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
   341
@@ -17,6 +17,10 @@
yann@2438
   342
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@2438
   343
    02111-1307 USA.  */
yann@2438
   344
 
yann@2438
   345
+#ifdef __MAVERICK__
yann@2438
   346
+#define FIRST_PSEUDO_REGISTER 43
yann@2438
   347
+#else
yann@2438
   348
 #define FIRST_PSEUDO_REGISTER 27
yann@2438
   349
+#endif
yann@2438
   350
 
yann@2438
   351
 #include <sysdeps/generic/gccframe.h>
yann@2438
   352
diff -durN glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/gmp-mparam.h glibc-2.13/glibc-ports-2.13/sysdeps/arm/gmp-mparam.h
yann@2438
   353
--- glibc-2.13.orig/glibc-ports-2.13/sysdeps/arm/gmp-mparam.h	2009-05-16 10:36:20.000000000 +0200
yann@2438
   354
+++ glibc-2.13/glibc-ports-2.13/sysdeps/arm/gmp-mparam.h	2009-11-13 00:51:22.000000000 +0100
yann@2438
   355
@@ -29,7 +29,7 @@
yann@2438
   356
 #if defined(__ARMEB__)
yann@2438
   357
 # define IEEE_DOUBLE_MIXED_ENDIAN 0
yann@2438
   358
 # define IEEE_DOUBLE_BIG_ENDIAN 1
yann@2438
   359
-#elif defined(__VFP_FP__)
yann@2438
   360
+#elif defined(__VFP_FP__) || defined(__MAVERICK__)
yann@2438
   361
 # define IEEE_DOUBLE_MIXED_ENDIAN 0
yann@2438
   362
 # define IEEE_DOUBLE_BIG_ENDIAN 0
yann@2438
   363
 #else
yann@2438
   364
diff -durN glibc-2.13.orig/ports/sysdeps/arm/bits/endian.h glibc-2.13/ports/sysdeps/arm/bits/endian.h
yann@2438
   365
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/__longjmp.S glibc-2.13/ports/sysdeps/arm/fpu/__longjmp.S
yann@2438
   366
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/bits/fenv.h glibc-2.13/ports/sysdeps/arm/fpu/bits/fenv.h
yann@2438
   367
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/bits/setjmp.h glibc-2.13/ports/sysdeps/arm/fpu/bits/setjmp.h
yann@2438
   368
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/fegetround.c glibc-2.13/ports/sysdeps/arm/fpu/fegetround.c
yann@2438
   369
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/fesetround.c glibc-2.13/ports/sysdeps/arm/fpu/fesetround.c
yann@2438
   370
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/fpu_control.h glibc-2.13/ports/sysdeps/arm/fpu/fpu_control.h
yann@2438
   371
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/jmpbuf-offsets.h glibc-2.13/ports/sysdeps/arm/fpu/jmpbuf-offsets.h
yann@2438
   372
diff -durN glibc-2.13.orig/ports/sysdeps/arm/fpu/setjmp.S glibc-2.13/ports/sysdeps/arm/fpu/setjmp.S
yann@2438
   373
diff -durN glibc-2.13.orig/ports/sysdeps/arm/gccframe.h glibc-2.13/ports/sysdeps/arm/gccframe.h
yann@2438
   374
diff -durN glibc-2.13.orig/ports/sysdeps/arm/gmp-mparam.h glibc-2.13/ports/sysdeps/arm/gmp-mparam.h