Library mcertikos.mm.ALGenLinkSource

Require Import liblayers.compat.CompatLayers.
Require Import liblayers.compat.CompatClightSem.
Require Import LAsmModuleSemDef.
Require Import CompCertiKOS.
Require Import GlobIdent.
Require Import CDataTypes.
Require Import CompCertiKOSproof.
Require Import RealParams.
Require Import I64Layer.

Require Import MALOpCSource.
Require Import MALOp.

Section WITHCOMPCERTIKOS.

  Context `{compcertikos_prf: CompCertiKOS}.

  Context `{real_params_prf : RealParams}.
  Context `{multi_oracle_prop: MultiOracleProp}.

  Definition MALT_impl: res LAsm.module :=
    M_palloc <- CompCertiKOS.transf_module (palloc f_palloc);
    M_pfree <- CompCertiKOS.transf_module (pfree f_pfree);
    M <- ret ((M_palloc M_pfree) ) ;
    _ <- eassert nil (LayerOK (M (malop L64) malop L64));
    
watch out parentheses here:
    ret (
        
group primitives according to the global variables that they use
        M
for L64 and other passthrough primitives
      ).

End WITHCOMPCERTIKOS.