From 4d6697ca225160f459ba1e0be1721d3e460a4b4e Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 21 Aug 1992 07:52:12 -0400 Subject: [PATCH] (FUNCTION_ARG): Don't make an EXPR_LIST if making a libcall. From-SVN: r1925 --- gcc/config/rs6000/rs6000.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index ebdf819c918..820ee4f04a9 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -715,13 +715,16 @@ struct rs6000_args {int words, fregno, nargs_prototype; }; and the rest are pushed. The first 13 FP args are in registers. If this is floating-point and no prototype is specified, we use - both an FP and integer register (or possibly FP reg and stack). */ + both an FP and integer register (or possibly FP reg and stack). Library + functions (when TYPE is zero) always have the proper types for args, + so we can pass the FP value just in one register. emit_library_function + doesn't support EXPR_LIST anyway. */ #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ (! (NAMED) ? 0 \ : ((TYPE) != 0 && TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST) ? 0 \ : USE_FP_FOR_ARG_P (CUM, MODE, TYPE) \ - ? ((CUM).nargs_prototype > 0 \ + ? ((CUM).nargs_prototype > 0 || (TYPE) == 0 \ ? gen_rtx (REG, MODE, (CUM).fregno) \ : ((CUM).words < 8 \ ? gen_rtx (EXPR_LIST, VOIDmode, \ -- 2.30.2