123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #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
|