Systemd/klibc/klibc/arch/arm/setjmp-arm.S

41 lines
547 B
ArmAsm

#
# arch/arm/setjmp.S
#
# setjmp/longjmp for the ARM architecture
#
#
# The jmp_buf is assumed to contain the following, in order:
# r4
# r5
# r6
# r7
# r8
# r9
# r10
# fp
# sp
# lr
#
.text
.align 4
.globl setjmp
.type setjmp, #function
setjmp:
stmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
mov r0, #0
mov pc, lr
.size setjmp,.-setjmp
.text
.align 4
.globl longjmp
.type longjmp, #function
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
movs r0, r1
moveq r0, #1
mov pc, lr
.size longjmp,.-longjmp