diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2018-01-15 18:16:01 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2018-01-15 10:16:01 -0800 |
commit | 650d669bb4a74cd2cc17d80b110d0f666d3f5bee (patch) | |
tree | 911719cc01e21579bbc0f70ae16797e1c2199118 /gcc/config | |
parent | b0e63d94835956810fa056dbb06ea3741a6862ed (diff) | |
download | gcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.zip gcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.tar.gz gcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.tar.bz2 |
i386: Don't use ASM_OUTPUT_DEF for TARGET_MACHO
ASM_OUTPUT_DEF isn't defined for TARGET_MACHO. Use ASM_OUTPUT_LABEL to
generate the __x86_return_thunk label, instead of the set directive.
Update testcase to remove the __x86_return_thunk label check. Since
-fno-pic is ignored on Darwin, update testcases to scan or "push" only
on Linux.
gcc/
PR target/83839
* config/i386/i386.c (output_indirect_thunk_function): Use
ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
for __x86_return_thunk.
gcc/testsuite/
PR target/83839
* gcc.target/i386/indirect-thunk-1.c: Scan for "push" only on
Linux.
* gcc.target/i386/indirect-thunk-2.c: Likewise.
* gcc.target/i386/indirect-thunk-3.c: Likewise.
* gcc.target/i386/indirect-thunk-4.c: Likewise.
* gcc.target/i386/indirect-thunk-7.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
* gcc.target/i386/indirect-thunk-register-1.c: Likewise.
* gcc.target/i386/indirect-thunk-register-3.c: Likewise.
* gcc.target/i386/indirect-thunk-register-4.c: Likewise.
* gcc.target/i386/ret-thunk-10.c: Likewise.
* gcc.target/i386/ret-thunk-11.c: Likewise.
* gcc.target/i386/ret-thunk-12.c: Likewise.
* gcc.target/i386/ret-thunk-13.c: Likewise.
* gcc.target/i386/ret-thunk-14.c: Likewise.
* gcc.target/i386/ret-thunk-15.c: Likewise.
* gcc.target/i386/ret-thunk-9.c: Don't check the
__x86_return_thunk label.
Scan for "push" only for Linux.
From-SVN: r256704
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 9ac4ad6..ea9c462 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -10958,7 +10958,6 @@ output_indirect_thunk_function (bool need_bnd_p, int regno) char alias[32]; indirect_thunk_name (alias, regno, need_bnd_p, true); - ASM_OUTPUT_DEF (asm_out_file, alias, name); #if TARGET_MACHO if (TARGET_MACHO) { @@ -10967,8 +10966,10 @@ output_indirect_thunk_function (bool need_bnd_p, int regno) fputs ("\n\t.private_extern\t", asm_out_file); assemble_name (asm_out_file, alias); putc ('\n', asm_out_file); + ASM_OUTPUT_LABEL (asm_out_file, alias); } #else + ASM_OUTPUT_DEF (asm_out_file, alias, name); if (USE_HIDDEN_LINKONCE) { fputs ("\t.globl\t", asm_out_file); |