projects
/
riscv-isa-sim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
revamp hwacha; now runs in physical mode
[riscv-isa-sim.git]
/
riscv
/
insns
/
srai.h
diff --git
a/riscv/insns/srai.h
b/riscv/insns/srai.h
index 1f0dde2acddfa386733c04b0479f84b2b69f86d5..7fdbdf33c8cbcf579c5544aca3b48ed5a5cfd7ce 100644
(file)
--- a/
riscv/insns/srai.h
+++ b/
riscv/insns/srai.h
@@
-1,2
+1,8
@@
-require64;
-RD = sreg_t(RS1) >> SHAMT;
+if(xpr64)
+ WRITE_RD(sreg_t(RS1) >> SHAMT);
+else
+{
+ if(SHAMT & 0x20)
+ throw trap_illegal_instruction();
+ WRITE_RD(sext32(int32_t(RS1) >> SHAMT));
+}