This is the mail archive of the 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] Power/GCC: Fix e500 vs non-e500 register save slot issue

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.


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