# # arch/sh/setjmp.S # # setjmp/longjmp for the SuperH architecture # # # The jmp_buf is assumed to contain the following, in order: # # r8 # r9 # r10 # r11 # r12 # r13 # r14 # r15 # pr # .text .align 2 .globl setjmp .type setjmp, #function setjmp: add #(9*4), r4 sts.l pr, @-r4 mov.l r15, @-r4 mov.l r14, @-r4 mov.l r13, @-r4 mov.l r12, @-r4 mov.l r11, @-r4 mov.l r10, @-r4 mov.l r9, @-r4 mov.l r8, @-r4 rts mov #0, r0 .size setjmp,.-setjmp .align 2 .globl longjmp .type setjmp, #function longjmp: mov.l @r4+, r8 mov.l @r4+, r9 mov.l @r4+, r10 mov.l @r4+, r11 mov.l @r4+, r12 mov.l @r4+, r13 mov.l @r4+, r14 mov.l @r4+, r15 lds.l @r4+, pr mov r5, r0 tst r0, r0 bf 1f mov #1, r0 ! in case val==0 1: rts nop .size longjmp,.-longjmp