diff options
author | wschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-01-21 13:32:58 +0000 |
---|---|---|
committer | wschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-01-21 13:32:58 +0000 |
commit | 1695327e5d67cec30a1ba00324c63c573331a198 (patch) | |
tree | 5e7d8f276939e1d6611976f53374837f893fb420 /gcc | |
parent | 5dd5df6046bb418a5bc970499e4a228a5e74deef (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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 20 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 20 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c | 4 |
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 \$} } } */ |