aboutsummaryrefslogtreecommitdiff
path: root/src/Arithmetic/Core.v
diff options
context:
space:
mode:
authorGravatar Andres Erbsen <andreser@mit.edu>2017-05-14 19:53:49 -0400
committerGravatar Andres Erbsen <andreser@mit.edu>2017-05-14 19:53:49 -0400
commit9b70845270bcb21f461e908030a1b8559ef4429a (patch)
tree998d5f2e4269ec7bf7a09cbdbfefdaeb2d8eab78 /src/Arithmetic/Core.v
parentdf26ed5072ba2c44234493afe050b0e162f59f35 (diff)
force carry intermediates to be bound early
Diffstat (limited to 'src/Arithmetic/Core.v')
-rw-r--r--src/Arithmetic/Core.v4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Arithmetic/Core.v b/src/Arithmetic/Core.v
index f294c06fc..b86ac09b9 100644
--- a/src/Arithmetic/Core.v
+++ b/src/Arithmetic/Core.v
@@ -430,7 +430,9 @@ Module B.
Definition carryterm_cps (w fw:Z) (t:limb) {T} (f:list limb->T) :=
if dec (fst t = w)
then dlet t2 := snd t in
- f ((w*fw, div t2 fw) :: (w, modulo t2 fw) :: @nil limb)
+ dlet d2 := div t2 fw in
+ dlet m2 := modulo t2 fw in
+ f ((w*fw, d2) :: (w, m2) :: @nil limb)
else f [t].
Definition carryterm w fw t := carryterm_cps w fw t id.