public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Roman Zippel <zippel@linux-m68k.org>
To: Kazu Hirata <kazu@codesourcery.com>
Cc: gcc-patches@gcc.gnu.org, law@redhat.com, schwab@suse.de,
	     nathan@codesourcery.com
Subject: Re: [patch] m68k: Fix binary compatibility problem with -mno-strict-align.   (Take 2)
Date: Wed, 29 Aug 2007 16:11:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.64.0708291740060.1817@scrub.home> (raw)
In-Reply-To: <46D58D5B.6070104@codesourcery.com>

Hi,

On Wed, 29 Aug 2007, Kazu Hirata wrote:

> Hi Roman,
> 
> > Looking at this a little closer, I'm not sure why this is related to
> > alignment in first place. Whether a structure is returned in a register
> > should be controlled by -fpcc-struct-return/-freg-struct-return and the
> > DEFAULT_PCC_STRUCT_RETURN value in the config. In
> > function.c:aggregate_value_p there is shortly after the return_in_memory
> > hook the following test:
> > 
> >   if (flag_pcc_struct_return && AGGREGATE_TYPE_P (type))
> >     return 1;
> > 
> > IMO the alignment should have no influence here, so where is this coming
> > from? 
> 
> STRICT_ALIGNMENT affects us in compute_record_mode and
> default_return_in_memory.  (Note that m68k_return_in_memory emulates
> default_return_in_memory with STRICT_ALIGNMENT 1.)
> 
> Given a return type, compute_record_mode computes a return mode.  If
> STRICT_ALIGNMENT is 1, compute_record_mode chooses BLKmode for the type. (See
> the last "if" block in compute_record_mode.)  default_return_in_memory simply
> returns 1 if it sees BLKmode.

I see.
What concerns me here is that this produces incompatibilities for ColdFire 
code between Linux and other targets. It also makes the support for this 
in libffi interesting (e.g. if you ever want Java support for ColdFire).

Since this is a special case I would seriously consider to ignore the 
alignment mode for this in m68k_return_in_memory. Since this is an ABI 
issue there probably should be an option to get the old behaviour.

bye, Roman

  reply	other threads:[~2007-08-29 15:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-25 15:59 Kazu Hirata
2007-08-28 13:32 ` Andreas Schwab
2007-08-29 14:57 ` Roman Zippel
2007-08-29 15:26   ` Kazu Hirata
2007-08-29 16:11     ` Roman Zippel [this message]
2007-08-29 17:14       ` Nathan Sidwell
2007-08-29 18:19         ` Roman Zippel
2007-08-29 18:28           ` Nathan Sidwell
2007-08-29 16:53   ` Nathan Sidwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0708291740060.1817@scrub.home \
    --to=zippel@linux-m68k.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=kazu@codesourcery.com \
    --cc=law@redhat.com \
    --cc=nathan@codesourcery.com \
    --cc=schwab@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).