diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.0/arm-thumb.patch')
-rw-r--r-- | meta/packages/gcc/gcc-4.3.0/arm-thumb.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.0/arm-thumb.patch b/meta/packages/gcc/gcc-4.3.0/arm-thumb.patch new file mode 100644 index 0000000000..016a7a550b --- /dev/null +++ b/meta/packages/gcc/gcc-4.3.0/arm-thumb.patch | |||
@@ -0,0 +1,64 @@ | |||
1 | |||
2 | # | ||
3 | # Patch managed by http://www.holgerschurig.de/patcher.html | ||
4 | # | ||
5 | |||
6 | --- gcc-4.1.1/gcc/config/arm/lib1funcs.asm~gcc | ||
7 | +++ gcc-4.1.1/gcc/config/arm/lib1funcs.asm | ||
8 | @@ -995,10 +995,24 @@ | ||
9 | .code 32 | ||
10 | FUNC_START div0 | ||
11 | |||
12 | +#if ! defined __thumb__ | ||
13 | stmfd sp!, {r1, lr} | ||
14 | mov r0, #SIGFPE | ||
15 | bl SYM(raise) __PLT__ | ||
16 | RETLDM r1 | ||
17 | +#else | ||
18 | + push {r1, lr} | ||
19 | + mov r0, #SIGFPE | ||
20 | + bl SYM(raise) __PLT__ | ||
21 | +#if __ARM_ARCH__ > 4 | ||
22 | + pop {r1, pc} | ||
23 | +#else | ||
24 | + @ on 4T that won't work | ||
25 | + pop {r1} | ||
26 | + pop {r3} | ||
27 | + bx r3 | ||
28 | +#endif | ||
29 | +#endif | ||
30 | |||
31 | FUNC_END div0 | ||
32 | |||
33 | @@ -1141,11 +1155,12 @@ | ||
34 | code here switches to the correct mode before executing the function. */ | ||
35 | |||
36 | .text | ||
37 | - .align 0 | ||
38 | + .align 1 | ||
39 | .force_thumb | ||
40 | |||
41 | .macro call_via register | ||
42 | THUMB_FUNC_START _call_via_\register | ||
43 | + .hidden SYM (_call_via_\register) | ||
44 | |||
45 | bx \register | ||
46 | nop | ||
47 | @@ -1242,6 +1257,7 @@ | ||
48 | .code 16 | ||
49 | |||
50 | THUMB_FUNC_START _interwork_call_via_\register | ||
51 | + .hidden SYM (_interwork_call_via_\register) | ||
52 | |||
53 | bx pc | ||
54 | nop | ||
55 | --- gcc-4.1.1/gcc/config/arm/t-linux~gcc | ||
56 | +++ gcc-4.1.1/gcc/config/arm/t-linux | ||
57 | @@ -7,6 +7,7 @@ | ||
58 | LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ | ||
59 | _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ | ||
60 | _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ | ||
61 | + _call_via_rX \ | ||
62 | _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundisf _floatundidf | ||
63 | |||
64 | # MULTILIB_OPTIONS = mhard-float/msoft-float | ||