-WRITE_RD(sext_xlen(RS1 << (RS2 & (xlen-1))));
+WRITE_RD(sext_xlen(rv_sl(RS1, (RS2 & (xlen-1)))));
require(SHAMT < xlen);
-WRITE_RD(sext_xlen(RS1 << SHAMT));
+WRITE_RD(sext_xlen(rv_sl(RS1, SHAMT)));
require_rv64;
-WRITE_RD(sext32(RS1 << SHAMT));
+WRITE_RD(sext32(rv_sl(RS1, SHAMT)));
require_rv64;
-WRITE_RD(sext32(RS1 << (RS2 & 0x1F)));
+WRITE_RD(sext32(rv_sl(RS1, (RS2 & 0x1F))));
-WRITE_RD(sreg_t(RS1) < sreg_t(RS2));
+WRITE_RD(rv_lt(sreg_t(RS1), sreg_t(RS2)));
-WRITE_RD(sreg_t(RS1) < sreg_t(insn.i_imm()));
+WRITE_RD(rv_lt(sreg_t(RS1), sreg_t(insn.i_imm())));
-WRITE_RD(RS1 < reg_t(insn.i_imm()));
+WRITE_RD(rv_lt(RS1, reg_t(insn.i_imm())));
-WRITE_RD(RS1 < RS2);
+WRITE_RD(rv_lt(RS1, RS2));
return lhs ^ rhs;
}
+reg_t sv_proc_t::rv_sl(reg_t lhs, reg_t rhs)
+{
+ return lhs << rhs;
+}
+
+reg_t sv_proc_t::rv_lt(reg_t lhs, reg_t rhs)
+{
+ return lhs < rhs;
+}
+
+sreg_t sv_proc_t::rv_lt(sreg_t lhs, sreg_t rhs)
+{
+ return lhs < rhs;
+}
+
reg_t rv_and(reg_t lhs, reg_t rhs);
reg_t rv_or(reg_t lhs, reg_t rhs);
reg_t rv_xor(reg_t lhs, reg_t rhs);
+ reg_t rv_sl(reg_t lhs, reg_t rhs);
+ reg_t rv_lt(reg_t lhs, reg_t rhs);
+ sreg_t rv_lt(sreg_t lhs, sreg_t rhs);
#include "sv_insn_decl.h"
};