From: Fariborz Jahanian Date: Mon, 26 Sep 2005 19:12:30 +0000 (+0000) Subject: re PR target/23847 (Darwin -mpowerpc64 complex ABI breakage) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0f086e42e38c7bc7564252c31f04820bc0446bc3;p=gcc.git re PR target/23847 (Darwin -mpowerpc64 complex ABI breakage) PR target/23847. Oked by David Edelsohn. From-SVN: r104655 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8499938c80b..4d6dd1646d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-09-23 Fariborz Jahanian + + PR target/23847 + * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern + for __complex__ double in -mcpu=G5 mode. + 2005-09-26 Sebastian Pop PR tree-optimization/23942 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 04493f7d660..7077b661003 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -18786,7 +18786,26 @@ rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED) GP_ARG_RETURN + 1), GEN_INT (4)))); } - + if (TARGET_32BIT && TARGET_POWERPC64 && TYPE_MODE (valtype) == DCmode) + { + return gen_rtx_PARALLEL (DCmode, + gen_rtvec (4, + gen_rtx_EXPR_LIST (VOIDmode, + gen_rtx_REG (SImode, GP_ARG_RETURN), + const0_rtx), + gen_rtx_EXPR_LIST (VOIDmode, + gen_rtx_REG (SImode, + GP_ARG_RETURN + 1), + GEN_INT (4)), + gen_rtx_EXPR_LIST (VOIDmode, + gen_rtx_REG (SImode, + GP_ARG_RETURN + 2), + GEN_INT (8)), + gen_rtx_EXPR_LIST (VOIDmode, + gen_rtx_REG (SImode, + GP_ARG_RETURN + 3), + GEN_INT (12)))); + } if ((INTEGRAL_TYPE_P (valtype) && TYPE_PRECISION (valtype) < BITS_PER_WORD) || POINTER_TYPE_P (valtype))