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

--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> ---
Author: iains
Date: Sun May 12 19:07:49 2019
New Revision: 271110

URL: https://gcc.gnu.org/viewcvs?rev=271110&root=gcc&view=rev
Log:
x86 - fix pr82920

The various thunks output codes have inconsisten output
mechanisms. The patch factors out some common code that
writes out the jumps and uses the regular output scheme
that accounts for __USER_LABEL_PREFIX__.

The testsuite changes are largely mechanical compensation
for the revised output (and the fact that Darwin doesn't
use non-PIC by default).

gcc/

2019-05-12  Iain Sandoe  <i...@sandoe.co.uk>

        PR target/82920
        * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
        (ix86_output_indirect_branch_via_reg): Use output mechanism
        accounting for __USER_LABEL_PREFIX__.
        (ix86_output_indirect_branch_via_push): Likewise.
        (ix86_output_function_return): Likewise.
        (ix86_output_indirect_function_return): Likewise.

gcc/testsuite/

2019-05-12  Iain Sandoe  <i...@sandoe.co.uk>
            Dominique d'Humieres  <domi...@gcc.gnu.org>

        PR target/82920
        * gcc.target/i386/indirect-thunk-1.c: Adjust scan-asms for Darwin,
        do not use -fno-pic on Darwin.
        * 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-3.c: Likewise.
        * gcc.target/i386/indirect-thunk-attr-4.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-attr-8.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-inline-1.c: Likewise.
        * gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
        * gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
        * gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
        * gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
        * gcc.target/i386/indirect-thunk-register-1.c: Likewise.
        * gcc.target/i386/indirect-thunk-register-2.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-1.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-16.c: Likewise.
        * gcc.target/i386/ret-thunk-2.c: Likewise.
        * gcc.target/i386/ret-thunk-22.c: Likewise.
        * gcc.target/i386/ret-thunk-23.c: Likewise.
        * gcc.target/i386/ret-thunk-24.c: Likewise.
        * gcc.target/i386/ret-thunk-3.c: Likewise.
        * gcc.target/i386/ret-thunk-4.c: Likewise.
        * gcc.target/i386/ret-thunk-5.c: Likewise.
        * gcc.target/i386/ret-thunk-6.c: Likewise.
        * gcc.target/i386/ret-thunk-7.c: Likewise.
        * gcc.target/i386/ret-thunk-8.c: Likewise.
        * gcc.target/i386/ret-thunk-9.c: Likewise.




Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-1.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c
    trunk/gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-1.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-10.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-11.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-12.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-13.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-14.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-15.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-16.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-2.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-22.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-23.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-24.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-3.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-4.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-5.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-6.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-7.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-8.c
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-9.c

Reply via email to