fix sigsetjmp on arm (needs asm)
no idea why gcc refuses to compile the C code to use a tail call, but it's best to use asm anyway so we don't have to rely on the quality of the compiler's optimizations for correct code.
This commit is contained in:
parent
8e26a591d0
commit
e6129e6d83
1 changed files with 13 additions and 0 deletions
13
src/signal/arm/sigsetjmp.s
Normal file
13
src/signal/arm/sigsetjmp.s
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
.global sigsetjmp
|
||||||
|
.type sigsetjmp,%function
|
||||||
|
sigsetjmp:
|
||||||
|
str a2,[a1,#256]
|
||||||
|
tst a2,a2
|
||||||
|
beq setjmp
|
||||||
|
push {a1,lr}
|
||||||
|
add a3,a1,#260
|
||||||
|
mov a2,#0
|
||||||
|
mov a1,#2
|
||||||
|
bl sigprocmask
|
||||||
|
pop {a1,lr}
|
||||||
|
b setjmp
|
||||||
Loading…
Add table
Add a link
Reference in a new issue