open Preamble open Order open Proper open PositiveMap open Deqsets open ErrorMessages open PreIdentifiers open Errors open Extralib open Lists open Positive open Identifiers open Registers open Exp open Setoids open Monad open Option open Extranat open Vector open Div_and_mod open Russell open Types open List open Util open FoldStuff open BitVector open Arithmetic open Jmeq open Bool open Hints_declaration open Core_notation open Pts open Logic open Relations open Nat open I8051 open RegisterSet open Extra_bool open Coqlib open Values open FrontEndVal open GenMem open FrontEndMem open Globalenvs open String open Sets open Listb open LabelledObjects open BitVectorTrie open Graphs open CostLabel open Hide open Integers open AST open Division open Z open BitVectorZ open Pointers open ByteValues open BackEndOps open Joint open RTL open ERTL open Deqsets_extra open State open Bind_new open BindLists open Blocks open TranslateUtils val save_hdws : AST.ident List.list -> (Registers.register, I8051.register) Types.prod List.list -> Joint.joint_seq List.list val restore_hdws : AST.ident List.list -> (Joint.psd_argument, I8051.register) Types.prod List.list -> Joint.joint_seq List.list val get_params_hdw : AST.ident List.list -> Registers.register List.list -> Joint.joint_seq List.list val get_param_stack : AST.ident List.list -> Registers.register -> Registers.register -> Registers.register -> Joint.joint_seq List.list val get_params_stack : AST.ident List.list -> Registers.register -> Registers.register -> Registers.register -> Registers.register List.list -> Joint.joint_seq List.list val get_params : AST.ident List.list -> Registers.register -> Registers.register -> Registers.register -> Registers.register List.list -> Joint.joint_seq List.list val save_return : AST.ident List.list -> Joint.psd_argument List.list -> Joint.joint_seq List.list val assign_result : AST.ident List.list -> Joint.joint_seq List.list val epilogue : AST.ident List.list -> Registers.register List.list -> Registers.register -> Registers.register -> (Registers.register, I8051.register) Types.prod List.list -> Joint.joint_seq List.list Types.sig0 val prologue : AST.ident List.list -> Registers.register List.list -> Registers.register -> Registers.register -> Registers.register -> Registers.register -> Registers.register -> (Registers.register, I8051.register) Types.prod List.list -> (Registers.register, Joint.joint_seq List.list) Bind_new.bind_new val set_params_hdw : AST.ident List.list -> Joint.psd_argument List.list -> Joint.joint_seq List.list val set_param_stack : AST.ident List.list -> Registers.register -> Registers.register -> Joint.psd_argument -> Joint.joint_seq List.list val set_params_stack : AST.ident List.list -> Joint.psd_argument List.list -> (Registers.register, Joint.joint_seq List.list) Bind_new.bind_new val set_params : AST.ident List.list -> Joint.psd_argument List.list -> (Registers.register, Joint.joint_seq List.list) Bind_new.bind_new Types.sig0 val fetch_result : AST.ident List.list -> Registers.register List.list -> Joint.joint_seq List.list Types.sig0 val translate_step : AST.ident List.list -> Graphs.label -> Joint.joint_step -> Blocks.bind_step_block val translate_fin_step : AST.ident List.list -> Registers.register List.list -> Registers.register -> Registers.register -> (Registers.register, I8051.register) Types.prod List.list -> Graphs.label -> Joint.joint_fin_step -> Blocks.bind_fin_block val allocate_regs : ((Registers.register, I8051.register) Types.prod List.list -> (Registers.register, 'a1) Bind_new.bind_new) -> (Registers.register, 'a1) Bind_new.bind_new val translate_data : AST.ident List.list -> Joint.joint_closed_internal_function -> TranslateUtils.bound_b_graph_translate_data val rtl_to_ertl : RTL.rtl_program -> ERTL.ertl_program