[Bug tree-optimization/54227] [4.8 Regression]: [alpha] Variable arguments handling broken by r190229
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Aug 11 13:20:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54227
--- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2012-08-11 13:19:51 UTC ---
(In reply to comment #3)
> A whole pack of moves to memory is missing.
Ah, this is the consequence of following difference in stdarg dumps:
-test: va_list escapes 0, needs to save 32 GPR units and 1 FPR units.
+test: va_list escapes 0, needs to save 32 GPR units and 0 FPR units.
In alpha.c, around line 6100, we have:
if (cfun->va_list_fpr_size & 1)
{
tmp = gen_rtx_MEM (BLKmode,
plus_constant (Pmode, virtual_incoming_args_rtx,
(cum + 6) * UNITS_PER_WORD));
MEM_NOTRAP_P (tmp) = 1;
set_mem_alias_set (tmp, set);
move_block_from_reg (16 + cum, tmp, count);
}
More information about the Gcc-bugs
mailing list