add debug info on rv_sr
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 6 Nov 2018 16:11:12 +0000 (16:11 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 6 Nov 2018 16:11:12 +0000 (16:11 +0000)
riscv/sv_insn_redirect.cc

index 64754350acd72a0934ab2e49a92a65c95f77baa1..c7872bcb9a9598d884cf913ca79066d5e643c8c0 100644 (file)
@@ -551,7 +551,10 @@ sv_reg_t sv_proc_t::rv_sl(sv_reg_t const & lhs, sv_reg_t const & rhs,
     uint64_t vlhs = 0;
     uint64_t vrhs = 0;
     if (rv_int_op_prepare(lhs, rhs, vlhs, vrhs, bitwidth)) {
-        return lhs << rv_and(rhs, sv_reg_t(dflt_bitwidth-1U));
+        sv_reg_t result = lhs << rv_and(rhs, sv_reg_t(dflt_bitwidth-1U));
+        fprintf(stderr, "sl result %lx %lx %lx\n",
+                (uint64_t)lhs, (uint64_t)rhs, (uint64_t)(result));
+        return result;
     }
     uint64_t result = vlhs << (vrhs & (bitwidth-1));
     return rv_int_op_finish(lhs, rhs, result, bitwidth);
@@ -569,10 +572,16 @@ sv_reg_t sv_proc_t::rv_sr(sv_reg_t const & lhs, sv_reg_t const & rhs,
     uint64_t vlhs = 0;
     uint64_t vrhs = 0;
     if (rv_int_op_prepare(lhs, rhs, vlhs, vrhs, bitwidth)) {
-        return lhs >> rv_and(rhs, sv_reg_t(dflt_bitwidth-1U));
+        sv_reg_t result = lhs >> rv_and(rhs, sv_reg_t(dflt_bitwidth-1U));
+        fprintf(stderr, "sr result %lx %lx %lx\n",
+                (uint64_t)lhs, (uint64_t)rhs, (uint64_t)(result));
+        return result;
     }
     uint64_t result = vlhs >> (vrhs & (bitwidth-1));
-    return rv_int_op_finish(lhs, rhs, result, bitwidth);
+    sv_reg_t sresult = rv_int_op_finish(lhs, rhs, result, bitwidth);
+        fprintf(stderr, "sr result %lx %lx %lx bw %d\n",
+                (uint64_t)lhs, (uint64_t)rhs, (uint64_t)(sresult), bitwidth);
+    return sresult;
 }
 
 bool sv_proc_t::rv_lt(sv_reg_t const & lhs, sv_reg_t const & rhs)