diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2010-10-15 17:51:37 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2010-10-15 17:51:37 -0700 |
commit | b4fd490d689415205cf315c02f673b9386ece337 (patch) | |
tree | 73f93d81b6241b1d1204d7add68af065f9638ea9 /pk/entry.S | |
parent | 2b7fd5fa6ac24f3d6d6cb8f0d6c1c32b85c39f02 (diff) | |
download | riscv-pk-b4fd490d689415205cf315c02f673b9386ece337.zip riscv-pk-b4fd490d689415205cf315c02f673b9386ece337.tar.gz riscv-pk-b4fd490d689415205cf315c02f673b9386ece337.tar.bz2 |
[pk, sim] added FPU emulation support to proxy kernel
Diffstat (limited to 'pk/entry.S')
-rw-r--r-- | pk/entry.S | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -52,14 +52,20 @@ save_tf: # write the trap frame onto the stack # get sr, epc, badvaddr, cause, cr29 (tid) mfpcr $x2,ASM_CR(PCR_SR) # sr STORE $x2,32*REGBYTES($x1) - mfpcr $x2,ASM_CR(PCR_EPC) # epc - STORE $x2,33*REGBYTES($x1) + mfpcr $x3,ASM_CR(PCR_EPC) # epc + STORE $x3,33*REGBYTES($x1) mfpcr $x2,ASM_CR(PCR_BADVADDR) # badvaddr STORE $x2,34*REGBYTES($x1) mfpcr $x2,ASM_CR(PCR_CAUSE) # cause STORE $x2,35*REGBYTES($x1) mfcr $x2,ASM_CR(29) # cr29 (tid) STORE $x2,36*REGBYTES($x1) + + # get insn + and $x3,$x3,~3 + lw $x2,0($x3) + STORE $x2, 37*REGBYTES($x1) + jr $ra .end save_tf |