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] S/390: Hardware transactional memory support

On Fri, 2013-08-02 at 16:26 +0200, Andreas Krebbel wrote:
> On 02/08/13 16:23, Peter Bergner wrote:
> > On Fri, 2013-08-02 at 15:16 +0200, Andreas Krebbel wrote:
> >> Since libitm implements TX begins as function calls only call-saved registers can be live across a
> >> tbegin. But all the call-saved FPRs are saved in _ITM_beginTransaction and get restored when doing
> >> the longjmp back into the user code. So this should be no problem.
> > 
> > Except that the htm_begin() routines are declared static inline functions,
> > so when they're inlined, you aren't protected by the semantics of a call
> > anymore, are you?
> They get inlined into libitm code but not into the user code. As I understand it in the user code
> will always be a call to _ITM_beginTransaction.

Sure, that protects the user code, but what about the libitm code?
>From your previous comment:

> As long as libitm does not use FPRs itself this should be safe without
> having tbegin clobbering FPRs.

Is it a given that s390 doesn't use FPRs without explicit use of
floating point types?  I ask, because on POWER, we can and do 
generate floating point code without explicit use of double,
float, etc.  Maybe s390 is safe in that respect.


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