aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/cemitcodes.mli
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-10-20 13:50:08 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-10-20 13:50:08 +0000
commit9c6487ba87f448daa28158c6e916e3d932c50645 (patch)
tree31bc965d5d14b34d4ab501cbd2350d1de44750c5 /kernel/cemitcodes.mli
parent1457d6a431755627e3b52eaf74ddd09c641a9fe3 (diff)
COMMITED BYTECODE COMPILER
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6245 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/cemitcodes.mli')
-rw-r--r--kernel/cemitcodes.mli41
1 files changed, 41 insertions, 0 deletions
diff --git a/kernel/cemitcodes.mli b/kernel/cemitcodes.mli
new file mode 100644
index 000000000..fed577158
--- /dev/null
+++ b/kernel/cemitcodes.mli
@@ -0,0 +1,41 @@
+open Names
+open Cbytecodes
+
+type reloc_info =
+ | Reloc_annot of annot_switch
+ | Reloc_const of structured_constant
+ | Reloc_getglobal of constant
+
+type patch = reloc_info * int
+(* A virer *)
+val subst_patch : substitution -> patch -> patch
+
+type emitcodes
+
+val length : emitcodes -> int
+
+val patch_int : emitcodes -> (*pos*)int -> int -> unit
+val patch_getglobal : emitcodes -> (*pos*)int -> (bool*int) -> unit
+
+type to_patch = emitcodes * (patch list) * fv
+
+val subst_to_patch : substitution -> to_patch -> to_patch
+
+type body_code =
+ | BCdefined of bool*to_patch
+ | BCallias of constant
+ | BCconstant
+
+
+type to_patch_substituted
+
+val from_val : body_code -> to_patch_substituted
+
+val force : to_patch_substituted -> body_code
+
+val is_boxed : to_patch_substituted -> bool
+
+val subst_to_patch_subst : substitution -> to_patch_substituted -> to_patch_substituted
+
+val to_memory : bytecodes * bytecodes * fv -> to_patch
+ (* init code, fun code, fv *)