diff options
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.patch | 37 |
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 | |||
7 | 2010-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 | |||