| 1 | .global sigsetjmp |
| 2 | .global __sigsetjmp |
| 3 | .type sigsetjmp,@function |
| 4 | .type __sigsetjmp,@function |
| 5 | .balign 4 |
| 6 | sigsetjmp: |
| 7 | __sigsetjmp: |
| 8 | 	// if savemask is 0 sigsetjmp behaves like setjmp |
| 9 | 	{ |
| 10 | 		p0 = cmp.eq(r1, #0) |
| 11 | 		if (p0.new) jump:t ##setjmp |
| 12 | 	} |
| 13 | 	{ |
| 14 | 		memw(r0+#64+4+8) = r16 // save r16 in __ss[2] |
| 15 | 		memw(r0+#64) = r31 // save linkregister in __fl |
| 16 | 		r16 = r0 |
| 17 | 	} |
| 18 | 		call ##setjmp |
| 19 | 	{ |
| 20 | 		r1 = r0; |
| 21 | 		r0 = r16 // restore r0 |
| 22 | 		r31 = memw(r16+#64) // restore linkregister |
| 23 | 		r16 = memw(r16+#64+4+8) // restore r16 from __ss[2] |
| 24 | 	} |
| 25 | .hidden __sigsetjmp_tail |
| 26 | 	jump ##__sigsetjmp_tail |
| 27 | |
| 28 | .size	sigsetjmp, .-sigsetjmp |