diff --git a/src/builtins/arith.c b/src/builtins/arith.c index 9c6ae515..ea3769e5 100644 --- a/src/builtins/arith.c +++ b/src/builtins/arith.c @@ -173,7 +173,7 @@ static B eq_c2(B t, B w, B x) { return r; } static B ne_c2(B t, B w, B x) { - CMP_IMPL(!=, 0, 0); + CMP_IMPL(!=, 1, 1); P2(ne); B r = m_i32(!atomEqual(w, x)); dec(w); dec(x); diff --git a/src/builtins/md1.c b/src/builtins/md1.c index ad89bea6..89891020 100644 --- a/src/builtins/md1.c +++ b/src/builtins/md1.c @@ -210,6 +210,7 @@ B fold_c1(B d, B x) { B f = c(Md1D,d)->f; if (rtid==2) { i64 c = 1; for (usz i = 0; i < ia; i++) if ((c*= xp[i]) > I32_MAX) goto base; + dec(x); return m_i32(c); } if (rtid==11) { @@ -257,6 +258,7 @@ B fold_c2(B d, B w, B x) { B f = c(Md1D,d)->f; if (rtid==2) { i64 c = wv; for (usz i = 0; i < ia; i++) if ((c*= xp[i]) > I32_MAX) goto base; + dec(x); return m_i32(c); } }