diff options
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-5.2.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-5.2/0043-fix-arm-thumb.patch | 39 |
2 files changed, 40 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-5.2.inc b/meta/recipes-devtools/gcc/gcc-5.2.inc index a6b385ac65..e5e92e9ab2 100644 --- a/meta/recipes-devtools/gcc/gcc-5.2.inc +++ b/meta/recipes-devtools/gcc/gcc-5.2.inc | |||
| @@ -74,6 +74,7 @@ SRC_URI = "\ | |||
| 74 | file://0040-nativesdk-gcc-support.patch \ | 74 | file://0040-nativesdk-gcc-support.patch \ |
| 75 | file://0041-handle-target-sysroot-multilib.patch \ | 75 | file://0041-handle-target-sysroot-multilib.patch \ |
| 76 | file://0042-cxxflags-for-build.patch \ | 76 | file://0042-cxxflags-for-build.patch \ |
| 77 | file://0043-fix-arm-thumb.patch \ | ||
| 77 | " | 78 | " |
| 78 | 79 | ||
| 79 | BACKPORTS = "" | 80 | BACKPORTS = "" |
diff --git a/meta/recipes-devtools/gcc/gcc-5.2/0043-fix-arm-thumb.patch b/meta/recipes-devtools/gcc/gcc-5.2/0043-fix-arm-thumb.patch new file mode 100644 index 0000000000..2f262e3a3a --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-5.2/0043-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 | ||
