Re: Fix PR48542: reload register contents reuse crossing setjmp

2011-07-19 Thread Ulrich Weigand
Hans-Peter Nilsson wrote: > On Thu, 14 Jul 2011, Ulrich Weigand wrote: > > I see that this went already in, but I'm wondering why this > > change should be necessary. As far as register use is > > concerned, setjmp ought to behave just like a regular function: > > if a register is call-clobbered,

Re: Fix PR48542: reload register contents reuse crossing setjmp

2011-07-18 Thread Hans-Peter Nilsson
On Thu, 14 Jul 2011, Ulrich Weigand wrote: > Jeff Law wrote: > > On 06/15/11 21:46, Hans-Peter Nilsson wrote: > > > PR rtl-optimization/48542 > > > * reload.c (find_equiv_reg): Stop looking when finding a > > > setjmp-type call. > > > * reload1.c (reload_as_needed): Invalidate all reload >

Re: Fix PR48542: reload register contents reuse crossing setjmp

2011-07-18 Thread Jeff Law
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 07/14/11 10:16, Ulrich Weigand wrote: > Jeff Law wrote: >> On 06/15/11 21:46, Hans-Peter Nilsson wrote: >>> PR rtl-optimization/48542 >>> * reload.c (find_equiv_reg): Stop looking when finding a >>> setjmp-type call. >>> * reload1.c

Re: Fix PR48542: reload register contents reuse crossing setjmp

2011-07-14 Thread Ulrich Weigand
Jeff Law wrote: > On 06/15/11 21:46, Hans-Peter Nilsson wrote: > > PR rtl-optimization/48542 > > * reload.c (find_equiv_reg): Stop looking when finding a > > setjmp-type call. > > * reload1.c (reload_as_needed): Invalidate all reload > > registers when crossing a setjmp-type cal

Re: Fix PR48542: reload register contents reuse crossing setjmp

2011-06-16 Thread Jeff Law
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 06/15/11 21:46, Hans-Peter Nilsson wrote: > A generic bug found in one of the less common targets. The MMIX > port usually saves the return-address from the special-register rJ to > a general call-saved register (helped by get_hard_reg_initial_val)

Fix PR48542: reload register contents reuse crossing setjmp

2011-06-15 Thread Hans-Peter Nilsson
A generic bug found in one of the less common targets. The MMIX port usually saves the return-address from the special-register rJ to a general call-saved register (helped by get_hard_reg_initial_val), restored to rJ immediately on return from the call. I know, the "restore immediately on return"