On Sat, Feb 10, 2024 at 9:46 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Sat, Feb 10, 2024 at 05:14:44PM +0000, Iain Sandoe wrote:
> >       PR target/113855
> >
> > gcc/ChangeLog:
> >
> >       * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
> >       available to all sub-targets.
> >       * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
> >       * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
> >
> > libgcc/ChangeLog:
> >
> >       * config.host: Add trampoline support to x?86-linux.
> >       * config/i386/heap-trampoline.c (trampoline_insns): Provide
> >       a variant for IA32.
> >       (union ix86_trampoline): Likewise.
> >       (__gcc_nested_func_ptr_created): Implement a basic trampoline
> >       for IA32.
>
> LGTM.
>
> I bet it probably doesn't work properly for -mx32 (which defines
> __x86_64__), CCing H.J. on that, but that is a preexisting issue
> (and I don't have any experience with it; I guess one would either
> need to add 4 bytes of padding after the func_ptr so that those
> bits remain zeros as sizeof (void *) is 4, but presumably it would be
> better to just use movl (but into %r10) and maybe the jmpl instead
> of movabsq.
>
>         Jakub
>

Are there any testcases to exercise this code on Linux?

-- 
H.J.

Reply via email to