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