aboutsummaryrefslogtreecommitdiffstats
path: root/exportclight/ExportClight.ml
diff options
context:
space:
mode:
Diffstat (limited to 'exportclight/ExportClight.ml')
-rw-r--r--exportclight/ExportClight.ml30
1 files changed, 15 insertions, 15 deletions
diff --git a/exportclight/ExportClight.ml b/exportclight/ExportClight.ml
index 8001dca7..f5b8150d 100644
--- a/exportclight/ExportClight.ml
+++ b/exportclight/ExportClight.ml
@@ -250,10 +250,10 @@ let external_function p = function
| EF_free -> fprintf p "EF_free"
| EF_memcpy(sz, al) ->
fprintf p "(EF_memcpy %ld %ld)" (Z.to_int32 sz) (Z.to_int32 al)
- | EF_annot(text, targs) ->
+ | EF_annot(kind,text, targs) ->
assertions := (camlstring_of_coqstring text, targs) :: !assertions;
fprintf p "(EF_annot %a %a)" coqstring text (print_list asttype) targs
- | EF_annot_val(text, targ) ->
+ | EF_annot_val(kind,text, targ) ->
assertions := (camlstring_of_coqstring text, [targ]) :: !assertions;
fprintf p "(EF_annot_val %a %a)" coqstring text asttype targ
| EF_debug(kind, text, targs) ->
@@ -478,12 +478,11 @@ let print_assertions p =
(* The prologue *)
-let prologue = "\n\
-Require Import Clightdefs.\n\
-\
+let prologue = "\
+From Coq Require Import String List ZArith.\n\
+From compcert Require Import Coqlib Integers Floats AST Ctypes Cop Clight Clightdefs.\n\
Local Open Scope Z_scope.\n\
-\
-"
+\n"
(* Naming the compiler-generated temporaries occurring in the program *)
@@ -550,13 +549,14 @@ let print_program p prog =
fprintf p "Definition composites : list composite_definition :=@ ";
print_list print_composite_definition p prog.prog_types;
fprintf p ".@ @ ";
- fprintf p "Definition prog : Clight.program := {|@ ";
- fprintf p "prog_defs :=@ %a;@ " (print_list print_ident_globdef) prog.Ctypes.prog_defs;
- fprintf p "prog_public :=@ %a;@ " (print_list ident) prog.Ctypes.prog_public;
- fprintf p "prog_main := %a;@ " ident prog.Ctypes.prog_main;
- fprintf p "prog_types := composites;@ ";
- fprintf p "prog_comp_env := make_composite_env composites;@ ";
- fprintf p "prog_comp_env_eq := refl_equal _@ ";
- fprintf p "|}.@ ";
+ fprintf p "Definition global_definitions :=@ ";
+ print_list print_ident_globdef p prog.Ctypes.prog_defs;
+ fprintf p ".@ @ ";
+ fprintf p "Definition public_idents :=@ ";
+ print_list ident p prog.Ctypes.prog_public;
+ fprintf p ".@ @ ";
+ fprintf p "Definition prog : Clight.program := @ ";
+ fprintf p " mkprogram composites global_definitions public_idents %a Logic.I.@ @ "
+ ident prog.Ctypes.prog_main;
print_assertions p;
fprintf p "@]@."