re PR middle-end/37316 (Small structs are not passed correctly on hppa64-*-*)

2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/37316
	* pa.c (function_arg_padding):  Pad complex and vector types upward in
	64-bit runtime.
	(function_arg): Use BLKmode for PARALLEL in 64-bit runtime.

From-SVN: r141380
This commit is contained in:
John David Anglin 2008-10-27 01:16:13 +00:00 committed by John David Anglin
parent 0c3c56b780
commit c3e39a4729
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/37316
* pa.c (function_arg_padding): Pad complex and vector types upward in
64-bit runtime.
(function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2008-10-26 Matthias Klose <doko@ubuntu.com> 2008-10-26 Matthias Klose <doko@ubuntu.com>
* doc/install.texi: Document requirements on antlr. * doc/install.texi: Document requirements on antlr.

View File

@ -5888,7 +5888,11 @@ enum direction
function_arg_padding (enum machine_mode mode, const_tree type) function_arg_padding (enum machine_mode mode, const_tree type)
{ {
if (mode == BLKmode if (mode == BLKmode
|| (TARGET_64BIT && type && AGGREGATE_TYPE_P (type))) || (TARGET_64BIT
&& type
&& (AGGREGATE_TYPE_P (type)
|| TREE_CODE (type) == COMPLEX_TYPE
|| TREE_CODE (type) == VECTOR_TYPE)))
{ {
/* Return none if justification is not required. */ /* Return none if justification is not required. */
if (type if (type
@ -9277,7 +9281,7 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
offset += 8; offset += 8;
} }
return gen_rtx_PARALLEL (mode, gen_rtvec_v (ub, loc)); return gen_rtx_PARALLEL (BLKmode, gen_rtvec_v (ub, loc));
} }
} }
else else