12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- .global lino,filn
- .global EXIT
- .global begtext,begdata,begbss
- .global EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
- .global hol0,reghp,limhp,trpim,trppc
- ! runtime startof for sparc on sun4
- LINO_AD = 0
- FILN_AD = 4
- EARRAY = 0
- ERANGE = 1
- ESET = 2
- EIDIVZ = 6
- EHEAP = 17
- EILLINS = 18
- ECASE = 20
- EBADGTO = 27
- .seg "text"
- begtext:
- clr %fp
- ld [%sp + 0x40], %o0
- add %sp, 0x44, %o1
- sll %o0, 0x2, %o2
- add %o2, 0x4, %o2
- add %o1, %o2, %o2
- set -0x100000, %g4 ! should be a few M
- clr %l1
- mov %sp, %l0
- add %sp, %g4, %sp
- dec 12, %l0
- ! enable divide by 0 trap and improper
- ! trap
- st %fsr, [%l0]
- ld [%l0], %o3
- set 0x09000000, %o4
- or %o3, %o4, %o3
- st %o3, [%l0]
- ld [%l0], %fsr
- st %o0, [%l0]
- st %o1, [%l0+4]
- st %o2, [%l0+8]
- call __m_a_i_n
- nop
- dec 4, %l0
- st %g0, [%l0]
- EXIT:
- call __exit
- nop
- .seg "data"
- begdata:
- .word 0 ! may be at virtual address 0 with no problem
- hol0:
- lino:
- .word 0 ! lino
- filn:
- .word 0 ! filn
- reghp:
- .word __end
- limhp:
- .word __end
- trppc:
- .word 0
- trpim:
- .word 0 ! USED TO BE 2 BYTES; IS THIS RIGHT?
- .seg "bss"
- begbss: !initialization is not needed because ALL entries are in zero space!
|