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