package jasmin

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Jasmin.Array_expansion

module E : sig ... end
type varr_info = {
  1. vi_v : Var0.Var.var;
  2. vi_s : Wsize.wsize;
  3. vi_n : Ident.Ident.ident list;
}
type expand_info = {
  1. vars : Var0.Var.var list;
  2. arrs : varr_info list;
  3. finfo : Expr.fun_info;
}
type array_info = {
  1. ai_ty : Wsize.wsize;
  2. ai_len : BinNums.coq_Z;
  3. ai_elems : Var0.Var.var list;
}
type t = {
  1. svars : Var0.SvExtra.Sv.t;
  2. sarrs : array_info Var0.Mvar.t;
}
type expd_t = ((Wsize.wsize * BinNums.coq_Z) option list * (Wsize.wsize * BinNums.coq_Z) option list) Var0.Mf.t
val check_gvar : t -> Expr.gvar -> bool
val expand_lvs : t -> Expr.lval list -> (Compiler_util.pp_error_loc, Expr.lval list) Utils0.result
val expand_i : 'a1 Sopn.asmOp -> expd_t -> t -> 'a1 Expr.instr -> 'a1 Expr.instr Compiler_util.cexec
val expand_tyv : t -> bool -> string -> Type.stype -> Expr.var_i -> (Compiler_util.pp_error_loc, (Type.stype list * Expr.var_i list) * (Wsize.wsize * BinNums.coq_Z) option) Utils0.result
val expand_prog : 'a1 Sopn.asmOp -> (Var0.funname -> 'a1 Expr.ufundef -> expand_info) -> Var0.funname list -> 'a1 Expr.uprog -> 'a1 Expr.uprog Compiler_util.cexec