diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2004-01-25 07:58:33 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-01-25 06:58:33 +0000 |
commit | 0ce78f010d98dc190f21682d4ff56615efd03d23 (patch) | |
tree | 7445f9705e38d94597a97bcbe627b6fad908defe /libffi/README | |
parent | bd915f51cfc98e3ad406f30b9aa67b85c57f8b9c (diff) | |
download | gcc-0ce78f010d98dc190f21682d4ff56615efd03d23.zip gcc-0ce78f010d98dc190f21682d4ff56615efd03d23.tar.gz gcc-0ce78f010d98dc190f21682d4ff56615efd03d23.tar.bz2 |
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
Diffstat (limited to 'libffi/README')
-rw-r--r-- | libffi/README | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/libffi/README b/libffi/README index 21a7735..1fc2747 100644 --- a/libffi/README +++ b/libffi/README @@ -46,7 +46,7 @@ Supported Platforms and Prerequisites Libffi has been ported to: - SunOS 4.1.3 & Solaris 2.x (Sparc v8) + SunOS 4.1.3 & Solaris 2.x (SPARC-V8, SPARC-V9) Irix 5.3 & 6.2 (System V/o32 & n32) @@ -306,15 +306,9 @@ Platform Specific Notes There are no known problems with the x86 port. - Sun Sparc - SunOS 4.1.3 & Solaris 2.x + Sun SPARC - SunOS 4.1.3 & Solaris 2.x ------------------------------------- -There's a bug in the structure passing code for sparc processors. -Struct arguments that are passed in value actually end up being passed -by reference. This will be fixed Real Soon Now. - -"long long" values are not supported yet. - You must use GNU Make to build libffi on Sun platforms. MIPS - Irix 5.3 & 6.x |