diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-16 19:46:00 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-16 19:46:00 -0700 |
commit | 0be1f5eb1b1ff0c31036c9f1b7efeedee7fe4909 (patch) | |
tree | e5b6e4d5a1238c32c84f59638c8ac88f81ebcdee /pk/entry.S | |
parent | 6b9ea8b8e0d3bdf66727a2bc3e9dce72a77fa514 (diff) | |
download | riscv-pk-0be1f5eb1b1ff0c31036c9f1b7efeedee7fe4909.zip riscv-pk-0be1f5eb1b1ff0c31036c9f1b7efeedee7fe4909.tar.gz riscv-pk-0be1f5eb1b1ff0c31036c9f1b7efeedee7fe4909.tar.bz2 |
[pk] fixed timer interrupt handler, etc.
Diffstat (limited to 'pk/entry.S')
-rw-r--r-- | pk/entry.S | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -128,8 +128,15 @@ pop_tf: # write the trap frame onto the stack trap_entry: mtpcr $ra,ASM_CR(PCR_K0) mtpcr $x2,ASM_CR(PCR_K1) + + # when coming from kernel, continue below its stack + mfpcr $ra,ASM_CR(PCR_SR) + and $ra,$ra,SR_PS + add $x2, $sp, -320 + bnez $ra, 1f la $x2,stack_top-320 - jal save_tf + +1:jal save_tf move $sp,$x2 move $a0,$x2 jal handle_trap |