1
2
3
4
5
6
7 #include <asm/system.h>
8
9 #define halt .long PAL_halt
10
11 .set noreorder
12 .globl __start
13 .ent __start
14 __start:
15 bis $31,$31,$31
16 br 1f
17
18 .quad 0,0,0,0,0,0,0,0
19 1: br $27,2f
20 2: ldgp $29,0($27)
21 lda $27,start_kernel
22 jsr $26,($27),start_kernel
23 halt
24 .end __start
25
26 .align 5
27 .globl wrent
28 .ent wrent
29 wrent:
30 .long PAL_wrent
31 ret ($26)
32 .end wrent
33
34 .align 5
35 .globl wrkgp
36 .ent wrkgp
37 wrkgp:
38 .long PAL_wrkgp
39 ret ($26)
40 .end wrkgp
41
42 .align 5
43 .globl switch_to_osf_pal
44 .ent switch_to_osf_pal
45 switch_to_osf_pal:
46 subq $30,128,$30
47 stq $26,0($30)
48 stq $1,8($30)
49 stq $2,16($30)
50 stq $3,24($30)
51 stq $4,32($30)
52 stq $5,40($30)
53 stq $6,48($30)
54 stq $7,56($30)
55 stq $8,64($30)
56 stq $9,72($30)
57 stq $10,80($30)
58 stq $11,88($30)
59 stq $12,96($30)
60 stq $13,104($30)
61 stq $14,112($30)
62 stq $15,120($30)
63
64 stq $30,0($17)
65
66 bis $30,$30,$20
67 br $17,__do_swppal
68
69 ldq $26,0($30)
70 ldq $1,8($30)
71 ldq $2,16($30)
72 ldq $3,24($30)
73 ldq $4,32($30)
74 ldq $5,40($30)
75 ldq $6,48($30)
76 ldq $7,56($30)
77 ldq $8,64($30)
78 ldq $9,72($30)
79 ldq $10,80($30)
80 ldq $11,88($30)
81 ldq $12,96($30)
82 ldq $13,104($30)
83 ldq $14,112($30)
84 ldq $15,120($30)
85 addq $30,128,$30
86 ret ($26)
87
88 __do_swppal:
89 .long PAL_swppal
90 .end switch_to_osf_pal
91
92 .globl dispatch
93 .ent dispatch
94 dispatch:
95 subq $30,80,$30
96 stq $26,0($30)
97 stq $29,8($30)
98
99 stq $8,16($30)
100 stq $9,24($30)
101 stq $10,32($30)
102 stq $11,40($30)
103 stq $12,48($30)
104 stq $13,56($30)
105 stq $14,64($30)
106 stq $15,72($30)
107
108 lda $1,0x10000000
109 ldq $2,0xc0($1)
110 addq $2,$1,$2
111 ldq $27,0($2)
112
113 ldq $2,8($27)
114 jsr $26,($2)
115
116 ldq $26,0($30)
117 ldq $29,8($30)
118
119 ldq $8,16($30)
120 ldq $9,24($30)
121 ldq $10,32($30)
122 ldq $11,40($30)
123 ldq $12,48($30)
124 ldq $13,56($30)
125 ldq $14,64($30)
126 ldq $15,72($30)
127
128 addq $30,80,$30
129 ret $31,($26)
130 .end dispatch
131