Rev 1126 | Rev 1222 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1126 | Rev 1212 | ||
|---|---|---|---|
| Line 249... | Line 249... | ||
| 249 | ori $t0, $t0, 0x1 # Set IE |
249 | ori $t0, $t0, 0x1 # Set IE |
| 250 | 250 | ||
| 251 | sw $t2,SS_STATUS($sp) |
251 | sw $t2,SS_STATUS($sp) |
| 252 | mtc0 $t0, $status |
252 | mtc0 $t0, $status |
| 253 | 253 | ||
| - | 254 | li $t4, 2 # SYS_INT_CONTROL |
|
| - | 255 | beq $t4, $v0, sysc_int_control |
|
| - | 256 | nop |
|
| - | 257 | ||
| 254 | # CALL Syscall handler |
258 | # CALL Syscall handler |
| 255 | jal syscall_handler |
259 | jal syscall_handler |
| 256 | sw $v0, SS_ARG4($sp) # save v0 - arg4 to stack |
260 | sw $v0, SS_ARG4($sp) # save v0 - arg4 to stack |
| 257 | 261 | ||
| - | 262 | sysc_exit: |
|
| 258 | # restore status |
263 | # restore status |
| 259 | mfc0 $t0, $status |
264 | mfc0 $t0, $status |
| 260 | lw $t1,SS_STATUS($sp) |
265 | lw $t1,SS_STATUS($sp) |
| 261 | 266 | ||
| 262 | # Change back to EXL=1(from last exception), otherwise |
267 | # Change back to EXL=1(from last exception), otherwise |
| Line 273... | Line 278... | ||
| 273 | 278 | ||
| 274 | lw $sp,SS_SP($sp) # restore sp |
279 | lw $sp,SS_SP($sp) # restore sp |
| 275 | 280 | ||
| 276 | eret |
281 | eret |
| 277 | 282 | ||
| - | 283 | sysc_int_control: |
|
| - | 284 | jal ddi_int_control |
|
| - | 285 | addi $a1, $sp, SS_STATUS |
|
| - | 286 | ||
| - | 287 | j sysc_exit |
|
| - | 288 | nop |
|
| - | 289 | ||
| 278 | tlb_refill_handler: |
290 | tlb_refill_handler: |
| 279 | KERNEL_STACK_TO_K0 |
291 | KERNEL_STACK_TO_K0 |
| 280 | sub $k0, REGISTER_SPACE |
292 | sub $k0, REGISTER_SPACE |
| 281 | REGISTERS_STORE_AND_EXC_RESET $k0 |
293 | REGISTERS_STORE_AND_EXC_RESET $k0 |
| 282 | sw $sp,EOFFSET_SP($k0) |
294 | sw $sp,EOFFSET_SP($k0) |