diff options
| author | Roland McGrath <[email protected]> | 2006-02-22 19:59:31 +0000 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2006-02-22 19:59:31 +0000 |
| commit | 123ccad620d8e02bd925996b1843f1bf0e28fdb6 (patch) | |
| tree | 76eb2593e3a4432ca884ba9029b4eced2ab5da63 /backends/ppc64_retval.c | |
| parent | c40f58a64aec04758e9c50eda1b556789f74bdb9 (diff) | |
2006-02-22 Roland McGrath <[email protected]>
* ppc64_retval.c (SVR4_STRUCT_RETURN): New macro.
(ppc64_return_value_location): Use registers for aggregate conditional
on that.
* ppc_retval.c (SVR4_STRUCT_RETURN): New macro.
(ppc_return_value_location): Use registers for aggregate conditional
on that.
Diffstat (limited to 'backends/ppc64_retval.c')
| -rw-r--r-- | backends/ppc64_retval.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/backends/ppc64_retval.c b/backends/ppc64_retval.c index 81852915..797b22a2 100644 --- a/backends/ppc64_retval.c +++ b/backends/ppc64_retval.c @@ -1,5 +1,5 @@ /* Function return value location for Linux/PPC64 ABI. - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2006 Red Hat, Inc. This program is Open Source software; you can redistribute it and/or modify it under the terms of the Open Software License version 1.0 as @@ -22,6 +22,10 @@ #include "libebl_CPU.h" +/* This is the SVR4 ELF ABI convention, but AIX and Linux do not use it. */ +#define SVR4_STRUCT_RETURN 0 + + /* r3. */ static const Dwarf_Op loc_intreg[] = { @@ -121,7 +125,7 @@ ppc64_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) return nloc_fp4regs; } } - if (size <= 8) + if (size <= 8 && SVR4_STRUCT_RETURN) { intreg: *locp = loc_intreg; |
