Jakub Jelinek <ja...@redhat.com> writes: >> But then we wouldn't be able to use var-tracking when __builtin_eh_return >> is used, since in that case replacing the (set (reg ...) (mem ...)) >> with a (plus ...) would be incorrect -- the value we're loading from the >> stack will have had a variable adjustment applied. And I know from painful >> experience that being able to debug the unwind code is very useful. :-) > > Aren't functions using EH_RETURN typically using frame pointer?
Sorry, forgot to respond to this bit. On s390, _Unwind_RaiseException and _Unwind_ForcedUnwind don't use a frame pointer, at least not on trunk. %r11 is used as a general scratch register instead. E.g.: 00002ba8 <_Unwind_ForcedUnwind>: 2ba8: 90 6f f0 18 stm %r6,%r15,24(%r15) 2bac: 0d d0 basr %r13,%r0 2bae: 60 40 f0 50 std %f4,80(%r15) 2bb2: 60 60 f0 58 std %f6,88(%r15) 2bb6: a7 fa fd f8 ahi %r15,-520 2bba: 58 c0 d0 9e l %r12,158(%r13) 2bbe: 58 10 d0 9a l %r1,154(%r13) 2bc2: 18 b2 lr %r11,%r2 ... 2c10: 98 6f f2 20 lm %r6,%r15,544(%r15) 2c14: 07 f4 br %r4 Thanks, Richard