Separate page faults from physical memory access exceptions
[riscv-isa-sim.git] / riscv / insns / divw.h
index 05374695b7c3016c783f836cbe60673bd70d7c89..11be17e4c33d450244c42d98c99d2c31c8a35bd9 100644 (file)
@@ -1,4 +1,8 @@
-if(int32_t(RS2) == 0 || int32_t(RS1) == INT32_MIN && int32_t(RS2) == -1)
-  RD = sext32(int32_t(RS1) < 0 ? INT32_MIN : INT32_MAX);
+require_extension('M');
+require_rv64;
+sreg_t lhs = sext32(RS1);
+sreg_t rhs = sext32(RS2);
+if(rhs == 0)
+  WRITE_RD(UINT64_MAX);
 else
-  RD = sext32(int32_t(RS1)/int32_t(RS2));
+  WRITE_RD(sext32(lhs / rhs));