aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-08-03 18:59:26 -0700
committerGraydon Hoare <[email protected]>2010-08-03 18:59:26 -0700
commitd1a67574c6c683969e303d4d07428ca1d4c308bc (patch)
treea9f07b308882851d79a879505f23f7a2d58b5a4c
parentRemove dead implicit-destinations logic from IL. (diff)
downloadrust-d1a67574c6c683969e303d4d07428ca1d4c308bc.tar.xz
rust-d1a67574c6c683969e303d4d07428ca1d4c308bc.zip
Factor append_quad out of IL.emit_full, for use elsewhere.
-rw-r--r--src/boot/be/il.ml16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/boot/be/il.ml b/src/boot/be/il.ml
index 24f2ae31..9661719d 100644
--- a/src/boot/be/il.ml
+++ b/src/boot/be/il.ml
@@ -828,6 +828,16 @@ let mk_quad (q':quad') : quad =
quad_fixup = None }
;;
+let append_quad
+ (e:emitter)
+ (q:quad)
+ : unit =
+ grow_if_necessary e;
+ e.emit_quads.(e.emit_pc) <- q;
+ e.emit_pc <- e.emit_pc + 1
+;;
+
+
let emit_full
(e:emitter)
(fix:fixup option)
@@ -835,11 +845,9 @@ let emit_full
: unit =
let fixup = ref fix in
let emit_quad_bottom q' =
- grow_if_necessary e;
- e.emit_quads.(e.emit_pc) <- { quad_body = q';
- quad_fixup = (!fixup) };
+ append_quad e { quad_body = q';
+ quad_fixup = (!fixup) };
fixup := None;
- e.emit_pc <- e.emit_pc + 1
in
let emit_quad (q':quad') : unit =