• Show log

    Commit

  • Hash : 8eb2d2b0
    Author : Moxie Bot
    Date : 2020-02-24T10:29:20

    Revamp PA_LINUX and PA_HPUX target closures to use function descriptors.
    
    	2020-02-23  John David Anglin  <danglin@gcc.gnu.org>
    
    	* include/ffi.h.in (FFI_CLOSURE_PTR, FFI_RESTORE_PTR): Define.
    	* src/closures.c (ffi_closure_alloc): Convert closure pointer
    	return by malloc to function pointer.
    	(ffi_closure_free): Convert function pointer back to malloc pointer.
    	* src/pa/ffi.c (ffi_closure_inner_pa32): Use union to double word
    	align return address on stack.  Adjust statements referencing return
    	address.  Convert closure argument from function pointer to standard
    	closure pointer.
    	(ffi_prep_closure_loc): Likewise convert closure argument back to
    	closure pointer.  Remove assembler trampolines.  Setup simulated
    	function descriptor as on ia64.
    	src/pa/ffitarget.h (FFI_TRAMPOLINE_SIZE): Reduce to 12.
    	src/pa/hpux32.S (ffi_closure_pa32): Retrieve closure pointer and real
    	gp from fake gp value in register %r19.
    	src/pa/linux.S (ffi_closure_pa32): Likewise.