improve signal handling of Floating Point Exception
authorceriel <none@none>
Tue, 21 Feb 1989 10:49:51 +0000 (10:49 +0000)
committerceriel <none@none>
Tue, 21 Feb 1989 10:49:51 +0000 (10:49 +0000)
mach/vax4/libbsd4_1a/head_em.s
mach/vax4/libbsd4_2/head_em.s

index a712338..2608535 100644 (file)
@@ -25,8 +25,8 @@ a2:
        pushl   r0
        pushl   r2
        pushl   r1
-#      movl    $m1,ap
-#      chmk    (ap)+           # catch floating point exception
+       movl    $m1,ap
+       chmk    (ap)+           # catch floating point exception
        calls   $3,_m_a_i_n
        movl    $m2,ap
        movl    r0,6(ap)
index f162fba..2c3fcfd 100644 (file)
@@ -38,6 +38,13 @@ a2:
 sig8:
        .word   0x0000
        pushl   8(ap)
+       movl    $m3,ap
+       chmk    (ap)+           # restore default handler
+       movl    $m5,ap
+       chmk    (ap)+           # get current signal mask
+       andl3   d0,$0xffffff7f,m4+6     # and remove the 8th bit
+       movl    $m4,ap
+       chmk    (ap)+           # and 
        movl    (sp)+,ap
        pushl   tab [ap]
        jsb     .trp
@@ -52,6 +59,20 @@ m1:
        .long   8
        .long   m1a
        .long   0
+m3:
+       .word   SYS_sigvec
+       .long   3
+       .long   8
+       .long   0
+       .long   0
+m4:
+       .word   SYS_sigsetmask
+       .long   1
+       .long   0
+m5:
+       .word   SYS_sigblock
+       .long   1
+       .long   0
 m1a:
        .long   sig8
        .long   0