Browse Source

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.
Rich Felker 13 năm trước cách đây
mục cha
commit
e6129e6d83
1 tập tin đã thay đổi với 13 bổ sung0 xóa
  1. 13 0
      src/signal/arm/sigsetjmp.s

+ 13 - 0
src/signal/arm/sigsetjmp.s

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