This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]