This is the mail archive of the gcc@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: IA64 alignment problem / how to fix?


On Wed, Jan 19, 2005 at 09:46:39AM -0800, Steve Ellcey wrote:
> The other way I think I can fix it is to have ia64_function_arg return a
> PARALLEL instead of a regular REG for it's argument.  However when I
> tried this (removed the size check in ia64_function_arg and always
> returned a PARALLEL for structures on big-endian machines) my bootstrap
> broke.  This also generates less efficient code because assumes the
> memory location is not aligned and does more stores and has other code
> to compensate for that fact.

Yes.  And I think that move_block_from_reg should be fixed so that
it generates this same less efficient code.  Anything less is leaving
this latent bug for someone else to fix later.

After that, we can talk about having assign_parm_setup_block use
LOCAL_ALIGNMENT, and changing the ia64 backend to use that to increase
the alignment for structs of a given size.


r~


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