Avoid use of __int128_t
[riscv-isa-sim.git] / riscv / insns / mulh.h
index c4fead2db2537d453494ca2b4dc73f24c988c6d8..8ae75209f5c3ff84e2ab37321ea7b4cff002a1a3 100644 (file)
@@ -1,4 +1,4 @@
-require64;
-int64_t rb = RS1;
-int64_t ra = RS2;
-RDR = (int128_t(rb) * int128_t(ra)) >> 64;
+if (xpr64)
+  WRITE_RD(mulh(RS1, RS2));
+else
+  WRITE_RD(sext32((sext32(RS1) * sext32(RS2)) >> 32));