IA64 alignment problem / how to fix?
Richard Henderson
rth@redhat.com
Thu Jan 20 01:36:00 GMT 2005
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~
More information about the Gcc
mailing list