revamp hwacha; now runs in physical mode
[riscv-isa-sim.git] / riscv / insns / srai.h
index 1f0dde2acddfa386733c04b0479f84b2b69f86d5..7fdbdf33c8cbcf579c5544aca3b48ed5a5cfd7ce 100644 (file)
@@ -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));
+}