1#define _SETJMP_H 2#define _ASM 3#include <bits/setjmp.h> 4 5#include <libc-symbols.h> 6 7.text 8.global C_SYMBOL_NAME(setjmp) 9.type C_SYMBOL_NAME(setjmp),@function 10.align 4 11 12C_SYMBOL_NAME(setjmp): 13 mvi r2, 1 /* save the signal mask */ 14 bi C_SYMBOL_NAME(__sigsetjmp) 15 16.text 17.global C_SYMBOL_NAME(_setjmp) 18.type C_SYMBOL_NAME(_setjmp),@function 19.align 4 20 21C_SYMBOL_NAME(_setjmp): 22 mvi r2, 0 /* don't save the signal mask */ 23 bi C_SYMBOL_NAME(__sigsetjmp) 24 25.text 26.global C_SYMBOL_NAME(__sigsetjmp) 27.type C_SYMBOL_NAME(__sigsetjmp),@function 28.align 4 29 30C_SYMBOL_NAME(__sigsetjmp): 31 /* save registers relative to r1 (arg0) */ 32 sw (r1+0), r11 33 sw (r1+4), r12 34 sw (r1+8), r13 35 sw (r1+12), r14 36 sw (r1+16), r15 37 sw (r1+20), r16 38 sw (r1+24), r17 39 sw (r1+28), r18 40 sw (r1+32), r19 41 sw (r1+36), r20 42 sw (r1+40), r21 43 sw (r1+44), r22 44 sw (r1+48), r23 45 sw (r1+52), r24 46 sw (r1+56), r25 47 sw (r1+60), gp 48 sw (r1+64), fp 49 sw (r1+68), sp 50 sw (r1+72), ra 51 52 /* make a tail call to __sigjmp_save; it takes the same args */ 53 bi C_SYMBOL_NAME(__sigjmp_save) 54