summaryrefslogtreecommitdiff
path: root/lib/libc/arm
diff options
context:
space:
mode:
authorOlivier Houchard <cognet@FreeBSD.org>2004-09-23 23:13:46 +0000
committerOlivier Houchard <cognet@FreeBSD.org>2004-09-23 23:13:46 +0000
commit3d90a3cd916f390e50ea5f9f5b1f455785060965 (patch)
tree32703f8d39f7eea2d496a9e14a9d53c7c217cea9 /lib/libc/arm
parent05a07e2bda67c84bb5ce60c90bc194e7ab9ab655 (diff)
Notes
Diffstat (limited to 'lib/libc/arm')
-rw-r--r--lib/libc/arm/gen/setjmp.S18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/libc/arm/gen/setjmp.S b/lib/libc/arm/gen/setjmp.S
index be12412a5b5b..79aee9f6daa8 100644
--- a/lib/libc/arm/gen/setjmp.S
+++ b/lib/libc/arm/gen/setjmp.S
@@ -48,16 +48,14 @@ __FBSDID("$FreeBSD$");
ENTRY(setjmp)
/* Block all signals and retrieve the old signal mask */
stmfd sp!, {r0, r14}
- mov r0, #0x00000000
+ add r2, r0, #4 /* oset */
+ mov r0, #0x00000001 /* SIG_BLOCK */
+ mov r1, #0 /* set */
- bl PIC_SYM(_C_LABEL(sigblock), PLT)
- mov r1, r0
+ bl PIC_SYM(_C_LABEL(sigprocmask), PLT)
ldmfd sp!, {r0, r14}
- /* Store signal mask */
- str r1, [r0, #(25 * 4)]
-
ldr r1, .Lsetjmp_magic
str r1, [r0], #4
@@ -88,14 +86,16 @@ ENTRY(__longjmp)
bne botch
/* Fetch signal mask */
- ldr r2, [r0, #(25 * 4)]
+ add r2, r0, #4
/* Set signal mask */
stmfd sp!, {r0, r1, r14}
sub sp, sp, #4 /* align the stack */
- mov r0, r2
- bl PIC_SYM(_C_LABEL(sigsetmask), PLT)
+ mov r1, r2
+ mov r0, #3 /* SIG_SETMASK */
+ mov r2, #0
+ bl PIC_SYM(_C_LABEL(sigprocmask), PLT)
add sp, sp, #4 /* unalign the stack */
ldmfd sp!, {r0, r1, r14}