From e1ef16649cd40b2d2321bb1d5c22832e0676f0a7 Mon Sep 17 00:00:00 2001 From: duk Date: Thu, 17 Jan 1985 14:20:52 +0000 Subject: [PATCH] Initial revision --- mach/vax4/libem/head_em.s | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 mach/vax4/libem/head_em.s diff --git a/mach/vax4/libem/head_em.s b/mach/vax4/libem/head_em.s new file mode 100644 index 000000000..232ccbc72 --- /dev/null +++ b/mach/vax4/libem/head_em.s @@ -0,0 +1,92 @@ + # $Header$ +#include "system.h" +#include "em_abs.h" +#ifdef BSD42 +#include "/usr/include/syscall.h" +#endif BSD42 + +.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 -- 2.34.1