diff options
| author | Olivier Houchard <cognet@FreeBSD.org> | 2004-09-23 23:13:46 +0000 |
|---|---|---|
| committer | Olivier Houchard <cognet@FreeBSD.org> | 2004-09-23 23:13:46 +0000 |
| commit | 3d90a3cd916f390e50ea5f9f5b1f455785060965 (patch) | |
| tree | 32703f8d39f7eea2d496a9e14a9d53c7c217cea9 /lib/libc/arm | |
| parent | 05a07e2bda67c84bb5ce60c90bc194e7ab9ab655 (diff) | |
Notes
Diffstat (limited to 'lib/libc/arm')
| -rw-r--r-- | lib/libc/arm/gen/setjmp.S | 18 |
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} |
