From: Andrew Waterman Date: Mon, 20 Feb 2012 07:18:58 +0000 (-0800) Subject: fixed a bug in remu[w] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cbaa604cda1c93357e7c08b4aeb9b36c6601c2b7;p=riscv-isa-sim.git fixed a bug in remu[w] it was actually caught by the ASM tests... :( --- diff --git a/riscv/insns/remu.h b/riscv/insns/remu.h index ca66318..1057789 100644 --- a/riscv/insns/remu.h +++ b/riscv/insns/remu.h @@ -1,6 +1,6 @@ reg_t lhs = zext_xprlen(RS1); reg_t rhs = zext_xprlen(RS2); if(rhs == 0) - RD = lhs; + RD = sext_xprlen(RS1); else RD = sext_xprlen(lhs % rhs); diff --git a/riscv/insns/remuw.h b/riscv/insns/remuw.h index aac13fb..1ef810c 100644 --- a/riscv/insns/remuw.h +++ b/riscv/insns/remuw.h @@ -2,6 +2,6 @@ require_xpr64; reg_t lhs = zext32(RS1); reg_t rhs = zext32(RS2); if(rhs == 0) - RD = lhs; + RD = sext32(lhs); else RD = sext32(lhs % rhs);