]> git.ipfire.org Git - thirdparty/gcc.git/commit - libffi/ChangeLog
ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return address...
authorEric Botcazou <ebotcazou@libertysurf.fr>
Sun, 25 Jan 2004 06:58:33 +0000 (07:58 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sun, 25 Jan 2004 06:58:33 +0000 (06:58 +0000)
commit0ce78f010d98dc190f21682d4ff56615efd03d23
tree7445f9705e38d94597a97bcbe627b6fad908defe
parentbd915f51cfc98e3ad406f30b9aa67b85c57f8b9c
ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return address is passed in %o0.

* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
when the structure return address is passed in %o0.
(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
(ffi_v9_layout_struct): Align the field following a nested structure
on a word boundary.  Use memmove instead of memcpy.
(ffi_call): Update call to ffi_V9_return_struct.
(ffi_prep_closure): Define 'ctx' only for V8.
(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
and ffi_closure_sparc_inner_v9.
(ffi_closure_sparc_inner_v8): Return long doubles by reference.
Always skip the structure return address.  For structures and long
doubles, copy the argument directly.
(ffi_closure_sparc_inner_v9): Skip the structure return address only
if required.  Shift the maximum floating-point slot accordingly.  For
big structures, copy the argument directly; otherwise, left-justify the
argument and call ffi_v9_layout_struct to lay out the structure on
the stack.
* src/sparc/v8.S: Undef STACKFRAME before defining it.
(ffi_closure_v8): Pass the structure return address.  Update call to
ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
Skip the 'unimp' insn when returning long doubles and structures.
* src/sparc/v9.S: Undef STACKFRAME before defining it.
(ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
FFI_TYPE_INT handling.  Load structures both in integers and
floating-point registers on return.
* README: Update status of the SPARC port.

From-SVN: r76543
libffi/ChangeLog
libffi/README
libffi/src/sparc/ffi.c
libffi/src/sparc/v8.S
libffi/src/sparc/v9.S