1
2
3
4
5
6
7 #include <asm/system.h>
8
9 #define halt .long PAL_halt
10 #define rti .long PAL_rti
11
12
13
14
15
16
17
18
19 #define SAVE_ALL \
20 subq $30,160,$30; \
21 stq $0,0($30); \
22 stq $1,8($30); \
23 stq $2,16($30); \
24 stq $3,24($30); \
25 stq $4,32($30); \
26 stq $5,40($30); \
27 stq $6,48($30); \
28 stq $7,56($30); \
29 stq $8,64($30); \
30 stq $19,72($30); \
31 stq $20,80($30); \
32 stq $21,88($30); \
33 stq $22,96($30); \
34 stq $23,104($30); \
35 stq $24,112($30); \
36 stq $25,120($30); \
37 stq $26,128($30); \
38 stq $27,136($30); \
39 stq $28,144($30)
40
41 #define RESTORE_ALL \
42 ldq $0,0($30); \
43 ldq $1,8($30); \
44 ldq $2,16($30); \
45 ldq $3,24($30); \
46 ldq $4,32($30); \
47 ldq $5,40($30); \
48 ldq $6,48($30); \
49 ldq $7,56($30); \
50 ldq $8,64($30); \
51 ldq $19,72($30); \
52 ldq $20,80($30); \
53 ldq $21,88($30); \
54 ldq $22,96($30); \
55 ldq $23,104($30); \
56 ldq $24,112($30); \
57 ldq $25,120($30); \
58 ldq $26,128($30); \
59 ldq $27,136($30); \
60 ldq $28,144($30); \
61 addq $30,160,$30
62
63 .text
64 .set noat
65
66 .align 5
67 .globl entInt
68 .ent entInt
69 entInt:
70 SAVE_ALL
71 bis $30,$30,$19
72 lda $27,do_entInt
73 jsr $26,($27),do_entInt
74 RESTORE_ALL
75 rti
76 .end entInt
77
78 .align 5
79 .globl entMM
80 .ent entMM
81 entMM:
82 SAVE_ALL
83 bis $30,$30,$19
84 lda $27,do_page_fault
85 jsr $26,($27),do_page_fault
86 RESTORE_ALL
87 rti
88 .end entMM
89
90 .align 5
91 .globl entArith
92 .ent entArith
93 entArith:
94 SAVE_ALL
95 bis $30,$30,$19
96 lda $27,do_entArith
97 jsr $26,($27),do_entArith
98 RESTORE_ALL
99 rti
100 .end entArith
101
102 .align 5
103 .globl entIF
104 .ent entIF
105 entIF:
106 SAVE_ALL
107 bis $30,$30,$19
108 lda $27,do_entIF
109 jsr $26,($27),do_entIF
110 RESTORE_ALL
111 rti
112 .end entIF
113
114 .align 5
115 .globl entUna
116 .ent entUna
117 entUna:
118 SAVE_ALL
119 bis $30,$30,$19
120 lda $27,do_entUna
121 jsr $26,($27),do_entUna
122 RESTORE_ALL
123 rti
124 .end entUna
125
126 .align 5
127 .globl sys_call_table
128 sys_call_table:
129 .quad 0