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 | |||
