diff options
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch')
| -rw-r--r-- | recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99348.patch new file mode 100644 index 0000000000..f99938a7f1 --- /dev/null +++ b/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 | |||
