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