On 12/01/2011 10:47 AM, Joseph S. Myers wrote:
> As I previously noted in the ARM discussion, C specifically says that 
> setjmp/longjmp should *not* save/restore floating-point exceptions and 
> rounding modes.  Think of the floating-point state as being a global 
> variable (well, thread-local).

Exactly.

If the fpscr _were_ a TLS variable, seen to be modified inside a transaction, 
we would log its initial value so that we could restore that original value on 
a transaction restart or transaction cancel.

So, as you say the ARM libc setjmp/longjmp implementation is wrong, but we do 
need that save and restore here.


r~

Reply via email to