This is the mail archive of the 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 Jan  8, 2005, Richard Henderson <> wrote:

> 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.

I wish it was that simple.  The FR-V EABI unfortunately specifies that
64-bit values are aligned at 64-bit boundaries, but, when passing
arguments in the stack, it doesn't make room for padding so such
arguments may end up aligned at 32-bit boundaries.  This is one of the
reasons why we can't use double-word loads or stores by default

That said, I suppose FR-V is the exception, not the rule, so it would
be fine if there was a global macro/hook that could be overridden on
FR-V to preserve the current ABI, while getting all other ports to
work properly in this regard.

/me wishes he could actually fix the FR-V ABI :-/

Alexandre Oliva   
Red Hat Compiler Engineer   aoliva@{,}
Free Software Evangelist  oliva@{,}

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