Support setting ISA/subsets with --isa flag
[riscv-isa-sim.git] / riscv / insns / rem.h
index 146dbc6a3f85ba170b79c3a285b2f1b416221a58..858799577ccbc4875aa38932455c5d54261b545b 100644 (file)
@@ -1,5 +1,9 @@
-require64;
-if(RS2 == 0 || sreg_t(RS1) == INT64_MIN && sreg_t(RS2) == -1)
-  RD = 0;
+require_extension('M');
+sreg_t lhs = sext_xlen(RS1);
+sreg_t rhs = sext_xlen(RS2);
+if(rhs == 0)
+  WRITE_RD(lhs);
+else if(lhs == INT64_MIN && rhs == -1)
+  WRITE_RD(0);
 else
-  RD = sreg_t(RS1) % sreg_t(RS2);
+  WRITE_RD(sext_xlen(lhs % rhs));