]> git.ipfire.org Git - thirdparty/gcc.git/commit
x86: Emit label only for __mcount_loc section
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 3 Jul 2025 02:13:48 +0000 (10:13 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 3 Jul 2025 10:19:33 +0000 (18:19 +0800)
commit349da53f13de274864d01b6ccc466961c472dbe1
treed28bdeb09d12bc007f41a7788d36ed3239d3ed7f
parent99f9e90160cb83b09ec7421e9b53e4fffe3ee5ec
x86: Emit label only for __mcount_loc section

commit ecc81e33123d7ac9c11742161e128858d844b99d
Author: Andi Kleen <ak@linux.intel.com>
Date:   Fri Sep 26 04:06:40 2014 +0000

    Add direct support for Linux kernel __fentry__ patching

emitted a label, 1, for __mcount_loc section:

1: call mcount
.section __mcount_loc, "a",@progbits
.quad 1b
.previous

If __mcount_loc wasn't used, we got an unused label.  Update
x86_function_profiler to emit label only when __mcount_loc section
is used.

gcc/

PR target/120936
* config/i386/i386.cc (x86_print_call_or_nop): Add a label
argument and use it to print label.
(x86_function_profiler): Emit label only when __mcount_loc
section is used.

gcc/testsuite/

PR target/120936
* gcc.target/i386/pr120936-1.c: New test
* gcc.target/i386/pr120936-2.c: Likewise.
* gcc.target/i386/pr120936-3.c: Likewise.
* gcc.target/i386/pr120936-4.c: Likewise.
* gcc.target/i386/pr120936-5.c: Likewise.
* gcc.target/i386/pr120936-6.c: Likewise.
* gcc.target/i386/pr120936-7.c: Likewise.
* gcc.target/i386/pr120936-8.c: Likewise.
* gcc.target/i386/pr120936-9.c: Likewise.
* gcc.target/i386/pr120936-10.c: Likewise.
* gcc.target/i386/pr120936-11.c: Likewise.
* gcc.target/i386/pr120936-12.c: Likewise.
* gcc.target/i386/pr93492-3.c: Updated.
* gcc.target/i386/pr93492-5.c: Likewise.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
15 files changed:
gcc/config/i386/i386.cc
gcc/testsuite/gcc.target/i386/pr120936-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr120936-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr93492-3.c
gcc/testsuite/gcc.target/i386/pr93492-5.c