summaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch
new file mode 100644
index 0000000000..f99938a7f1
--- /dev/null
+++ b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch
@@ -0,0 +1,37 @@
1 2010-02-23 Julian Brown <julian@codesourcery.com>
2
3 gcc/
4 * calls.c (precompute_register_parameters): Avoid generating a
5 register move if optimizing for size.
6
72010-07-26 Julian Brown <julian@codesourcery.com>
8
9 Merge from Sourcery G++ 4.4:
10
11 2010-02-15 Julian Brown <julian@codesourcery.com>
12
13 Issue #7486
14
15=== modified file 'gcc/calls.c'
16--- old/gcc/calls.c 2010-04-02 18:54:46 +0000
17+++ new/gcc/calls.c 2010-08-13 10:50:45 +0000
18@@ -703,7 +703,9 @@
19
20 For small register classes, also do this if this call uses
21 register parameters. This is to avoid reload conflicts while
22- loading the parameters registers. */
23+ loading the parameters registers.
24+
25+ Avoid creating the extra move if optimizing for size. */
26
27 else if ((! (REG_P (args[i].value)
28 || (GET_CODE (args[i].value) == SUBREG
29@@ -711,6 +713,7 @@
30 && args[i].mode != BLKmode
31 && rtx_cost (args[i].value, SET, optimize_insn_for_speed_p ())
32 > COSTS_N_INSNS (1)
33+ && !optimize_size
34 && ((SMALL_REGISTER_CLASSES && *reg_parm_seen)
35 || optimize))
36 args[i].value = copy_to_mode_reg (args[i].mode, args[i].value);
37