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

--- Comment #26 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <h...@gcc.gnu.org>:

https://gcc.gnu.org/g:5f34558100e8466aa70373e2f930bf1013192ba8

commit r15-7302-g5f34558100e8466aa70373e2f930bf1013192ba8
Author: H.J. Lu <hjl.to...@gmail.com>
Date:   Fri Jan 31 18:28:23 2025 +0800

    force-indirect-call-2.c: Allow indirect branch via GOT

    r15-1619-g3b9b8d6cfdf593 changed the codegen from

    f2:
            .cfi_startproc
            pushq   %rbx
            .cfi_def_cfa_offset 16
            .cfi_offset 3, -16
            movq    f1@GOTPCREL(%rip), %rbx
            call    *%rbx
            leaq    f3(%rip), %rax
            call    *%rax
            movq    %rbx, %rax
            popq    %rbx
            .cfi_def_cfa_offset 8
            jmp     *%rax
            .cfi_endproc

    to

    f2:
            .cfi_startproc
            subq    $8, %rsp
            .cfi_def_cfa_offset 16
            call    *f1@GOTPCREL(%rip)
            leaq    f3(%rip), %rax
            call    *%rax
            addq    $8, %rsp
            .cfi_def_cfa_offset 8
            jmp     *f1@GOTPCREL(%rip)
            .cfi_endproc

    Since it is OK to indirect call via memory for -mforce-indirect-call,
    allow indirect branch via GOT.

            PR target/115673
            * gcc.target/i386/force-indirect-call-2.c: Allow indirect branch
            via GOT.

    Signed-off-by: H.J. Lu <hjl.to...@gmail.com>

Reply via email to