[Bug target/83946] [7/8 Regression] Safe Indirect Jumps broken on AIX
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
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
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 SchmidtPR 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
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
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 SchmidtBackport 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
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 SchmidtDavid 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
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
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
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
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
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.