Re: [PATCH v2, rs6000] Use $ instead of . for PC
On January 20, 2018 4:34:20 AM GMT+01:00, Bill Schmidtwrote: >Forgot to mention, these have also been tested successfully as >backports in >gcc-7-branch. Okay to fix there as well? OK. Richard. >Thanks, >Bill > >> On Jan 19, 2018, at 9:31 PM, Bill Schmidt > wrote: >> >> Hi, >> >> Here's the same patch with corrected test cases. This has now passed >> bootstrap and testing on powerpc64-linux-gnu and >powerpc64le-linux-gnu >> with no regressions. Is this okay for trunk? >> >> Hopefully tomorrow early I will have a separate patch also changing >> "setcr eq" to "setcr 2" to accommodate the AIX assembler. >> >> Thanks, >> Bill >> >> >> [gcc] >> >> 2018-01-19 Bill Schmidt >> David Edelsohn >> >> PR target/83946 >> * config/rs6000/rs6000.md (*sibcall_nonlocal_sysv): Change >> assembly output from . to $. >> (*sibcall_value_nonlocal_sysv): Likewise. >> (indirect_jump_nospec): Likewise. >> (*tablejump_internal1_nospec): Likewise. >> >> [gcc/testsuite] >> >> 2018-01-19 Bill Schmidt >> David Edelsohn >> >> PR target/83946 >> * 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-8.c: Likewise. >> >> >> Index: gcc/config/rs6000/rs6000.md >> === >> --- gcc/config/rs6000/rs6000.md (revision 256894) >> +++ gcc/config/rs6000/rs6000.md (working copy) >> @@ -10987,7 +10987,7 @@ >> return \"b%T0\"; >> else >> /* Can use CR0 since it is volatile across sibcalls. */ >> -return \"crset eq\;beq%T0-\;b .\"; >> +return \"crset eq\;beq%T0-\;b $\"; >> } >> else if (DEFAULT_ABI == ABI_V4 && flag_pic) >> { >> @@ -11044,7 +11044,7 @@ >> return \"b%T1\"; >> else >> /* Can use CR0 since it is volatile across sibcalls. */ >> -return \"crset eq\;beq%T1-\;b .\"; >> +return \"crset eq\;beq%T1-\;b $\"; >> } >> else if (DEFAULT_ABI == ABI_V4 && flag_pic) >> { >> @@ -12566,7 +12566,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")]) >> >> @@ -12672,7 +12672,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")]) >> >> Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c >> === >> --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (revision >256894) >> +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (working >copy) >> @@ -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 \$} } } */ >> Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c >> === >> --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (revision >256894) >> +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (working >copy) >> @@ -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 \$} } } */ >> Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c >> === >> --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (revision >256894) >> +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (working >copy) >> @@ -12,4 +12,4 @@ int bar () >> >> /* { dg-final { scan-assembler "crset eq" } } */ >> /* { dg-final { scan-assembler "beqctr-" } } */ >> -/* { dg-final { scan-assembler "b ." } } */ >> +/* { dg-final { scan-assembler {b \$} } } */ >>
Re: [PATCH v2, rs6000] Use $ instead of . for PC
Forgot to mention, these have also been tested successfully as backports in gcc-7-branch. Okay to fix there as well? Thanks, Bill > On Jan 19, 2018, at 9:31 PM, Bill Schmidtwrote: > > Hi, > > Here's the same patch with corrected test cases. This has now passed > bootstrap and testing on powerpc64-linux-gnu and powerpc64le-linux-gnu > with no regressions. Is this okay for trunk? > > Hopefully tomorrow early I will have a separate patch also changing > "setcr eq" to "setcr 2" to accommodate the AIX assembler. > > Thanks, > Bill > > > [gcc] > > 2018-01-19 Bill Schmidt > David Edelsohn > > PR target/83946 > * config/rs6000/rs6000.md (*sibcall_nonlocal_sysv): Change > assembly output from . to $. > (*sibcall_value_nonlocal_sysv): Likewise. > (indirect_jump_nospec): Likewise. > (*tablejump_internal1_nospec): Likewise. > > [gcc/testsuite] > > 2018-01-19 Bill Schmidt > David Edelsohn > > PR target/83946 > * 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-8.c: Likewise. > > > Index: gcc/config/rs6000/rs6000.md > === > --- gcc/config/rs6000/rs6000.md (revision 256894) > +++ gcc/config/rs6000/rs6000.md (working copy) > @@ -10987,7 +10987,7 @@ > return \"b%T0\"; > else > /* Can use CR0 since it is volatile across sibcalls. */ > - return \"crset eq\;beq%T0-\;b .\"; > + return \"crset eq\;beq%T0-\;b $\"; > } > else if (DEFAULT_ABI == ABI_V4 && flag_pic) > { > @@ -11044,7 +11044,7 @@ > return \"b%T1\"; > else > /* Can use CR0 since it is volatile across sibcalls. */ > - return \"crset eq\;beq%T1-\;b .\"; > + return \"crset eq\;beq%T1-\;b $\"; > } > else if (DEFAULT_ABI == ABI_V4 && flag_pic) > { > @@ -12566,7 +12566,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")]) > > @@ -12672,7 +12672,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")]) > > Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c > === > --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (revision > 256894) > +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (working copy) > @@ -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 \$} } } */ > Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c > === > --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (revision > 256894) > +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (working copy) > @@ -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 \$} } } */ > Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c > === > --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (revision > 256894) > +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (working copy) > @@ -12,4 +12,4 @@ int bar () > > /* { dg-final { scan-assembler "crset eq" } } */ > /* { dg-final { scan-assembler "beqctr-" } } */ > -/* { dg-final { scan-assembler "b ." } } */ > +/* { dg-final { scan-assembler {b \$} } } */ >
[PATCH v2, rs6000] Use $ instead of . for PC
Hi, Here's the same patch with corrected test cases. This has now passed bootstrap and testing on powerpc64-linux-gnu and powerpc64le-linux-gnu with no regressions. Is this okay for trunk? Hopefully tomorrow early I will have a separate patch also changing "setcr eq" to "setcr 2" to accommodate the AIX assembler. Thanks, Bill [gcc] 2018-01-19 Bill SchmidtDavid Edelsohn PR target/83946 * config/rs6000/rs6000.md (*sibcall_nonlocal_sysv): Change assembly output from . to $. (*sibcall_value_nonlocal_sysv): Likewise. (indirect_jump_nospec): Likewise. (*tablejump_internal1_nospec): Likewise. [gcc/testsuite] 2018-01-19 Bill Schmidt David Edelsohn PR target/83946 * 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-8.c: Likewise. Index: gcc/config/rs6000/rs6000.md === --- gcc/config/rs6000/rs6000.md (revision 256894) +++ gcc/config/rs6000/rs6000.md (working copy) @@ -10987,7 +10987,7 @@ return \"b%T0\"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset eq\;beq%T0-\;b .\"; + return \"crset eq\;beq%T0-\;b $\"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { @@ -11044,7 +11044,7 @@ return \"b%T1\"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset eq\;beq%T1-\;b .\"; + return \"crset eq\;beq%T1-\;b $\"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { @@ -12566,7 +12566,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")]) @@ -12672,7 +12672,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")]) Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c === --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (working copy) @@ -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 \$} } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c === --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (working copy) @@ -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 \$} } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c === --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (working copy) @@ -12,4 +12,4 @@ int bar () /* { dg-final { scan-assembler "crset eq" } } */ /* { dg-final { scan-assembler "beqctr-" } } */ -/* { dg-final { scan-assembler "b ." } } */ +/* { dg-final { scan-assembler {b \$} } } */