Pristine Ack-5.5
[Ack-5.5.git] / mach / sparc_solaris / libsys / head_em.s
1 .global lino,filn
2 .global EXIT
3 .global begtext,begdata,begbss
4 .global EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
5 .global hol0,reghp,limhp,trpim,trppc
6 .global _start
7
8 ! runtime startof for sparc on sun4
9
10
11 LINO_AD = 0
12 FILN_AD = 4
13
14 EARRAY  = 0
15 ERANGE  = 1
16 ESET    = 2
17 EIDIVZ  = 6
18 EHEAP   = 17
19 EILLINS = 18
20 ECASE   = 20
21 EBADGTO = 27
22
23         .section ".text"
24
25 begtext:
26 _start:
27         clr     %fp
28         ld      [%sp + 0x40], %o0
29         add     %sp, 0x44, %o1
30
31         sub     %sp, 32, %sp
32
33         sll     %o0, 0x2, %o2
34         add     %o2, 0x4, %o2
35         add     %o1, %o2, %o2
36         set     -0x100000, %g4          ! should be a few M
37         clr     %l1
38         mov     %sp, %l0
39         add     %sp, %g4, %sp
40         dec     12, %l0
41                                         ! enable divide by 0 trap and improper
42                                         ! trap
43         st      %fsr, [%l0]
44         ld      [%l0], %o3
45         set     0x09000000, %o4
46         or      %o3, %o4, %o3
47         st      %o3, [%l0]
48         ld      [%l0], %fsr
49
50         st      %o0, [%l0]
51         st      %o1, [%l0+4]
52         st      %o2, [%l0+8]
53
54         call    $_m_a_i_n
55         nop
56         dec     4, %l0
57         st      %g0, [%l0]
58 EXIT:
59         call    $_exit
60         nop
61
62 .type _start,#function
63 .size _start,.-_start
64
65         .section ".data"
66 begdata:
67         .word 0         ! may be at virtual address 0 with no problem
68 hol0:
69 lino:
70         .word   0       ! lino
71 filn:
72         .word   0       ! filn
73 reghp:
74         .word   _end
75 limhp:
76         .word   _end
77 trppc:
78         .word   0
79 trpim:
80         .word   0       ! USED TO BE 2 BYTES; IS THIS RIGHT?
81
82
83         .section ".bss"
84 begbss: !initialization is not needed because ALL entries are in zero space!