-
ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return… · 0ce78f01
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
Eric Botcazou committed
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| alpha | Loading commit data... | |
| arm | Loading commit data... | |
| ia64 | Loading commit data... | |
| m68k | Loading commit data... | |
| mips | Loading commit data... | |
| powerpc | Loading commit data... | |
| s390 | Loading commit data... | |
| sh | Loading commit data... | |
| sh64 | Loading commit data... | |
| sparc | Loading commit data... | |
| x86 | Loading commit data... | |
| debug.c | Loading commit data... | |
| ffitest.c | Loading commit data... | |
| java_raw_api.c | Loading commit data... | |
| prep_cif.c | Loading commit data... | |
| raw_api.c | Loading commit data... | |
| types.c | Loading commit data... |