aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-10-19 12:55:51 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2017-10-19 12:55:51 +0200
commitd8198d1cd0f0849d5ba070d70b672ed869eead4a (patch)
treee83645288b3fdbad8035b41d2adbbc4e16608584 /gcc
parent1855f812512d84eca88c51c1ceac0045bc95ad5e (diff)
downloadgcc-d8198d1cd0f0849d5ba070d70b672ed869eead4a.zip
gcc-d8198d1cd0f0849d5ba070d70b672ed869eead4a.tar.gz
gcc-d8198d1cd0f0849d5ba070d70b672ed869eead4a.tar.bz2
rs6000: Fix "missing mode" on UNSPEC_TOCSLOT
Currently gen* warn about a missing mode on an UNSPEC_TOCSLOT unspec in some call patterns. Those unspecs are created from rs6000.c, with Pmode always. This patch fixes the patterns to say :P as well. * config/rs6000/rs6000.md (*call_indirect_aix<mode>, *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>, *call_value_indirect_elfv2<mode>): Add correct mode to the unspec. From-SVN: r253885
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.md8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b7f4e4e..189fe05 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-19 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
+ *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
+ *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
+
2017-10-19 Jakub Jelinek <jakub@redhat.com>
PR target/82580
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index aad382c..62bd19b 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -11157,7 +11157,7 @@
[(call (mem:SI (match_operand:P 0 "register_operand" "c,*l"))
(match_operand 1 "" "g,g"))
(use (match_operand:P 2 "memory_operand" "<ptrm>,<ptrm>"))
- (set (reg:P TOC_REGNUM) (unspec [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
+ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
(clobber (reg:P LR_REGNO))]
"DEFAULT_ABI == ABI_AIX"
"<ptrload> 2,%2\;b%T0l\;<ptrload> 2,%3(1)"
@@ -11169,7 +11169,7 @@
(call (mem:SI (match_operand:P 1 "register_operand" "c,*l"))
(match_operand 2 "" "g,g")))
(use (match_operand:P 3 "memory_operand" "<ptrm>,<ptrm>"))
- (set (reg:P TOC_REGNUM) (unspec [(match_operand:P 4 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
+ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 4 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
(clobber (reg:P LR_REGNO))]
"DEFAULT_ABI == ABI_AIX"
"<ptrload> 2,%3\;b%T1l\;<ptrload> 2,%4(1)"
@@ -11183,7 +11183,7 @@
(define_insn "*call_indirect_elfv2<mode>"
[(call (mem:SI (match_operand:P 0 "register_operand" "c,*l"))
(match_operand 1 "" "g,g"))
- (set (reg:P TOC_REGNUM) (unspec [(match_operand:P 2 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
+ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 2 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
(clobber (reg:P LR_REGNO))]
"DEFAULT_ABI == ABI_ELFv2"
"b%T0l\;<ptrload> 2,%2(1)"
@@ -11194,7 +11194,7 @@
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:P 1 "register_operand" "c,*l"))
(match_operand 2 "" "g,g")))
- (set (reg:P TOC_REGNUM) (unspec [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
+ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT))
(clobber (reg:P LR_REGNO))]
"DEFAULT_ABI == ABI_ELFv2"
"b%T1l\;<ptrload> 2,%3(1)"