https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115673
--- Comment #1 from Sam James <sjames at gcc dot gnu.org> --- $ diff -u <(gcc-14 /home/sam/git/gcc/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c -fdiagnostics-plain-output -O2 -mforce-indirect-call -fPIC -ffat-lto-objects -fno-ident -S -o -) <(/tmp/build/gcc/xgcc -B/tmp/build/gcc/ /home/sam/git/gcc/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c -fdiagnostics-plain-output -O2 -mforce-indirect-call -fPIC -ffat-lto-objects -fno-ident -S -o -) --- /dev/fd/63 2024-06-27 05:49:53.355792646 +0100 +++ /dev/fd/62 2024-06-27 05:49:53.357792668 +0100 @@ -29,17 +29,14 @@ f2: .LFB2: .cfi_startproc - pushq %rbx + subq $8, %rsp .cfi_def_cfa_offset 16 - .cfi_offset 3, -16 - movq f1@GOTPCREL(%rip), %rbx - call *%rbx + call *f1@GOTPCREL(%rip) leaq f3(%rip), %rax call *%rax - movq %rbx, %rax - popq %rbx + addq $8, %rsp .cfi_def_cfa_offset 8 - jmp *%rax + jmp *f1@GOTPCREL(%rip) .cfi_endproc .LFE2: .size f2, .-f2