summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-15 22:08:12 +0000
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-15 22:08:12 +0000
commit283f4bbb13981059d5e2fb9c65dcd43cc9d1ddbc (patch)
tree88eb9338cb7e1049118e104d94628d5bfca13345 /gcc
parent9a4efa46ac79e2f6fe75fe57091ff3f8bb593d6e (diff)
Backport from mainline
2018-01-10 Segher Boessenkool <segher@kernel.crashing.org> PR target/83629 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): Wrap const term in CONST RTL. gcc/testsuite/ Backport from mainline 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org> PR target/83629 * gcc.target/powerpc/pr83629.c: New testcase. 2018-01-12 Segher Boessenkool <segher@kernel.crashing.org> PR target/83629 * gcc.target/powerpc/pr83629.c: Require ilp32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@256711 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/rs6000/rs6000.md26
-rw-r--r--gcc/testsuite/ChangeLog13
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr83629.c10
4 files changed, 48 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b78521698556..d74730bc5c0b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2018-01-15 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Backport from mainline
+ 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/83629
+ * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
+ load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
+
2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 8c3ccda8d917..fe6653628c05 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -10662,27 +10662,33 @@
(define_insn "load_toc_v4_PIC_2"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (mem:SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
- (minus:SI (match_operand:SI 2 "immediate_operand" "s")
- (match_operand:SI 3 "immediate_operand" "s")))))]
+ (mem:SI (plus:SI
+ (match_operand:SI 1 "gpc_reg_operand" "b")
+ (const
+ (minus:SI (match_operand:SI 2 "immediate_operand" "s")
+ (match_operand:SI 3 "immediate_operand" "s"))))))]
"TARGET_ELF && DEFAULT_ABI == ABI_V4 && flag_pic == 2"
"lwz %0,%2-%3(%1)"
[(set_attr "type" "load")])
(define_insn "load_toc_v4_PIC_3b"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
- (high:SI
- (minus:SI (match_operand:SI 2 "symbol_ref_operand" "s")
- (match_operand:SI 3 "symbol_ref_operand" "s")))))]
+ (plus:SI
+ (match_operand:SI 1 "gpc_reg_operand" "b")
+ (high:SI
+ (const
+ (minus:SI (match_operand:SI 2 "symbol_ref_operand" "s")
+ (match_operand:SI 3 "symbol_ref_operand" "s"))))))]
"TARGET_ELF && TARGET_SECURE_PLT && DEFAULT_ABI == ABI_V4 && flag_pic"
"addis %0,%1,%2-%3@ha")
(define_insn "load_toc_v4_PIC_3c"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b")
- (minus:SI (match_operand:SI 2 "symbol_ref_operand" "s")
- (match_operand:SI 3 "symbol_ref_operand" "s"))))]
+ (lo_sum:SI
+ (match_operand:SI 1 "gpc_reg_operand" "b")
+ (const
+ (minus:SI (match_operand:SI 2 "symbol_ref_operand" "s")
+ (match_operand:SI 3 "symbol_ref_operand" "s")))))]
"TARGET_ELF && TARGET_SECURE_PLT && DEFAULT_ABI == ABI_V4 && flag_pic"
"addi %0,%1,%2-%3@l")
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5a2684da8085..1579cba53721 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2018-01-15 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Backport from mainline
+ 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/83629
+ * gcc.target/powerpc/pr83629.c: New testcase.
+
+ 2018-01-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/83629
+ * gcc.target/powerpc/pr83629.c: Require ilp32.
+
2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline
diff --git a/gcc/testsuite/gcc.target/powerpc/pr83629.c b/gcc/testsuite/gcc.target/powerpc/pr83629.c
new file mode 100644
index 000000000000..ae00e1459521
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr83629.c
@@ -0,0 +1,10 @@
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -fPIC -frename-registers --param=sched-autopref-queue-depth=0 -mcpu=603" } */
+
+extern void bar (void *);
+
+void
+foo (void)
+{
+ bar ("");
+}