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.