aboutsummaryrefslogtreecommitdiff
path: root/pk/riscv-pk.c
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2011-04-09 20:13:36 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2011-04-09 20:18:35 -0700
commit033e1e62bddb71851221ca2076945a22e5c98ca3 (patch)
tree87fa087db093ece5f90d0530f154af18b7fde8bf /pk/riscv-pk.c
parente23cce64e28b8af2130f1ade3b3bbdec35a19eed (diff)
downloadpk-033e1e62bddb71851221ca2076945a22e5c98ca3.zip
pk-033e1e62bddb71851221ca2076945a22e5c98ca3.tar.gz
pk-033e1e62bddb71851221ca2076945a22e5c98ca3.tar.bz2
[pk] add vector_disabled trap handler
Diffstat (limited to 'pk/riscv-pk.c')
-rw-r--r--pk/riscv-pk.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c
index 490a271..0af487d 100644
--- a/pk/riscv-pk.c
+++ b/pk/riscv-pk.c
@@ -21,6 +21,10 @@ void __attribute__((section(".boottext"))) __start()
have_fp = mfpcr(PCR_SR) & SR_EF;
mtpcr(sr0, PCR_SR);
+ mtpcr(sr0 | SR_EV, PCR_SR);
+ have_vector = mfpcr(PCR_SR) & SR_EV;
+ mtpcr(sr0, PCR_SR);
+
extern void boot();
register void (*boot_p)() = &boot;
asm("" : "=r"(boot_p) : "0"(boot_p));