mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
0dce1c0fcb
commit
b16417d615
|
@ -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>
|
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
|
* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
|
||||||
|
|
|
@ -1753,12 +1753,12 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
|
||||||
result_mode = (mode == BLKmode ? TYPE_MODE (type) : mode);
|
result_mode = (mode == BLKmode ? TYPE_MODE (type) : mode);
|
||||||
|
|
||||||
/* We need to make sure that references to a7 are represented with
|
/* 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
|
rtx that is not equal to hard_frame_pointer_rtx. For multi-word
|
||||||
modes bigger than 2 words (because we only have patterns for
|
modes for which we don't define move patterns, we can't control
|
||||||
modes of 2 words or smaller), we can't control the expansion
|
the expansion unless we explicitly list the individual registers
|
||||||
unless we explicitly list the individual registers in a PARALLEL. */
|
in a PARALLEL. */
|
||||||
|
|
||||||
if ((mode == BLKmode || words > 2)
|
if (mode != DImode && mode != DFmode
|
||||||
&& regno < A7_REG
|
&& regno < A7_REG
|
||||||
&& regno + words > A7_REG)
|
&& regno + words > A7_REG)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue