summaryrefslogtreecommitdiff
path: root/libffi/src/powerpc/sysv.S
diff options
context:
space:
mode:
Diffstat (limited to 'libffi/src/powerpc/sysv.S')
-rw-r--r--libffi/src/powerpc/sysv.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/libffi/src/powerpc/sysv.S b/libffi/src/powerpc/sysv.S
index 9682016d2fa..21367145eb9 100644
--- a/libffi/src/powerpc/sysv.S
+++ b/libffi/src/powerpc/sysv.S
@@ -1,5 +1,6 @@
/* -----------------------------------------------------------------------
- sysv.h - Copyright (c) 1998 Geoffrey Keating
+ sysv.S - Copyright (c) 1998 Geoffrey Keating
+ Copyright (C) 2007 Free Software Foundation, Inc
PowerPC Assembly glue.
@@ -98,13 +99,17 @@ ENTRY(ffi_call_SYSV)
bctrl
/* Now, deal with the return value. */
- mtcrf 0x01,%r31
+ mtcrf 0x01,%r31 /* cr7 */
bt- 31,L(small_struct_return_value)
bt- 30,L(done_return_value)
bt- 29,L(fp_return_value)
stw %r3,0(%r30)
bf+ 28,L(done_return_value)
stw %r4,4(%r30)
+ mtcrf 0x02,%r31 /* cr6 */
+ bf 27,L(done_return_value)
+ stw %r5,8(%r30)
+ stw %r6,12(%r30)
/* Fall through... */
L(done_return_value):