summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch')
-rw-r--r--recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch
new file mode 100644
index 0000000000..7fc943f4bc
--- /dev/null
+++ b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99405.patch
@@ -0,0 +1,36 @@
12010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
2
3 Backport from mainline:
4
5 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
6
7 gcc/
8 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
9 to update conditions. Fix reg_mode[] check.
10
11=== modified file 'gcc/postreload.c'
12Index: gcc-4.5/gcc/postreload.c
13===================================================================
14--- gcc-4.5.orig/gcc/postreload.c
15+++ gcc-4.5/gcc/postreload.c
16@@ -2103,15 +2103,17 @@ move2add_note_store (rtx dst, const_rtx
17 && (MODES_OK_FOR_MOVE2ADD
18 (dst_mode, reg_mode[REGNO (XEXP (src, 1))])))
19 {
20- if (reg_base_reg[REGNO (XEXP (src, 1))] < 0)
21+ if (reg_base_reg[REGNO (XEXP (src, 1))] < 0
22+ && reg_symbol_ref[REGNO (XEXP (src, 1))] == NULL_RTX)
23 offset = reg_offset[REGNO (XEXP (src, 1))];
24 /* Maybe the first register is known to be a
25 constant. */
26 else if (reg_set_luid[REGNO (base_reg)]
27 > move2add_last_label_luid
28 && (MODES_OK_FOR_MOVE2ADD
29- (dst_mode, reg_mode[REGNO (XEXP (src, 1))]))
30- && reg_base_reg[REGNO (base_reg)] < 0)
31+ (dst_mode, reg_mode[REGNO (base_reg)]))
32+ && reg_base_reg[REGNO (base_reg)] < 0
33+ && reg_symbol_ref[REGNO (base_reg)] == NULL_RTX)
34 {
35 offset = reg_offset[REGNO (base_reg)];
36 base_reg = XEXP (src, 1);