Support setting ISA/subsets with --isa flag
[riscv-isa-sim.git] / riscv / insns / remw.h
index 1093533e3f2d9e62e568c7ee331792501c01553b..56221ccd4e742dbe142858d0e7739c182c95818a 100644 (file)
@@ -1,7 +1,8 @@
-require_xpr64;
-if(int32_t(RS2) == 0)
-  RD = RS1;
-else if(int32_t(RS1) == INT32_MIN && int32_t(RS2) == -1)
-  RD = 0;
+require_extension('M');
+require_rv64;
+sreg_t lhs = sext32(RS1);
+sreg_t rhs = sext32(RS2);
+if(rhs == 0)
+  WRITE_RD(lhs);
 else
-  RD = sext32(int32_t(RS1) % int32_t(RS2));
+  WRITE_RD(sext32(lhs % rhs));