summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-21 13:32:58 +0000
committerwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-21 13:32:58 +0000
commit1695327e5d67cec30a1ba00324c63c573331a198 (patch)
tree5e7d8f276939e1d6611976f53374837f893fb420
parent5dd5df6046bb418a5bc970499e4a228a5e74deef (diff)
[gcc]
2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Backport from mainline 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> David Edelsohn <dje.gcc@gmail.com> PR target/83946 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): Change "crset eq" to "crset 2". (*call_value_indirect_nonlocal_sysv<mode>): Likewise. (*call_indirect_aix<mode>_nospec): Likewise. (*call_value_indirect_aix<mode>_nospec): Likewise. (*call_indirect_elfv2<mode>_nospec): Likewise. (*call_value_indirect_elfv2<mode>_nospec): Likewise. (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2"; change assembly output from . to $. (*sibcall_value_nonlocal_sysv<mode>): Likewise. (indirect_jump<mode>_nospec): Change assembly output from . to $. (*tablejump<mode>_internal1_nospec): Likewise. [gcc/testsuite] 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Backport from mainline 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> David Edelsohn <dje.gcc@gmail.com> PR target/83946 * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected assembly output from "crset eq" to "crset 2". * gcc.target/powerpc/safe-indirect-jump-2.c: Change expected assembly output from . to $. * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected assembly output from "crset eq" to "crset 2". * gcc.target/powerpc/safe-indirect-jump-8.c: Change expected assembly output from "crset eq" to "crset 2", and from . to $. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@256932 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog20
-rw-r--r--gcc/config/rs6000/rs6000.md20
-rw-r--r--gcc/testsuite/ChangeLog17
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c4
8 files changed, 53 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 24714ea2a683..336dda8c45d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+ David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/83946
+ * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
+ Change "crset eq" to "crset 2".
+ (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
+ (*call_indirect_aix<mode>_nospec): Likewise.
+ (*call_value_indirect_aix<mode>_nospec): Likewise.
+ (*call_indirect_elfv2<mode>_nospec): Likewise.
+ (*call_value_indirect_elfv2<mode>_nospec): Likewise.
+ (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
+ change assembly output from . to $.
+ (*sibcall_value_nonlocal_sysv<mode>): Likewise.
+ (indirect_jump<mode>_nospec): Change assembly output from . to $.
+ (*tablejump<mode>_internal1_nospec): Likewise.
+
2018-01-21 Oleg Endo <olegendo@gcc.gnu.org>
Backport from mainline
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 6daa7a99cd2c..4a199b767deb 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -11006,7 +11006,7 @@
|| which_alternative == 1 || which_alternative == 3)
return "b%T0l";
else
- return "crset eq\;beq%T0l-";
+ return "crset 2\;beq%T0l-";
}
[(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
(set (attr "length")
@@ -11119,7 +11119,7 @@
|| which_alternative == 1 || which_alternative == 3)
return "b%T1l";
else
- return "crset eq\;beq%T1l-";
+ return "crset 2\;beq%T1l-";
}
[(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
(set (attr "length")
@@ -11280,7 +11280,7 @@
(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 && !rs6000_speculate_indirect_jumps"
- "crset eq\;<ptrload> 2,%2\;beq%T0l-\;<ptrload> 2,%3(1)"
+ "crset 2\;<ptrload> 2,%2\;beq%T0l-\;<ptrload> 2,%3(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "16")])
@@ -11304,7 +11304,7 @@
(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 && !rs6000_speculate_indirect_jumps"
- "crset eq\;<ptrload> 2,%3\;beq%T1l-\;<ptrload> 2,%4(1)"
+ "crset 2\;<ptrload> 2,%3\;beq%T1l-\;<ptrload> 2,%4(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "16")])
@@ -11329,7 +11329,7 @@
(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 && !rs6000_speculate_indirect_jumps"
- "crset eq\;beq%T0l-\;<ptrload> 2,%2(1)"
+ "crset 2\;beq%T0l-\;<ptrload> 2,%2(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "12")])
@@ -11352,7 +11352,7 @@
(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 && !rs6000_speculate_indirect_jumps"
- "crset eq\;beq%T1l-\;<ptrload> 2,%3(1)"
+ "crset 2\;beq%T1l-\;<ptrload> 2,%3(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "12")])
@@ -11536,7 +11536,7 @@
return \"b%T0\";
else
/* Can use CR0 since it is volatile across sibcalls. */
- return \"crset eq\;beq%T0-\;b .\";
+ return \"crset 2\;beq%T0-\;b $\";
}
else if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
@@ -11593,7 +11593,7 @@
return \"b%T1\";
else
/* Can use CR0 since it is volatile across sibcalls. */
- return \"crset eq\;beq%T1-\;b .\";
+ return \"crset 2\;beq%T1-\;b $\";
}
else if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
@@ -13026,7 +13026,7 @@
[(set (pc) (match_operand:P 0 "register_operand" "c,*l"))
(clobber (match_operand:CC 1 "cc_reg_operand" "=y,y"))]
"!rs6000_speculate_indirect_jumps"
- "crset %E1\;beq%T0- %1\;b ."
+ "crset %E1\;beq%T0- %1\;b $"
[(set_attr "type" "jmpreg")
(set_attr "length" "12")])
@@ -13133,7 +13133,7 @@
(use (label_ref (match_operand 1)))
(clobber (match_operand:CC 2 "cc_reg_operand" "=y,y"))]
"!rs6000_speculate_indirect_jumps"
- "crset %E2\;beq%T0- %2\;b ."
+ "crset %E2\;beq%T0- %2\;b $"
[(set_attr "type" "jmpreg")
(set_attr "length" "12")])
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dfd02631306a..b7e26047265d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+ David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/83946
+ * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected
+ assembly output from "crset eq" to "crset 2".
+ * gcc.target/powerpc/safe-indirect-jump-2.c: Change expected
+ assembly output from . to $.
+ * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise.
+ * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected
+ assembly output from "crset eq" to "crset 2".
+ * gcc.target/powerpc/safe-indirect-jump-8.c: Change expected
+ assembly output from "crset eq" to "crset 2", and from . to $.
+
2018-01-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/83900
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
index d66e9c3cdb9d..99cfab29e6ed 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
@@ -10,5 +10,5 @@ int bar ()
return (*f) ();
}
-/* { dg-final { scan-assembler "crset eq" } } */
+/* { dg-final { scan-assembler "crset 2" } } */
/* { dg-final { scan-assembler "beqctrl-" } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
index b51034fa1b0c..1c23a5d9addf 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
@@ -30,4 +30,4 @@ int foo (int x)
/* { dg-final { scan-assembler "crset 30" } } */
/* { dg-final { scan-assembler "beqctr- 7" } } */
-/* { dg-final { scan-assembler "b ." } } */
+/* { dg-final { scan-assembler {b \$} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
index 81da127cc17b..d0eccc4f262f 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
@@ -49,4 +49,4 @@ int foo (int x)
/* { dg-final { scan-assembler "crset 30" } } */
/* { dg-final { scan-assembler "beqctr- 7" } } */
-/* { dg-final { scan-assembler "b ." } } */
+/* { dg-final { scan-assembler {b \$} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
index d19245e34c4f..b1bdcca85240 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
@@ -10,5 +10,5 @@ int bar ()
return (*f) () * 53;
}
-/* { dg-final { scan-assembler "crset eq" } } */
+/* { dg-final { scan-assembler "crset 2" } } */
/* { dg-final { scan-assembler "beqctrl-" } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
index be2150e0c148..27642cc4450a 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
@@ -10,6 +10,6 @@ int bar ()
return (*f) ();
}
-/* { dg-final { scan-assembler "crset eq" } } */
+/* { dg-final { scan-assembler "crset 2" } } */
/* { dg-final { scan-assembler "beqctr-" } } */
-/* { dg-final { scan-assembler "b ." } } */
+/* { dg-final { scan-assembler {b \$} } } */