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