#include "em_abs.h" #include "syscall.h" ! $Header$ .sect .text; .sect .rom; .sect .data; .sect .bss .sect .text .define hol0 .define .reghp .define .limhp .define .trppc .define .trpim ! run time startoff .data2 0 bispsw $0100 ! set FU(0100) movl 4(sp),r0 clrl -4(r0) movl sp,r0 movl (r0)+,r1 movl r0,r2 1: tstl (r0)+ bneq 1b cmpl r0,(r2) blssu 2f tstl -(r0) 2: pushl r0 pushl r2 pushl r1 movl $Im1,ap chmk (ap)+ ! catch floating point exception calls $3,_m_a_i_n movl $Im2,ap movl r0,6(ap) chmk (ap)+ halt .align 1 Isig8: .data2 0x0000 pushl 8(ap) movl $Im3,ap chmk (ap)+ ! restore default handler movl $Im5,ap chmk (ap)+ ! get current signal mask bicl3 $0x80,r0,Im4+6 ! and remove the 8th bit movl $Im4,ap chmk (ap)+ ! and movl (sp)+,ap pushl Itab [ap] jsb .trp movl $Im1,ap chmk (ap)+ ret .sect .data Im1: .data2 SYS_sigvec .data4 3 .data4 8 .data4 Im1a .data4 0 Im3: .data2 SYS_sigvec .data4 3 .data4 8 .data4 0 .data4 0 Im4: .data2 SYS_sigsetmask .data4 1 .data4 0 Im5: .data2 SYS_sigblock .data4 1 .data4 0 Im1a: .data4 Isig8 .data4 0 .data4 0 Im2: .data2 1 .data4 1 .data4 0 .reghp: .data4 __end .limhp: .data4 __end hol0: .space 8 .trppc: .space 4 .trpim: .data4 0 Itab: .data4 0 .data4 EIOVFL .data4 EIDIVZ .data4 EFOVFL .data4 EFDIVZ .data4 EFUNFL .data4 EILLINS .data4 EARRAY .data4 EFOVFL .data4 EFDIVZ .data4 EFUNFL