Library mcertikos.mm.PTNewGenLinkSource
Require Import liblayers.compat.CompatLayers.
Require Import liblayers.compat.CompatClightSem.
Require Import LAsmModuleSemDef.
Require Import CompCertiKOS.
Require Import GlobIdent.
Require Import CDataTypes.
Require Import MPTInitCSource.
Require Import CompCertiKOSproof.
Require Import RealParams.
Require Import I64Layer.
Require Import MPTInit.
Section WITHCOMPCERTIKOS.
Context `{compcertikos_prf: CompCertiKOS}.
Context `{real_params_prf : RealParams}.
Context `{oracle_prop: MultiOracleProp}.
Definition MPTNew_impl: res LAsm.module :=
M_pt_resv <- CompCertiKOS.transf_module (pt_resv ↦ f_pt_resv);
M_pt_resv2 <- CompCertiKOS.transf_module (pt_resv2 ↦ f_pt_resv2);
M_pt_new <- CompCertiKOS.transf_module (pt_new ↦ f_pt_new);
M_pmap_init <- CompCertiKOS.transf_module (pmap_init ↦ f_pmap_init);
M <- ret ((M_pt_resv ⊕ M_pt_resv2 ⊕ M_pt_new ⊕ M_pmap_init) ⊕ ∅);
_ <- eassert nil (LayerOK (〚M 〛 (mptinit ⊕ L64) ⊕ mptinit ⊕ L64));
Require Import liblayers.compat.CompatClightSem.
Require Import LAsmModuleSemDef.
Require Import CompCertiKOS.
Require Import GlobIdent.
Require Import CDataTypes.
Require Import MPTInitCSource.
Require Import CompCertiKOSproof.
Require Import RealParams.
Require Import I64Layer.
Require Import MPTInit.
Section WITHCOMPCERTIKOS.
Context `{compcertikos_prf: CompCertiKOS}.
Context `{real_params_prf : RealParams}.
Context `{oracle_prop: MultiOracleProp}.
Definition MPTNew_impl: res LAsm.module :=
M_pt_resv <- CompCertiKOS.transf_module (pt_resv ↦ f_pt_resv);
M_pt_resv2 <- CompCertiKOS.transf_module (pt_resv2 ↦ f_pt_resv2);
M_pt_new <- CompCertiKOS.transf_module (pt_new ↦ f_pt_new);
M_pmap_init <- CompCertiKOS.transf_module (pmap_init ↦ f_pmap_init);
M <- ret ((M_pt_resv ⊕ M_pt_resv2 ⊕ M_pt_new ⊕ M_pmap_init) ⊕ ∅);
_ <- eassert nil (LayerOK (〚M 〛 (mptinit ⊕ L64) ⊕ mptinit ⊕ L64));
watch out parentheses here:
ret (
group primitives according to the global variables that they use
M
for L64 and other passthrough primitives