On Fri, Jan 31, 2025 at 11:35 AM H.J. Lu <hjl.to...@gmail.com> wrote:

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

NIce, so at the end it was only a testsuite patch.

OK.

Thanks,
Uros.


>
> Signed-off-by: H.J. Lu <hjl.to...@gmail.com>
> ---
>  gcc/testsuite/gcc.target/i386/force-indirect-call-2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
> b/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
> index 2f702363041..405c97c8000 100644
> --- a/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
> +++ b/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
> @@ -1,6 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-options "-O2 -mforce-indirect-call -fPIC" } */
>  /* { dg-require-effective-target fpic } */
> -/* { dg-final { scan-assembler-times "(?:call|jmp)\[ \\t\]+\\*%" 3 } } */
> +/* { dg-final { scan-assembler-times "(?:call|jmp)\[ \\t\]+\\*" 3 } } */
>
>  #include "force-indirect-call-1.c"
> --
> 2.48.1
>
>

Reply via email to