This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] PR target/18916; Function arg passing mem align fixes.
On Sat, Jan 08, 2005 at 10:00:04AM +1030, Alan Modra wrote:
> I chose to put PARM_NEEDS_ALIGN in rs6000.h so that this change would
> mainly affect powerpc, as I'm not that familiar with other ABIs. If
> you think it suitable for all targets I'm quite happy to put the change
> directly in a_p_adjust_stack_rtl.
I think that it's definitely suitable for all targets. More or less
by definition -- it's exactly the condition that we're providing.
> + stack_parm = assign_stack_local (BLKmode, size_stored, 0);
Don't you know the alignment that you require?
I believe that you need similar changes to assign_parm_setup_stack.
You probably won't be able to show an Altivec failure, but if you
examine the MEM_ALIGN data in the rtl dumps, you should see that it's
insufficient. Passing a single _Complex long double argument, and
taking its address, should be sufficient to view the problem.
Basically, emit_move_insn will only look at the mode and won't
invoke expand_block_move when needed.