https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104894

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Peter Bergner <berg...@gcc.gnu.org>:

https://gcc.gnu.org/g:d74c4c6a1b4956b5cd9b2a770bb7261836fa1289

commit r12-8095-gd74c4c6a1b4956b5cd9b2a770bb7261836fa1289
Author: Peter Bergner <berg...@linux.ibm.com>
Date:   Mon Apr 11 17:00:44 2022 -0500

    rs6000: Handle pcrel sibcalls to longcall functions [PR104894]

    Before PCREL in POWER10, we were not allowed to perform sibcalls to
longcall
    functions since callee's return would skip the TOC restore in the caller.
    However, with PCREL we can now safely perform a sibling call to longcall
    functions.  The problem with the current code is that pcrel sibcall
    branches to a PLT stub label even though -fno-plt was used.  The solution
    here is to check for a pcrel longcall and emit an inline plt stub in
    that case.

    2022-04-11  Peter Bergner  <berg...@linux.ibm.com>

    gcc/
            PR target/104894
            * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel
sibcalls
            to longcall functions.

    gcc/testsuite/
            PR target/104894
            * gcc.target/powerpc/pr104894.c: New test.
            * gcc.target/powerpc/pr104894-2.c: New test.

Reply via email to