From 2dbe106c09b60690b87e31e58d505b1f4e05b57f Mon Sep 17 00:00:00 2001 From: aspiwack Date: Fri, 11 May 2007 17:00:58 +0000 Subject: Processor integers + Print assumption (see coqdev mailing list for the details). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9821 85f007b7-540e-0410-9357-904b9bb8a0f7 --- kernel/cbytegen.mli | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'kernel/cbytegen.mli') diff --git a/kernel/cbytegen.mli b/kernel/cbytegen.mli index f761e4f60..829ac46e2 100644 --- a/kernel/cbytegen.mli +++ b/kernel/cbytegen.mli @@ -6,7 +6,6 @@ open Declarations open Pre_env - val compile : env -> constr -> bytecodes * bytecodes * fv (* init, fun, fv *) @@ -15,3 +14,28 @@ val compile_constant_body : (* opaque *) (* boxed *) +(* arnaud : a commenter *) +(* spiwack: this function contains the information needed to perform + the static compilation of int31 (trying and obtaining + a 31-bit integer in processor representation at compile time) *) +val compile_structured_int31 : bool -> constr array -> + structured_constant + +(* this function contains the information needed to perform + the dynamic compilation of int31 (trying and obtaining a + 31-bit integer in processor representation at runtime when + it failed at compile time *) +val dynamic_int31_compilation : bool -> comp_env -> + block array -> + int -> bytecodes -> bytecodes + +(*spiwack: template for the compilation n-ary operation, invariant: n>=1. + works as follow: checks if all the arguments are non-pointers + if they are applies the operation (second argument) if not + all of them are, returns to a coq definition (third argument) *) +val op_compilation : int -> instruction -> constant -> bool -> comp_env -> + constr array -> int -> bytecodes-> bytecodes + +(*spiwack: compiling function to insert dynamic decompilation before + matching integers (in case they are in processor representation) *) +val int31_escape_before_match : bool -> bytecodes -> bytecodes -- cgit v1.2.3