diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 22:03:58 +0100 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 22:12:02 +0100 |
commit | be10a6b1321f250b1034c7d9d0a8ef18b296eef1 (patch) | |
tree | 9249025cbfbfbee4cc430d62b27f75301dd4dfde /recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch | |
parent | 93b28937ac67ba46d65f55637e42552e224aa7e2 (diff) | |
download | meta-openembedded-be10a6b1321f250b1034c7d9d0a8ef18b296eef1.tar.gz |
angstrom-layers: meta-openembedded: replace poky gcc 4.5 sources with OE ones
This needs further investigation, but for now we can get the tested sources into the poky gcc harness
Signed-off-by: Koen Kooi <k-kooi@ti.com>
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch')
-rw-r--r-- | recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch new file mode 100644 index 0000000000..9b56560942 --- /dev/null +++ b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99336.patch | |||
@@ -0,0 +1,95 @@ | |||
1 | gcc/ | ||
2 | * config/arm/arm.c (arm_override_options): Override alignments if | ||
3 | tuning for Cortex-A8. | ||
4 | (create_fix_barrier, arm_reorg): If aligning to jumps or loops, | ||
5 | make labels have a size. | ||
6 | * config/arm/arm.md (VUNSPEC_ALIGN16, VUNSPEC_ALIGN32): New constants. | ||
7 | (align_16, align_32): New patterns. | ||
8 | |||
9 | 2010-07-26 Julian Brown <julian@codesourcery.com> | ||
10 | |||
11 | Merge from Sourcery G++ 4.4: | ||
12 | |||
13 | Mark Shinwell <shinwell@codesourcery.com> | ||
14 | |||
15 | |||
16 | === modified file 'gcc/config/arm/arm.c' | ||
17 | --- old/gcc/config/arm/arm.c 2010-08-10 14:03:02 +0000 | ||
18 | +++ new/gcc/config/arm/arm.c 2010-08-12 11:33:54 +0000 | ||
19 | @@ -1449,6 +1449,16 @@ | ||
20 | chosen. */ | ||
21 | gcc_assert (arm_tune != arm_none); | ||
22 | |||
23 | + if (arm_tune == cortexa8 && optimize >= 3) | ||
24 | + { | ||
25 | + /* These alignments were experimentally determined to improve SPECint | ||
26 | + performance on SPECCPU 2000. */ | ||
27 | + if (align_functions <= 0) | ||
28 | + align_functions = 16; | ||
29 | + if (align_jumps <= 0) | ||
30 | + align_jumps = 16; | ||
31 | + } | ||
32 | + | ||
33 | tune_flags = all_cores[(int)arm_tune].flags; | ||
34 | |||
35 | if (target_fp16_format_name) | ||
36 | @@ -11263,7 +11273,10 @@ | ||
37 | gcc_assert (GET_CODE (from) != BARRIER); | ||
38 | |||
39 | /* Count the length of this insn. */ | ||
40 | - count += get_attr_length (from); | ||
41 | + if (LABEL_P (from) && (align_jumps > 0 || align_loops > 0)) | ||
42 | + count += MAX (align_jumps, align_loops); | ||
43 | + else | ||
44 | + count += get_attr_length (from); | ||
45 | |||
46 | /* If there is a jump table, add its length. */ | ||
47 | tmp = is_jump_table (from); | ||
48 | @@ -11603,6 +11616,8 @@ | ||
49 | insn = table; | ||
50 | } | ||
51 | } | ||
52 | + else if (LABEL_P (insn) && (align_jumps > 0 || align_loops > 0)) | ||
53 | + address += MAX (align_jumps, align_loops); | ||
54 | } | ||
55 | |||
56 | fix = minipool_fix_head; | ||
57 | |||
58 | === modified file 'gcc/config/arm/arm.md' | ||
59 | --- old/gcc/config/arm/arm.md 2010-08-12 11:29:02 +0000 | ||
60 | +++ new/gcc/config/arm/arm.md 2010-08-12 11:33:54 +0000 | ||
61 | @@ -135,6 +135,8 @@ | ||
62 | (VUNSPEC_WCMP_EQ 12) ; Used by the iWMMXt WCMPEQ instructions | ||
63 | (VUNSPEC_WCMP_GTU 13) ; Used by the iWMMXt WCMPGTU instructions | ||
64 | (VUNSPEC_WCMP_GT 14) ; Used by the iwMMXT WCMPGT instructions | ||
65 | + (VUNSPEC_ALIGN16 15) ; Used to force 16-byte alignment. | ||
66 | + (VUNSPEC_ALIGN32 16) ; Used to force 32-byte alignment. | ||
67 | (VUNSPEC_EH_RETURN 20); Use to override the return address for exception | ||
68 | ; handling. | ||
69 | ] | ||
70 | @@ -11042,6 +11044,24 @@ | ||
71 | " | ||
72 | ) | ||
73 | |||
74 | +(define_insn "align_16" | ||
75 | + [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN16)] | ||
76 | + "TARGET_EITHER" | ||
77 | + "* | ||
78 | + assemble_align (128); | ||
79 | + return \"\"; | ||
80 | + " | ||
81 | +) | ||
82 | + | ||
83 | +(define_insn "align_32" | ||
84 | + [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN32)] | ||
85 | + "TARGET_EITHER" | ||
86 | + "* | ||
87 | + assemble_align (256); | ||
88 | + return \"\"; | ||
89 | + " | ||
90 | +) | ||
91 | + | ||
92 | (define_insn "consttable_end" | ||
93 | [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_END)] | ||
94 | "TARGET_EITHER" | ||
95 | |||