aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2011-05-18 14:35:32 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2011-05-18 14:35:32 -0700
commitdd1da1656719e9304fde74758c7bb8038bb82025 (patch)
tree80df9b36aca27aebbb1e298dac291f3a9c79a0ef /riscv/insns
parent6e85b4332f8d5fa198b766afb73dde5506d5097f (diff)
downloadspike-dd1da1656719e9304fde74758c7bb8038bb82025.zip
spike-dd1da1656719e9304fde74758c7bb8038bb82025.tar.gz
spike-dd1da1656719e9304fde74758c7bb8038bb82025.tar.bz2
[opcodes,pk,sim] add more vector traps (for #banks, illegal instructions)
Diffstat (limited to 'riscv/insns')
-rw-r--r--riscv/insns/mfpcr.h4
-rw-r--r--riscv/insns/mtpcr.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/riscv/insns/mfpcr.h b/riscv/insns/mfpcr.h
index fe00f5f..c1f629a 100644
--- a/riscv/insns/mfpcr.h
+++ b/riscv/insns/mfpcr.h
@@ -34,6 +34,10 @@ switch(insn.rtype.rs2)
val = mmu.get_ptbr();
break;
+ case 11:
+ val = vecbanks;
+ break;
+
case 17:
fromhost = val = sim->get_fromhost();
break;
diff --git a/riscv/insns/mtpcr.h b/riscv/insns/mtpcr.h
index f47781f..2f0e1f4 100644
--- a/riscv/insns/mtpcr.h
+++ b/riscv/insns/mtpcr.h
@@ -23,6 +23,11 @@ switch(insn.rtype.rs2)
mmu.set_ptbr(RS1);
break;
+ case 11:
+ vecbanks = RS1 & 0xff;
+ vecbanks_count = __builtin_popcountll(vecbanks);
+ break;
+
case 16:
tohost = RS1;
sim->set_tohost(RS1);