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... |