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 Jan  8, 2005, Richard Henderson <rth@redhat.com> 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
AFAIK.

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             http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


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