diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2015-11-26 19:40:53 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-12 23:42:52 +0000 |
commit | c7ad779289da874f97b0f5d74e4aef9253f00aa5 (patch) | |
tree | 60061e025ee3263571f164ceb11502e550eeaa59 /meta/recipes-devtools/gcc/gcc-4.9 | |
parent | 1260ded611dc130a6fa7535fbc53188a657c77af (diff) | |
download | poky-c7ad779289da874f97b0f5d74e4aef9253f00aa5.tar.gz |
gcc-4.9: import patch fixing compilation in thumb mode
Import patch fixing a bug that caused ICE when compiling some packages
(e.g. ICU) in Thumb-1 model.
(From OE-Core rev: 68062674b853af750d0fdafb06090ed2f75fa0a4)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.9')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch b/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch new file mode 100644 index 0000000000..2f262e3a3a --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | Upstream-Status: Accepted | ||
2 | |||
3 | Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | ||
4 | --- | ||
5 | |||
6 | 2015-11-25 Vladimir Makarov <vmakarov@redhat.com> | ||
7 | |||
8 | PR rtl-optimization/67954 | ||
9 | * lra-constraints.c (curr_insn_transform): Add check on scratch | ||
10 | pseudo when change class to NO_REGS. Add an assert. | ||
11 | |||
12 | |||
13 | |||
14 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230894 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
15 | --- | ||
16 | |||
17 | diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c | ||
18 | index 4670e81..c62bf6a 100644 | ||
19 | --- a/gcc/lra-constraints.c | ||
20 | +++ b/gcc/lra-constraints.c | ||
21 | @@ -3725,7 +3725,8 @@ curr_insn_transform (bool check_only_p) | ||
22 | assigment pass and the scratch pseudo will be | ||
23 | spilled. Spilled scratch pseudos are transformed | ||
24 | back to scratches at the LRA end. */ | ||
25 | - && lra_former_scratch_operand_p (curr_insn, i)) | ||
26 | + && lra_former_scratch_operand_p (curr_insn, i) | ||
27 | + && lra_former_scratch_p (REGNO (op))) | ||
28 | { | ||
29 | int regno = REGNO (op); | ||
30 | lra_change_class (regno, NO_REGS, " Change to", true); | ||
31 | @@ -3734,6 +3735,8 @@ curr_insn_transform (bool check_only_p) | ||
32 | spilled pseudo as there is only one such insn, the | ||
33 | current one. */ | ||
34 | reg_renumber[regno] = -1; | ||
35 | + lra_assert (bitmap_single_bit_set_p | ||
36 | + (&lra_reg_info[REGNO (op)].insn_bitmap)); | ||
37 | } | ||
38 | /* We can do an optional reload. If the pseudo got a hard | ||
39 | reg, we might improve the code through inheritance. If | ||