diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-7.2/0001-PR-rtl-optimization-81803.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-7.2/0001-PR-rtl-optimization-81803.patch | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-7.2/0001-PR-rtl-optimization-81803.patch b/meta/recipes-devtools/gcc/gcc-7.2/0001-PR-rtl-optimization-81803.patch deleted file mode 100644 index 292e734a2f..0000000000 --- a/meta/recipes-devtools/gcc/gcc-7.2/0001-PR-rtl-optimization-81803.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From 5cbb8e6b1122092b3eaabd4270b2f316aa40407c Mon Sep 17 00:00:00 2001 | ||
2 | From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | ||
3 | Date: Tue, 31 Oct 2017 18:27:52 +0000 | ||
4 | Subject: [PATCH] PR rtl-optimization/81803 * lra-constraints.c | ||
5 | (curr_insn_transform): Also reload the whole register for a strict subreg | ||
6 | no wider than a word if this is for a WORD_REGISTER_OPERATIONS target. | ||
7 | |||
8 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254275 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | |||
12 | This patch removes changes to Changelog from the original patch upstream. This is | ||
13 | because we are backporting a patch to a stable version, making changes to Changelog, | ||
14 | especially up '* GCC 7.2.0 released.', feels a little weird. | ||
15 | |||
16 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
17 | --- | ||
18 | gcc/lra-constraints.c | 11 ++++++++--- | ||
19 | 2 files changed, 16 insertions(+), 3 deletions(-) | ||
20 | |||
21 | diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c | ||
22 | index a423f069836..3758409bb9c 100644 | ||
23 | --- a/gcc/lra-constraints.c | ||
24 | +++ b/gcc/lra-constraints.c | ||
25 | @@ -4207,8 +4207,9 @@ curr_insn_transform (bool check_only_p) | ||
26 | reg = SUBREG_REG (*loc); | ||
27 | byte = SUBREG_BYTE (*loc); | ||
28 | if (REG_P (reg) | ||
29 | - /* Strict_low_part requires reload the register not | ||
30 | - the sub-register. */ | ||
31 | + /* Strict_low_part requires reloading the register and not | ||
32 | + just the subreg. Likewise for a strict subreg no wider | ||
33 | + than a word for WORD_REGISTER_OPERATIONS targets. */ | ||
34 | && (curr_static_id->operand[i].strict_low | ||
35 | || (!paradoxical_subreg_p (mode, GET_MODE (reg)) | ||
36 | && (hard_regno | ||
37 | @@ -4219,7 +4220,11 @@ curr_insn_transform (bool check_only_p) | ||
38 | && (goal_alt[i] == NO_REGS | ||
39 | || (simplify_subreg_regno | ||
40 | (ira_class_hard_regs[goal_alt[i]][0], | ||
41 | - GET_MODE (reg), byte, mode) >= 0))))) | ||
42 | + GET_MODE (reg), byte, mode) >= 0))) | ||
43 | + || (GET_MODE_PRECISION (mode) | ||
44 | + < GET_MODE_PRECISION (GET_MODE (reg)) | ||
45 | + && GET_MODE_SIZE (GET_MODE (reg)) <= UNITS_PER_WORD | ||
46 | + && WORD_REGISTER_OPERATIONS))) | ||
47 | { | ||
48 | /* An OP_INOUT is required when reloading a subreg of a | ||
49 | mode wider than a word to ensure that data beyond the | ||
50 | -- | ||
51 | 2.13.0 | ||
52 | |||