On Aug 17, 2015, Christophe Lyon <[email protected]> wrote:
> On 17 August 2015 at 13:58, Alexandre Oliva <[email protected]> wrote:
>> On Aug 17, 2015, Christophe Lyon <[email protected]> wrote:
>>
>>> Since this was committed (r226901), I can see that the compiler build
>>> fails for armeb targets, when building libgcc:
>>
>> Any chance you could get me a preprocessed testcase for this failure, please?
>>
> Yes, here it is, attached.
Thanks.
This patch fixes this particular case. I'll also add this configuration
to the cross build tests I'm going to rerun shortly, before submitting a
followup formally, to see whether other non-MEM mems need to be handled
explicitly.
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -3017,6 +3017,11 @@ assign_parm_setup_block (struct assign_parm_data_all
*all,
else if (size == 0)
;
+ /* MEM may be a REG if coalescing assigns the param's partition
+ to a pseudo. */
+ else if (REG_P (mem))
+ emit_move_insn (mem, entry_parm);
+
/* If SIZE is that of a mode no bigger than a word, just use
that mode's store operation. */
else if (size <= UNITS_PER_WORD)
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer