summaryrefslogtreecommitdiff
path: root/libffi/README
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-25 06:58:33 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-25 06:58:33 +0000
commit071ff5d6c35ef4d0cdd2c4037cbda456a107300a (patch)
tree7445f9705e38d94597a97bcbe627b6fad908defe /libffi/README
parentfba24873c11ae107b28e28e25006d4018687d707 (diff)
downloadgcc-071ff5d6c35ef4d0cdd2c4037cbda456a107300a.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76543 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi/README')
-rw-r--r--libffi/README10
1 files changed, 2 insertions, 8 deletions
diff --git a/libffi/README b/libffi/README
index 21a7735bf74..1fc27470d0a 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