Rev 1855 | Rev 1857 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1855 | Rev 1856 | ||
---|---|---|---|
Line 201... | Line 201... | ||
201 | .org trap_table + TT_SPILL_0_NORMAL*ENTRY_SIZE |
201 | .org trap_table + TT_SPILL_0_NORMAL*ENTRY_SIZE |
202 | .global spill_0_normal |
202 | .global spill_0_normal |
203 | spill_0_normal: |
203 | spill_0_normal: |
204 | SPILL_NORMAL_HANDLER_KERNEL |
204 | SPILL_NORMAL_HANDLER_KERNEL |
205 | 205 | ||
- | 206 | /* TT = 0x84, TL = 0, spill_1_normal handler */ |
|
- | 207 | .org trap_table + TT_SPILL_1_NORMAL*ENTRY_SIZE |
|
- | 208 | .global spill_1_normal |
|
- | 209 | spill_1_normal: |
|
- | 210 | SPILL_NORMAL_HANDLER_USERSPACE |
|
- | 211 | ||
- | 212 | /* TT = 0x88, TL = 0, spill_2_normal handler */ |
|
- | 213 | .org trap_table + TT_SPILL_2_NORMAL*ENTRY_SIZE |
|
- | 214 | .global spill_2_normal |
|
- | 215 | spill_2_normal: |
|
- | 216 | SPILL_TO_USPACE_WINDOW_BUFFER |
|
- | 217 | ||
206 | /* TT = 0xc0, TL = 0, fill_0_normal handler */ |
218 | /* TT = 0xc0, TL = 0, fill_0_normal handler */ |
207 | .org trap_table + TT_FILL_0_NORMAL*ENTRY_SIZE |
219 | .org trap_table + TT_FILL_0_NORMAL*ENTRY_SIZE |
208 | .global fill_0_normal |
220 | .global fill_0_normal |
209 | fill_0_normal: |
221 | fill_0_normal: |
210 | FILL_NORMAL_HANDLER_KERNEL |
222 | FILL_NORMAL_HANDLER_KERNEL |
211 | 223 | ||
- | 224 | /* TT = 0xc4, TL = 0, fill_1_normal handler */ |
|
- | 225 | .org trap_table + TT_FILL_1_NORMAL*ENTRY_SIZE |
|
- | 226 | .global fill_1_normal |
|
- | 227 | fill_1_normal: |
|
- | 228 | FILL_NORMAL_HANDLER_USERSPACE |
|
- | 229 | ||
212 | /* |
230 | /* |
213 | * Handlers for TL>0. |
231 | * Handlers for TL>0. |
214 | */ |
232 | */ |
215 | 233 | ||
216 | /* TT = 0x08, TL > 0, instruction_access_exception */ |
234 | /* TT = 0x08, TL > 0, instruction_access_exception */ |
Line 265... | Line 283... | ||
265 | .org trap_table + (TT_SPILL_0_NORMAL+512)*ENTRY_SIZE |
283 | .org trap_table + (TT_SPILL_0_NORMAL+512)*ENTRY_SIZE |
266 | .global spill_0_normal_high |
284 | .global spill_0_normal_high |
267 | spill_0_normal_high: |
285 | spill_0_normal_high: |
268 | SPILL_NORMAL_HANDLER_KERNEL |
286 | SPILL_NORMAL_HANDLER_KERNEL |
269 | 287 | ||
- | 288 | /* TT = 0x88, TL > 0, spill_2_normal handler */ |
|
- | 289 | .org trap_table + (TT_SPILL_2_NORMAL+512)*ENTRY_SIZE |
|
- | 290 | .global spill_2_normal_high |
|
- | 291 | spill_2_normal_high: |
|
- | 292 | SPILL_TO_USPACE_WINDOW_BUFFER |
|
- | 293 | ||
- | 294 | /* TT = 0xa0, TL > 0, spill_0_other handler */ |
|
- | 295 | .org trap_table + (TT_SPILL_0_OTHER+512)*ENTRY_SIZE |
|
- | 296 | .global spill_0_other_high |
|
- | 297 | spill_0_other_high: |
|
- | 298 | SPILL_TO_USPACE_WINDOW_BUFFER |
|
- | 299 | ||
270 | /* TT = 0xc0, TL > 0, fill_0_normal handler */ |
300 | /* TT = 0xc0, TL > 0, fill_0_normal handler */ |
271 | .org trap_table + (TT_FILL_0_NORMAL+512)*ENTRY_SIZE |
301 | .org trap_table + (TT_FILL_0_NORMAL+512)*ENTRY_SIZE |
272 | .global fill_0_normal_high |
302 | .global fill_0_normal_high |
273 | fill_0_normal_high: |
303 | fill_0_normal_high: |
274 | FILL_NORMAL_HANDLER_KERNEL |
304 | FILL_NORMAL_HANDLER_KERNEL |
Line 287... | Line 317... | ||
287 | * |
317 | * |
288 | * Input registers: |
318 | * Input registers: |
289 | * %g1 Address of function to call. |
319 | * %g1 Address of function to call. |
290 | * %g2 Argument for the function. |
320 | * %g2 Argument for the function. |
291 | * %g6 Pre-set as kernel stack base if trap from userspace. |
321 | * %g6 Pre-set as kernel stack base if trap from userspace. |
292 | * %g7 Reserved. |
322 | * %g7 Pre-set as address of the userspace window buffer. |
293 | */ |
323 | */ |
294 | .global preemptible_handler |
324 | .global preemptible_handler |
295 | preemptible_handler: |
325 | preemptible_handler: |
296 | rdpr %tstate, %g3 |
326 | rdpr %tstate, %g3 |
297 | andcc %g3, TSTATE_PRIV_BIT, %g0 ! if this trap came from the privileged mode... |
327 | andcc %g3, TSTATE_PRIV_BIT, %g0 ! if this trap came from the privileged mode... |