[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-26 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #11 from Segher Boessenkool  ---
Author: segher
Date: Fri Jan 26 21:31:37 2018
New Revision: 257110

URL: https://gcc.gnu.org/viewcvs?rev=257110=gcc=rev
Log:
rs6000: Fix safe-indirect-jump-[18].c

Thist patch merges the safe-indirect-jump-1.c and -8.c testcases,
since they do the same thing.  On the 64-bit and AIX ABIs the indirect
call is not a sibcall, since there is code generated after the call
(the restore of r2).  On the 32-bit non-AIX ABIs it is a sibcall.


Backport from trunk
2018-01-26  Segher Boessenkool  

* gcc.target/powerpc/safe-indirect-jump-1.c: Build on all targets.
Make expected output depend on whether we expect sibcalls or not.
* gcc.target/powerpc/safe-indirect-jump-8.c: Delete (merged into
safe-indirect-jump-1.c).

Backport from trunk
2018-01-21  Bill Schmidt  

PR target/83946
* gcc.target/powerpc/safe-indirect-jump-8.c: Skip for AIX.

Removed:
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
Modified:
branches/gcc-7-branch/gcc/testsuite/ChangeLog
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Richard Biener  ---
Fixed (I assume), rolling RC2 right now.

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-21 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #9 from Bill Schmidt  ---
Author: wschmidt
Date: Mon Jan 22 02:46:11 2018
New Revision: 256939

URL: https://gcc.gnu.org/viewcvs?rev=256939=gcc=rev
Log:
2018-01-21  Bill Schmidt  

PR target/83946
* gcc.target/powerpc/safe-indirect-jump-8.c: Skip for AIX.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-21 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #8 from Bill Schmidt  ---
Segher was kind enough to run AIX tests for me last night.  There is still one
non-blocking issue with safe-indirect-jump-8.c, which should be skipped for
AIX, since it doesn't generate sibcalls to non-local functions.  Thus the
expected code generation for ABI_V4 doesn't apply for AIX.  But this is only a
bad test, not bad code gen.

Thanks, Segher!

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-21 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #7 from Bill Schmidt  ---
Author: wschmidt
Date: Sun Jan 21 13:32:58 2018
New Revision: 256932

URL: https://gcc.gnu.org/viewcvs?rev=256932=gcc=rev
Log:
[gcc]

2018-01-21  Bill Schmidt  

Backport from mainline
2018-01-21  Bill Schmidt  
David Edelsohn  

PR target/83946
* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv):
Change "crset eq" to "crset 2".
(*call_value_indirect_nonlocal_sysv): Likewise.
(*call_indirect_aix_nospec): Likewise.
(*call_value_indirect_aix_nospec): Likewise.
(*call_indirect_elfv2_nospec): Likewise.
(*call_value_indirect_elfv2_nospec): Likewise.
(*sibcall_nonlocal_sysv): Change "crset eq" to "crset 2";
change assembly output from . to $.
(*sibcall_value_nonlocal_sysv): Likewise.
(indirect_jump_nospec): Change assembly output from . to $.
(*tablejump_internal1_nospec): Likewise.

[gcc/testsuite]

2018-01-21  Bill Schmidt  

Backport from mainline
2018-01-21  Bill Schmidt  
David Edelsohn  

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 $.


Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/rs6000/rs6000.md
branches/gcc-7-branch/gcc/testsuite/ChangeLog
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-21 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #6 from Bill Schmidt  ---
Author: wschmidt
Date: Sun Jan 21 13:26:07 2018
New Revision: 256931

URL: https://gcc.gnu.org/viewcvs?rev=256931=gcc=rev
Log:
[gcc]

2018-01-21  Bill Schmidt  
David Edelsohn 

PR target/83946
* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv):
Change "crset eq" to "crset 2".
(*call_value_indirect_nonlocal_sysv): Likewise.
(*call_indirect_aix_nospec): Likewise.
(*call_value_indirect_aix_nospec): Likewise.
(*call_indirect_elfv2_nospec): Likewise.
(*call_value_indirect_elfv2_nospec): Likewise.
(*sibcall_nonlocal_sysv): Change "crset eq" to "crset 2";
change assembly output from . to $.
(*sibcall_value_nonlocal_sysv): Likewise.
(indirect_jump_nospec): Change assembly output from . to $.
(*tablejump_internal1_nospec): Likewise.

[gcc/testsuite]

2018-01-21  Bill Schmidt  
David Edelsohn 

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 $.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
trunk/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-19 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

Bill Schmidt  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |wschmidt at gcc dot 
gnu.org

--- Comment #5 from Bill Schmidt  ---
Mine, in progress.

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-19 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #4 from David Edelsohn  ---
The rest of rs6000.md uses "$" unconditionally for the same purpose, although
common parts of GCC uses ".".

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #3 from Jakub Jelinek  ---
Does $ instead of . work on non-AIX though, and even if it does, isn't .
preferrable?  I.e. shouldn't the changes be conditional on AIX (or just AIX
assembler, GAS should handle . on all targets)?

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-19 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

--- Comment #2 from David Edelsohn  ---
Created attachment 43191
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43191=edit
proposed patch

[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX

2018-01-19 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83946

David Edelsohn  changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-01-19
   Target Milestone|--- |7.3
 Ever confirmed|0   |1

--- Comment #1 from David Edelsohn  ---
Confirmed.