diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-04-30 12:37:47 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-05 12:26:41 +0100 |
commit | 478deec11f3349d61b1a922f047dc958dc07262a (patch) | |
tree | 1843907b36de2bcb8f821d49d8c9a88014ef0dc7 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch | |
parent | d42dccf886983ba14ccc868041d7bea0cf1a260e (diff) | |
download | poky-478deec11f3349d61b1a922f047dc958dc07262a.tar.gz |
gcc-4.6.0: Backport FSF 4.6 branch patches
This is set of bugfixes that has been done on
FSF gcc-4_2-branch since 4.6.0 was released
They will roll into 4.6.1 release once that
happens in coming approx 6 months time then
we can simply remove them thats the reason
so use a separate .inc file to define the
SRC_URI additions
(From OE-Core rev: b0d5b9f12adbce2c4a0df6059f5671188cd32293)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch new file mode 100644 index 0000000000..748bca59e0 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0019-2011-03-29-Andreas-Krebbel-Andreas.Krebbel-de.ibm.co.patch | |||
@@ -0,0 +1,62 @@ | |||
1 | From 6f57329da3c7308ccf6b1740ead898d668ec24f9 Mon Sep 17 00:00:00 2001 | ||
2 | From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | ||
3 | Date: Tue, 29 Mar 2011 11:57:40 +0000 | ||
4 | Subject: [PATCH 019/200] 2011-03-29 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | ||
5 | |||
6 | * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS | ||
7 | for invalid symbolic addresses. | ||
8 | (s390_secondary_reload): Don't use s390_check_symref_alignment for | ||
9 | larl operands. | ||
10 | |||
11 | |||
12 | |||
13 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171658 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
14 | |||
15 | index 5165e87..c1bb234 100644 | ||
16 | --- a/gcc/config/s390/s390.c | ||
17 | +++ b/gcc/config/s390/s390.c | ||
18 | @@ -3011,14 +3011,20 @@ s390_preferred_reload_class (rtx op, reg_class_t rclass) | ||
19 | it is most likely being used as an address, so | ||
20 | prefer ADDR_REGS. If 'class' is not a superset | ||
21 | of ADDR_REGS, e.g. FP_REGS, reject this reload. */ | ||
22 | - case PLUS: | ||
23 | case LABEL_REF: | ||
24 | case SYMBOL_REF: | ||
25 | case CONST: | ||
26 | - if (reg_class_subset_p (ADDR_REGS, rclass)) | ||
27 | + if (reg_class_subset_p (ADDR_REGS, rclass) | ||
28 | + && legitimate_reload_constant_p (op)) | ||
29 | return ADDR_REGS; | ||
30 | else | ||
31 | return NO_REGS; | ||
32 | + case PLUS: | ||
33 | + /* load address will be used for this reload. */ | ||
34 | + if (reg_class_subset_p (ADDR_REGS, rclass)) | ||
35 | + return ADDR_REGS; | ||
36 | + else | ||
37 | + return NO_REGS; | ||
38 | |||
39 | default: | ||
40 | break; | ||
41 | @@ -3134,12 +3140,16 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, | ||
42 | |||
43 | if (TARGET_Z10) | ||
44 | { | ||
45 | + HOST_WIDE_INT offset; | ||
46 | + rtx symref; | ||
47 | + | ||
48 | /* On z10 several optimizer steps may generate larl operands with | ||
49 | an odd addend. */ | ||
50 | if (in_p | ||
51 | - && s390_symref_operand_p (x, NULL, NULL) | ||
52 | + && s390_symref_operand_p (x, &symref, &offset) | ||
53 | && mode == Pmode | ||
54 | - && !s390_check_symref_alignment (x, 2)) | ||
55 | + && !SYMBOL_REF_ALIGN1_P (symref) | ||
56 | + && (offset & 1) == 1) | ||
57 | sri->icode = ((mode == DImode) ? CODE_FOR_reloaddi_larl_odd_addend_z10 | ||
58 | : CODE_FOR_reloadsi_larl_odd_addend_z10); | ||
59 | |||
60 | -- | ||
61 | 1.7.0.4 | ||
62 | |||