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

--- Comment #8 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Mon Sep 24 17:20:58 2018
New Revision: 264540

URL: https://gcc.gnu.org/viewcvs?rev=264540&root=gcc&view=rev
Log:
i386: Insert ENDBR before the profiling counter call

ENDBR must be the first instruction of a function.  This patch queues
ENDBR if we need to put the profiling counter call before the prologue
and generate ENDBR before the profiling counter call.

gcc/

        PR target/82699
        * config/i386/i386.c (rest_of_insert_endbranch): Set
        endbr_queued_at_entrance to true and don't insert ENDBR if
        x86_function_profiler will be called.
        (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance
        is true.
        * config/i386/i386.h (machine_function): Add
        endbr_queued_at_entrance.

gcc/testsuite/

        PR target/82699
        * gcc.target/i386/pr82699-1.c: New file.
        * gcc.target/i386/pr82699-2.c: Likewise.
        * gcc.target/i386/pr82699-3.c: Likewise.
        * gcc.target/i386/pr82699-4.c: Likewise.
        * gcc.target/i386/pr82699-5.c: Likewise.
        * gcc.target/i386/pr82699-6.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr82699-1.c
    trunk/gcc/testsuite/gcc.target/i386/pr82699-2.c
    trunk/gcc/testsuite/gcc.target/i386/pr82699-3.c
    trunk/gcc/testsuite/gcc.target/i386/pr82699-4.c
    trunk/gcc/testsuite/gcc.target/i386/pr82699-5.c
    trunk/gcc/testsuite/gcc.target/i386/pr82699-6.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.h
    trunk/gcc/testsuite/ChangeLog

Reply via email to