aboutsummaryrefslogtreecommitdiff
path: root/pk/entry.S
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-09 17:37:42 -0700
committerAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-09 17:37:42 -0700
commit6e7fe98ea95c6da8c573fdc032b5269f08bbacc1 (patch)
treee0f0f3c73ad8785a95a6e8d22c96b5430370bb56 /pk/entry.S
parent666ae0c9e5355e578c2487b81f48b4b74cc16dda (diff)
downloadriscv-pk-6e7fe98ea95c6da8c573fdc032b5269f08bbacc1.zip
riscv-pk-6e7fe98ea95c6da8c573fdc032b5269f08bbacc1.tar.gz
riscv-pk-6e7fe98ea95c6da8c573fdc032b5269f08bbacc1.tar.bz2
[xcc,pk,sim,opcodes] added first RVC instruction
Diffstat (limited to 'pk/entry.S')
-rw-r--r--pk/entry.S10
1 files changed, 6 insertions, 4 deletions
diff --git a/pk/entry.S b/pk/entry.S
index d2fb72c..a5638dd 100644
--- a/pk/entry.S
+++ b/pk/entry.S
@@ -1,6 +1,6 @@
#include "pcr.h"
-#ifdef PK_ENABLE_KERNEL_64BIT
+#ifdef __riscv64
# define STORE sd
# define LOAD ld
# define REGBYTES 8
@@ -61,9 +61,11 @@ save_tf: # write the trap frame onto the stack
STORE $x3,35*REGBYTES($x2)
# get insn
- and $x4,$x4,~3
- lw $x3,0($x4)
- STORE $x3, 36*REGBYTES($x2)
+ and $x4,$x4,~1
+ lh $x3,0($x4)
+ lh $x4,2($x4)
+ sh $x3, 36*REGBYTES($x2)
+ sh $x4,2+36*REGBYTES($x2)
ret
.end save_tf