diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2018-03-15 17:54:40 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2018-03-15 10:54:40 -0700 |
commit | 23f95cb77ab469d83f9fcc35417a6c66f823cf92 (patch) | |
tree | a8229da1eb51aaa17f500762fbad39c6fb9611ac /libgfortran/intrinsics/kill.c | |
parent | 4a5a49b034eed5373f6968c99bda1827f1479580 (diff) | |
download | gcc-23f95cb77ab469d83f9fcc35417a6c66f823cf92.zip gcc-23f95cb77ab469d83f9fcc35417a6c66f823cf92.tar.gz gcc-23f95cb77ab469d83f9fcc35417a6c66f823cf92.tar.bz2 |
i386: Don't generate alias for function return thunk
Function return thunks shouldn't be aliased to indirect branch thunks
since indirect branch thunks are placed in COMDAT section and a COMDAT
section with indirect branch may not have function return thunk. This
patch generates function return thunks directly.
gcc/
PR target/84574
* config/i386/i386.c (indirect_thunk_needed): Update comments.
(indirect_thunk_bnd_needed): Likewise.
(indirect_thunks_used): Likewise.
(indirect_thunks_bnd_used): Likewise.
(indirect_return_needed): New.
(indirect_return_bnd_needed): Likewise.
(output_indirect_thunk_function): Add a bool argument for
function return.
(output_indirect_thunk_function): Don't generate alias for
function return thunk.
(ix86_code_end): Call output_indirect_thunk_function to generate
function return thunks.
(ix86_output_function_return): Set indirect_return_bnd_needed
and indirect_return_needed instead of indirect_thunk_bnd_needed
and indirect_thunk_needed.
gcc/testsuite/
PR target/84574
* gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk
label instead of __x86_indirect_thunk label.
From-SVN: r258569
Diffstat (limited to 'libgfortran/intrinsics/kill.c')
0 files changed, 0 insertions, 0 deletions