On 8/5/19 2:33 PM, Aurelien Jarno wrote: > This updates the libffi MIPS support up to commit 746dbe3a6a79, with the > exception of commit bd72848c7af9 which prefixes the ALIGN macro with > FFI_ for all ports. > > These patches, with the exception of the softfloat one, have been used > on the Debian GCC packages for quite some time. > > libffi/Changelog: > > 2019-08-05 Aurelien Jarno <aurel...@aurel32.net> > > Import from upstream > * src/mips/ffi.c (ffi_call_O32, ffi_call_N32, > ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Adjust > interface. > (ffi_call_int): Renamed from ffi_call. > (ffi_call, ffi_call_go, ffi_prep_go_closure): New functions. > (ffi_prep_closure_loc): Define jr instruction for R6. > * src/mips/ffitarget.h (FFI_GO_CLOSURES): Define. > (FFI_TRAMPOLINE_SIZE): Define to 56 for N64. > Test for __linux__ instead of linux. > * src/mips/n32.S (ffi_go_closure_N32): New function. > (ffi_call_N32): Adjust code for softfloat. > (.set mips4): Guard with !defined(__mips_isa_rev) || > (__mips_isa_rev<6). > * src/mips/o32.S (ffi_go_closure_O32): New function. > (ffi_call_O32): Adjust code for softfloat. What's the motivation here?
Would we just be better off moving all of libffi forward rather than just MIPS bits? Do we even still need a bundled libffi in GCC anymore? Jeff