From: Quan Yong Zhai Date: Tue, 10 Apr 2012 19:05:22 +0000 (-0400) Subject: runtime: unregister the SIGILL handler after ARM EABI test X-Git-Tag: go1.1rc2~3406 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e133ee95384c98aed9306043cda130a4f74df6d5;p=gostls13.git runtime: unregister the SIGILL handler after ARM EABI test Part of issue 3381 R=rsc, minux.ma, dave CC=golang-dev https://golang.org/cl/5969064 --- diff --git a/src/pkg/runtime/rt0_linux_arm.s b/src/pkg/runtime/rt0_linux_arm.s index e08cf907d9..54ea860dc1 100644 --- a/src/pkg/runtime/rt0_linux_arm.s +++ b/src/pkg/runtime/rt0_linux_arm.s @@ -20,15 +20,23 @@ TEXT _rt0_arm_linux(SB),7,$-4 MOVM.DB.W [R0-R3], (R13) MOVW $4, R0 // SIGILL MOVW R13, R1 // sa - MOVW $0, R2 // old_sa + SUB $16, R13 + MOVW R13, R2 // old_sa MOVW $8, R3 // c MOVW $174, R7 // sys_sigaction BL oabi_syscall<>(SB) - ADD $16, R13 + // do an EABI syscall MOVW $20, R7 // sys_getpid - SWI $0 // this will trigger SIGILL on OABI systems - + SWI $0 // this will trigger SIGILL on OABI systems + + MOVW $4, R0 // SIGILL + MOVW R13, R1 // sa + MOVW $0, R2 // old_sa + MOVW $8, R3 // c + MOVW $174, R7 // sys_sigaction + SWI $0 // restore signal handler + ADD $32, R13 B _rt0_arm(SB) TEXT bad_abi<>(SB),7,$-4