aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/divw.h
blob: 5bf4db0a511850264b30de200e9190a69dfd38df (plain)
1
2
3
4
5
6
7
8
9
require_xpr64;
if(RS2 == 0)
  RD = UINT64_MAX;
// INT64_MIN/-1 corner case shouldn't occur in correct code, since
// INT64_MIN is not a proper 32-bit signed value
else if(sreg_t(RS1) == INT64_MIN && sreg_t(RS2) == -1)
  RD = RS1;
else
  RD = sext32(int32_t(RS1) / int32_t(RS2));