1#include "SYS.h" 2 3/* 4 * Need to write sigsetjmp version. But for now, 5 * I am copying setjmp XXX nivas 6 */ 7ENTRY(sigsetjmp) 8 st r1, r2,0 9 st r14,r2,8 10 st r15,r2,12 11 st r16,r2,16 12 st r17,r2,20 13 st r18,r2,24 14 st r19,r2,28 15 st r20,r2,32 16 st r21,r2,36 17 st r22,r2,40 18 st r23,r2,44 19 st r24,r2,48 20 st r25,r2,52 21 st r26,r2,56 22 st r27,r2,60 23 st r28,r2,64 24 st r29,r2,68 25 st r30,r2,72 26 st r31,r2,76 27 or r15,r1,0 /* can use r15 */ 28 or r14,r2,0 /* can use r14 as it is already saved */ 29 bsr.n _sigblock 30 or r2,r0,0 31 st r2,r14,4 32 jmp.n r15 33 or r2,r0,0 34 35ENTRY(siglongjmp) 36 subu r31,r31,32 /* get some temporary stack */ 37 ld r14,r2,8 38 ld r15,r2,12 39 ld r16,r2,16 40 ld r17,r2,20 41 ld r18,r2,24 42 ld r19,r2,28 43 ld r20,r2,32 44 ld r21,r2,36 45 ld r22,r2,40 46 ld r23,r2,44 47 ld r24,r2,48 48 ld r25,r2,52 49 ld r26,r2,56 50 ld r27,r2,60 51 ld r28,r2,64 52 ld r29,r2,68 53 54 st r2,r31,24 /* save r2 on stack */ 55 st r3,r31,28 /* save r3 on stack */ 56 bsr.n _sigsetmask 57 ld r2,r2,4 58 ld r2,r31,24 /* restore r2 from stack */ 59 ld r3,r31,28 /* restore r3 from stack */ 60 ld r30,r2,72 /* restore r30 */ 61 ld r31,r2,76 /* restore r31 */ 62 ld r1,r2,0 /* restore r1 */ 63 jmp.n r1 /* and jump to it */ 64 or r2,r0,r3 /* but first return r3 value */ 65