This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Power/GCC: Fix e500 vs non-e500 register save slot issue
- From: "Maciej W. Rozycki" <macro at codesourcery dot com>
- To: David Edelsohn <dje dot gcc at gmail dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 3 Oct 2014 21:21:22 +0100
- Subject: Re: [PATCH] Power/GCC: Fix e500 vs non-e500 register save slot issue
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 1 dot 10 dot 1409011515330 dot 2958 at tp dot orcam dot me dot uk> <CAGWvny=e4OWBjZe3_TUETy-iraVPyLzWKMe9BPOt1Q9-aAXhVw at mail dot gmail dot com> <Pine dot LNX dot 4 dot 64 dot 1409242032030 dot 7597 at digraph dot polyomino dot org dot uk>
On Wed, 24 Sep 2014, Joseph S. Myers wrote:
> > > * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
> > > macro.
> > > * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
> > > TARGET_E500_DOUBLE case here.
> > This patch is okay. The repeated testing of E500 seems like it could
> > have been refactored. The macro is becoming a little overly
> > complicated as a CASE statement.
I tried avoiding obfuscation, but I agree there's potential for
improvement here. I have committed the change now, thanks for your
> > Are you avoiding the special cases for TFmode and TDmode on e500 for a
> > specific reason or simply matching current behavior?
I just wanted to fix the rather grave and obscure configuration-induced
ABI discrepancy bug and otherwise preserved the current behaviour.
> I don't know what's right in the context of the present patch, but the
> general principle for e500 is that TDmode is much like TImode and DDmode
> is much like DImode, but TFmode is much like two of DFmode; that was what
> I concluded when making DFP work for e500
Joseph, thanks for your input, my understanding of the subtleties of the
Power ABI is still lacking.