diff options
author | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-02 21:14:45 +0000 |
---|---|---|
committer | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-02 21:14:45 +0000 |
commit | de7fad366d4a7a566a014e138f6f69564a7bce52 (patch) | |
tree | eec92a0c95c7e91b95c4b2c40388a3ca9fc89d8b /libffi/src/powerpc/darwin.S | |
parent | 8bf7bfd1617132ccc5418f75a804ea2f9adfb799 (diff) | |
download | gcc-de7fad366d4a7a566a014e138f6f69564a7bce52.tar.gz |
2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
* src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
(ffi_prep_args): Handle longdouble arguments.
(ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
longdouble.
(ffi_closure_helper_DARWIN): Add closure handling for longdouble.
* src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
values.
* src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
* src/types.c: Defined longdouble size and alignment for darwin.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86992 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi/src/powerpc/darwin.S')
-rw-r--r-- | libffi/src/powerpc/darwin.S | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libffi/src/powerpc/darwin.S b/libffi/src/powerpc/darwin.S index cbbac960d4a..771238c5b7c 100644 --- a/libffi/src/powerpc/darwin.S +++ b/libffi/src/powerpc/darwin.S @@ -1,5 +1,6 @@ /* ----------------------------------------------------------------------- darwin.S - Copyright (c) 2000 John Hornkvist + Copyright (c) 2004 Free Software Foundation, Inc. PowerPC Assembly glue. @@ -142,12 +143,23 @@ L(done_return_value): blr L(fp_return_value): + /* Do we have long double to store? */ + bf 31,L(fd_return_value) + stfd f1,0(r30) + stfd f2,8(r30) + b L(done_return_value) + +L(fd_return_value): + /* Do we have double to store? */ bf 28,L(float_return_value) stfd f1,0(r30) b L(done_return_value) + L(float_return_value): + /* We only have a float to store. */ stfs f1,0(r30) b L(done_return_value) + LFE1: /* END(_ffi_call_DARWIN) */ @@ -218,6 +230,6 @@ LASFDE1: .align 2 LEFDE1: .data - .align 2 + .align 2 LLFB0$non_lazy_ptr: - .long LFB0 + .long LFB0 |