summaryrefslogtreecommitdiff
path: root/packages/gcc/gcc-4.2.2/arm-crunch-eabi-ieee754.patch
blob: e4929fa20e00a49a59a6ce0bd1fc7238d430043f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
--- ../gcc-cross-4.1.2-r4-unpatched/gcc-4.1.2/gcc/config/arm/ieee754-df.S	2007-06-07 13:06:52.000000000 +1000
+++ gcc-4.1.2/gcc/config/arm/ieee754-df.S	2007-06-07 13:15:49.000000000 +1000
@@ -42,8 +42,9 @@
 
 
 @ For FPA, float words are always big-endian.
+@ For MAVERICK, float words are always little-endian.
 @ For VFP, floats words follow the memory system mode.
-#if defined(__VFP_FP__) && !defined(__ARMEB__)
+#if ((defined(__VFP_FP__) && !defined(__ARMEB__)) || defined(__MAVERICK__))
 #define xl r0
 #define xh r1
 #define yl r2
@@ -451,8 +452,13 @@
 
 	orrs	r2, r0, r1
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
+#if defined (__FPA_FP__)
 	mvfeqd	f0, #0.0
 #endif
+#if defined (__MAVERICK__)
+    cfstrd  mvd0, #0.0
+#endif
+#endif
 	RETc(eq)
 
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
@@ -473,8 +479,13 @@
 
 	orrs	r2, r0, r1
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
+#if defined (__FPA_FP__)
 	mvfeqd	f0, #0.0
 #endif
+#if defined (__MAVERICK__)
+    cfstrd  mvd0, #0.0
+#endif
+#endif
 	RETc(eq)
 
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
@@ -526,8 +537,14 @@
 	@ Legacy code expects the result to be returned in f0.  Copy it
 	@ there as well.
 LSYM(f0_ret):
+#if defined (__FPA_FP__)
 	stmfd	sp!, {r0, r1}
 	ldfd	f0, [sp], #8
+#endif
+#if defined (__MAVERICK__)
+    cfmvdlr  mvd0, xl
+    cfmvdhr  mvd0, xh
+#endif
 	RETLDM
 
 #endif
--- ../gcc-cross-4.1.2-r4-unpatched/gcc-4.1.2/gcc/config/arm/ieee754-sf.S	2007-06-07 13:06:52.000000000 +1000
+++ gcc-4.1.2/gcc/config/arm/ieee754-sf.S	2007-06-07 13:21:43.000000000 +1000
@@ -302,8 +302,13 @@
 
 	orrs	r2, r0, r1
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
+#if defined (__FPA_FP__)
 	mvfeqs	f0, #0.0
 #endif
+#if defined (__MAVERICK__)
+    cfmvsr  mvf0, #0.0
+#endif
+#endif
 	RETc(eq)
 
 	mov	r3, #0
@@ -314,8 +319,13 @@
 
 	orrs	r2, r0, r1
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
+#if defined (__FPA_FP__)
 	mvfeqs	f0, #0.0
 #endif
+#if defined (__MAVERICK__)
+    cfmvsr  mvf0, #0.0
+#endif
+#endif
 	RETc(eq)
 
 	ands	r3, ah, #0x80000000	@ sign bit in r3
@@ -387,8 +397,13 @@
 #if !defined (__VFP_FP__) && !defined(__SOFTFP__)
 
 LSYM(f0_ret):
+#if defined (__FPA_FP__)
 	str	r0, [sp, #-4]!
 	ldfs	f0, [sp], #4
+#endif
+#if defined (__MAVERICK__)
+    cfmvsr  mvf0, r0
+#endif
 	RETLDM
 
 #endif