Systemd/klibc/klibc/arch/sh/setjmp.S
greg@kroah.com a41a0e28c2 [PATCH] added klibc version 0.82 (cvs tree) to the udev tree.
Not hooked up to the build yet.
2005-04-26 21:05:23 -07:00

66 lines
786 B
ArmAsm

#
# 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