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~