xtensa.c (function_arg): Generalize logic so that it handles complex and vector modes.

* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
	handles complex and vector modes.

From-SVN: r76373
This commit is contained in:
Bob Wilson 2004-01-22 21:42:33 +00:00 committed by Bob Wilson
parent 0dce1c0fcb
commit b16417d615
2 changed files with 10 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2004-01-22 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
handles complex and vector modes.
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.

View file

@ -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)
{