#include "system.h" #include "em_abs.h" #ifdef BSD42 #include "/usr/include/syscall.h" #endif BSD42 # $Header$ .globl hol0 .globl .reghp .globl .trppc .globl .trpim # run time startoff .word 0 bispsw $0100 # set FU(0100) movl 4(sp),r0 clrl -4(r0) movl sp,r0 movl (r0)+,r1 movl r0,r2 a1: tstl (r0)+ bneq a1 cmpl r0,(r2) blssu a2 tstl -(r0) a2: pushl r0 pushl r2 pushl r1 movl $m1,ap chmk (ap)+ # catch floating point exception calls $3,_m_a_i_n movl $m2,ap movl r0,6(ap) chmk (ap)+ halt .align 1 sig8: .word 0x0000 pushl 8(ap) movl (sp)+,ap pushl tab [ap] jsb .trp movl $m1,ap chmk (ap)+ ret .data #ifdef BSD42 m1: .word SYS_sigvec .long 3 .long 8 .long m1a .long 0 m1a: .long sig8 .long 0 .long 0 #else BSD42 m1: .word 48 .long 2 .long 8 .long sig8 #endif BSD42 m2: .word 1 .long 1 .long 0 .reghp: .long _end hol0: .space 8 .trppc: .space 4 .trpim: .long 0 tab: .long 0 .long EIOVFL .long EIDIVZ .long EFOVFL .long EFDIVZ .long EFUNFL .long EILLINS .long EARRAY .long EFOVFL .long EFDIVZ .long EFUNFL