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
|