diff options
Diffstat (limited to 'arch/m68k/platform/68000/entry.S')
-rw-r--r-- | arch/m68k/platform/68000/entry.S | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/arch/m68k/platform/68000/entry.S b/arch/m68k/platform/68000/entry.S index 7f91c2fde509..23ac054c6e1a 100644 --- a/arch/m68k/platform/68000/entry.S +++ b/arch/m68k/platform/68000/entry.S | |||
@@ -27,7 +27,6 @@ | |||
27 | .globl ret_from_exception | 27 | .globl ret_from_exception |
28 | .globl ret_from_signal | 28 | .globl ret_from_signal |
29 | .globl sys_call_table | 29 | .globl sys_call_table |
30 | .globl ret_from_interrupt | ||
31 | .globl bad_interrupt | 30 | .globl bad_interrupt |
32 | .globl inthandler1 | 31 | .globl inthandler1 |
33 | .globl inthandler2 | 32 | .globl inthandler2 |
@@ -137,7 +136,7 @@ inthandler1: | |||
137 | movel #65,%sp@- /* put vector # on stack*/ | 136 | movel #65,%sp@- /* put vector # on stack*/ |
138 | jbsr process_int /* process the IRQ*/ | 137 | jbsr process_int /* process the IRQ*/ |
139 | 3: addql #8,%sp /* pop parameters off stack*/ | 138 | 3: addql #8,%sp /* pop parameters off stack*/ |
140 | bra ret_from_interrupt | 139 | bra ret_from_exception |
141 | 140 | ||
142 | inthandler2: | 141 | inthandler2: |
143 | SAVE_ALL_INT | 142 | SAVE_ALL_INT |
@@ -148,7 +147,7 @@ inthandler2: | |||
148 | movel #66,%sp@- /* put vector # on stack*/ | 147 | movel #66,%sp@- /* put vector # on stack*/ |
149 | jbsr process_int /* process the IRQ*/ | 148 | jbsr process_int /* process the IRQ*/ |
150 | 3: addql #8,%sp /* pop parameters off stack*/ | 149 | 3: addql #8,%sp /* pop parameters off stack*/ |
151 | bra ret_from_interrupt | 150 | bra ret_from_exception |
152 | 151 | ||
153 | inthandler3: | 152 | inthandler3: |
154 | SAVE_ALL_INT | 153 | SAVE_ALL_INT |
@@ -159,7 +158,7 @@ inthandler3: | |||
159 | movel #67,%sp@- /* put vector # on stack*/ | 158 | movel #67,%sp@- /* put vector # on stack*/ |
160 | jbsr process_int /* process the IRQ*/ | 159 | jbsr process_int /* process the IRQ*/ |
161 | 3: addql #8,%sp /* pop parameters off stack*/ | 160 | 3: addql #8,%sp /* pop parameters off stack*/ |
162 | bra ret_from_interrupt | 161 | bra ret_from_exception |
163 | 162 | ||
164 | inthandler4: | 163 | inthandler4: |
165 | SAVE_ALL_INT | 164 | SAVE_ALL_INT |
@@ -170,7 +169,7 @@ inthandler4: | |||
170 | movel #68,%sp@- /* put vector # on stack*/ | 169 | movel #68,%sp@- /* put vector # on stack*/ |
171 | jbsr process_int /* process the IRQ*/ | 170 | jbsr process_int /* process the IRQ*/ |
172 | 3: addql #8,%sp /* pop parameters off stack*/ | 171 | 3: addql #8,%sp /* pop parameters off stack*/ |
173 | bra ret_from_interrupt | 172 | bra ret_from_exception |
174 | 173 | ||
175 | inthandler5: | 174 | inthandler5: |
176 | SAVE_ALL_INT | 175 | SAVE_ALL_INT |
@@ -181,7 +180,7 @@ inthandler5: | |||
181 | movel #69,%sp@- /* put vector # on stack*/ | 180 | movel #69,%sp@- /* put vector # on stack*/ |
182 | jbsr process_int /* process the IRQ*/ | 181 | jbsr process_int /* process the IRQ*/ |
183 | 3: addql #8,%sp /* pop parameters off stack*/ | 182 | 3: addql #8,%sp /* pop parameters off stack*/ |
184 | bra ret_from_interrupt | 183 | bra ret_from_exception |
185 | 184 | ||
186 | inthandler6: | 185 | inthandler6: |
187 | SAVE_ALL_INT | 186 | SAVE_ALL_INT |
@@ -192,7 +191,7 @@ inthandler6: | |||
192 | movel #70,%sp@- /* put vector # on stack*/ | 191 | movel #70,%sp@- /* put vector # on stack*/ |
193 | jbsr process_int /* process the IRQ*/ | 192 | jbsr process_int /* process the IRQ*/ |
194 | 3: addql #8,%sp /* pop parameters off stack*/ | 193 | 3: addql #8,%sp /* pop parameters off stack*/ |
195 | bra ret_from_interrupt | 194 | bra ret_from_exception |
196 | 195 | ||
197 | inthandler7: | 196 | inthandler7: |
198 | SAVE_ALL_INT | 197 | SAVE_ALL_INT |
@@ -203,7 +202,7 @@ inthandler7: | |||
203 | movel #71,%sp@- /* put vector # on stack*/ | 202 | movel #71,%sp@- /* put vector # on stack*/ |
204 | jbsr process_int /* process the IRQ*/ | 203 | jbsr process_int /* process the IRQ*/ |
205 | 3: addql #8,%sp /* pop parameters off stack*/ | 204 | 3: addql #8,%sp /* pop parameters off stack*/ |
206 | bra ret_from_interrupt | 205 | bra ret_from_exception |
207 | 206 | ||
208 | inthandler: | 207 | inthandler: |
209 | SAVE_ALL_INT | 208 | SAVE_ALL_INT |
@@ -214,23 +213,7 @@ inthandler: | |||
214 | movel %d0,%sp@- /* put vector # on stack*/ | 213 | movel %d0,%sp@- /* put vector # on stack*/ |
215 | jbsr process_int /* process the IRQ*/ | 214 | jbsr process_int /* process the IRQ*/ |
216 | 3: addql #8,%sp /* pop parameters off stack*/ | 215 | 3: addql #8,%sp /* pop parameters off stack*/ |
217 | bra ret_from_interrupt | 216 | bra ret_from_exception |
218 | |||
219 | ret_from_interrupt: | ||
220 | jeq 1f | ||
221 | 2: | ||
222 | RESTORE_ALL | ||
223 | 1: | ||
224 | moveb %sp@(PT_OFF_SR), %d0 | ||
225 | and #7, %d0 | ||
226 | jhi 2b | ||
227 | |||
228 | /* check if we need to do software interrupts */ | ||
229 | jeq ret_from_exception | ||
230 | |||
231 | pea ret_from_exception | ||
232 | jra do_softirq | ||
233 | |||
234 | 217 | ||
235 | /* | 218 | /* |
236 | * Handler for uninitialized and spurious interrupts. | 219 | * Handler for uninitialized and spurious interrupts. |