summaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2003-06-03 11:14:07 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2003-06-03 11:14:07 +0000
commitded9bf77e35ce9a22468a1f56595df0741e2f22a (patch)
tree20dae8c49de7b0cfdf57e381abee0961ed2ef0d6 /gcc/expr.h
parent24a4dd31f80136aadf69774545916675b50836d6 (diff)
downloadgcc-ded9bf77e35ce9a22468a1f56595df0741e2f22a.tar.gz
function.c (assign_parms): Split complex arguments.
2003-06-03 Aldy Hernandez <aldyh@redhat.com> * function.c (assign_parms): Split complex arguments. * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document. * expr.h (SPLIT_COMPLEX_ARGS): Define. (split_complex_types): Protoize. (split_complex_values): Protoize. * calls.c (expand_call): Split complex arguments on architectures that require it. (split_complex_values): New. (split_complex_types): New. * config/rs6000/rs6000.c (rs6000_libcall_value): New. (rs6000_function_value): Handle complex values on AIX. (rs6000_complex_function_value): New. * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize. * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function. (SPLIT_COMPLEX_ARGS): New. From-SVN: r67367
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 8cf5a8e5a6c..594df73a0d2 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -158,6 +158,14 @@ do { \
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
#endif
+/* Define to nonzero if complex arguments should be split into their
+ corresponding components. */
+#ifndef SPLIT_COMPLEX_ARGS
+#define SPLIT_COMPLEX_ARGS 0
+#endif
+tree split_complex_types (tree);
+tree split_complex_values (tree);
+
/* Provide a default value for STRICT_ARGUMENT_NAMING. */
#ifndef STRICT_ARGUMENT_NAMING
#define STRICT_ARGUMENT_NAMING 0