diff options
| author | Graydon Hoare <[email protected]> | 2010-08-03 18:59:26 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-08-03 18:59:26 -0700 |
| commit | d1a67574c6c683969e303d4d07428ca1d4c308bc (patch) | |
| tree | a9f07b308882851d79a879505f23f7a2d58b5a4c | |
| parent | Remove dead implicit-destinations logic from IL. (diff) | |
| download | rust-d1a67574c6c683969e303d4d07428ca1d4c308bc.tar.xz rust-d1a67574c6c683969e303d4d07428ca1d4c308bc.zip | |
Factor append_quad out of IL.emit_full, for use elsewhere.
| -rw-r--r-- | src/boot/be/il.ml | 16 |
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 = |