From 1732796ab54789ea1a9cf74cde208aa685a4548d Mon Sep 17 00:00:00 2001 From: bwilson Date: Thu, 22 Jan 2004 21:42:33 +0000 Subject: [PATCH] * config/xtensa/xtensa.c (function_arg): Generalize logic so that it handles complex and vector modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76373 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/xtensa/xtensa.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6a33f576e19..6c632630aa2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-22 Bob Wilson + + * config/xtensa/xtensa.c (function_arg): Generalize logic so that it + handles complex and vector modes. + 2004-01-22 Kazu Hirata * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove. diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index e8926c9c1e3..d7e2902c277 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -1753,12 +1753,12 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, result_mode = (mode == BLKmode ? TYPE_MODE (type) : mode); /* We need to make sure that references to a7 are represented with - rtx that is not equal to hard_frame_pointer_rtx. For BLKmode and - modes bigger than 2 words (because we only have patterns for - modes of 2 words or smaller), we can't control the expansion - unless we explicitly list the individual registers in a PARALLEL. */ + rtx that is not equal to hard_frame_pointer_rtx. For multi-word + modes for which we don't define move patterns, we can't control + the expansion unless we explicitly list the individual registers + in a PARALLEL. */ - if ((mode == BLKmode || words > 2) + if (mode != DImode && mode != DFmode && regno < A7_REG && regno + words > A7_REG) { -- 2.11.0