package jasmin
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Compiler for High-Assurance and High-Speed Cryptography
Install
dune-project
Dependency
Authors
Maintainers
Sources
jasmin-compiler-v2025.06.1.tar.bz2
sha256=e92b42fa69da7c730b0c26dacf842a72b4febcaf4f2157a1dc18b3cce1f859fa
doc/jasmin.jasmin/Jasmin/Stack_alloc/index.html
Module Jasmin.Stack_alloc
type __ = Obj.tmodule E : sig ... endval size_of : Type.stype -> BinNums.coq_Ztype slot = Var0.Var.varval region_axiom : region Eqtype.eq_axiomval coq_HB_unnamed_factory_1 : region Eqtype.Coq_hasDecEq.axioms_val stack_alloc_region__canonical__eqtype_Equality : Eqtype.Equality.coq_typemodule CmpR : sig ... endmodule Mr : sig ... endtype sexpr = | Sconst of BinNums.coq_Z| Svar of Var0.Var.var| Sof_int of Wsize.wsize * sexpr| Sto_int of Wsize.signedness * Wsize.wsize * sexpr| Sneg of Expr.op_kind * sexpr| Sadd of Expr.op_kind * sexpr * sexpr| Smul of Expr.op_kind * sexpr * sexpr| Ssub of Expr.op_kind * sexpr * sexpr
val sexpr_eq_axiom : sexpr Eqtype.eq_axiomval coq_HB_unnamed_factory_3 : sexpr Eqtype.Coq_hasDecEq.axioms_val stack_alloc_sexpr__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval is_const : sexpr -> BinNums.coq_Z optionval symbolic_slice_beq : symbolic_slice -> symbolic_slice -> boolval symbolic_slice_eq_axiom : symbolic_slice Eqtype.eq_axiomval coq_HB_unnamed_factory_5 : symbolic_slice Eqtype.Coq_hasDecEq.axioms_val stack_alloc_symbolic_slice__canonical__eqtype_Equality :
Eqtype.Equality.coq_typetype symbolic_zone = symbolic_slice listval sub_region_beq : sub_region -> sub_region -> boolval sub_region_eq_axiom : sub_region Eqtype.eq_axiomval coq_HB_unnamed_factory_7 : sub_region Eqtype.Coq_hasDecEq.axioms_val stack_alloc_sub_region__canonical__eqtype_Equality :
Eqtype.Equality.coq_typetype intervals = symbolic_slice listval symbolic_slice_ble : symbolic_slice -> symbolic_slice -> bool optionval disjoint_slices : symbolic_slice -> symbolic_slice -> boolval get_sub_interval : intervals -> Eqtype.Equality.sort -> boolval add_sub_interval : intervals -> symbolic_slice -> intervals optionval remove_sub_interval : intervals -> Eqtype.Equality.sort -> intervalstype status_map = status Var0.Mvar.tval empty_status_map : status Var0.Mvar.tval empty : region_mapval get_sub_region :
region_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, sub_region) Utils0.resultval get_status_map : status Var0.Mvar.t Mr.t -> region -> status_mapval get_status : status_map -> Eqtype.Equality.sort -> statusval get_var_status :
status Var0.Mvar.t Mr.t ->
region ->
Eqtype.Equality.sort ->
statustype ptr_kind_init = | PIdirect of Var0.Var.var * concrete_slice * Expr.v_scope| PIregptr of Var0.Var.var| PIstkptr of Var0.Var.var * concrete_slice * Var0.Var.var
type ptr_kind = | Pdirect of Var0.Var.var * BinNums.coq_Z * Wsize.wsize * concrete_slice * Expr.v_scope| Pregptr of Var0.Var.var| Pstkptr of Var0.Var.var * BinNums.coq_Z * Wsize.wsize * concrete_slice * Var0.Var.var
type pos_map = {vrip : Var0.Var.var;vrsp : Var0.Var.var;vxlen : Var0.Var.var;globals : (BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t;locals : ptr_kind Var0.Mvar.t;vnew : Var0.SvExtra.Sv.t;
}val divide_z : BinNums.coq_Z -> Wsize.wsize -> boolval divide : sexpr -> Wsize.wsize -> boolval divide_zone : symbolic_slice list -> Wsize.wsize -> boolval check_align :
Eqtype.Equality.sort ->
Expr.var_i ->
sub_region ->
Wsize.wsize ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval check_writable :
Expr.var_i ->
region ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval is_valid : status -> boolval check_valid :
Expr.var_i ->
status ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval split_last : symbolic_slice list -> symbolic_slice list * symbolic_sliceval sub_zone_at_ofs : symbolic_zone -> sexpr -> sexpr -> symbolic_slice listval sub_region_at_ofs : sub_region -> sexpr -> sexpr -> sub_regionval get_sub_status : status -> Eqtype.Equality.sort -> boolval sub_region_status_at_ofs :
Expr.var_i ->
sub_region ->
status ->
Eqtype.Equality.sort ->
Eqtype.Equality.sort ->
sub_region * statusval get_suffix : symbolic_zone -> symbolic_zone -> symbolic_zone option optionval fill_status : status -> symbolic_slice -> statusval clear_status : status -> symbolic_zone -> status optionval clear_status_map_aux :
region_map ->
symbolic_zone ->
Eqtype.Equality.sort ->
status ->
status optionval clear_status_map :
region_map ->
symbolic_zone ->
status_map ->
status Var0.Mvar.tval set_clear_status : region_map -> sub_region -> status_map Mr.Map.tval set_clear_pure : region_map -> sub_region -> region_mapval set_clear :
region_map ->
Expr.var_i ->
sub_region ->
(Compiler_util.pp_error_loc, region_map) Utils0.resultval is_unknown : status -> boolval set_status :
status Var0.Mvar.t ->
Eqtype.Equality.sort ->
status ->
status Var0.Mvar.Map.tval set_word_status :
region_map ->
sub_region ->
Eqtype.Equality.sort ->
status ->
status_map Mr.Map.tval set_word_pure :
region_map ->
sub_region ->
Eqtype.Equality.sort ->
status ->
region_mapval set_word :
region_map ->
Eqtype.Equality.sort ->
sub_region ->
Expr.var_i ->
status ->
Wsize.wsize ->
(Compiler_util.pp_error_loc, region_map) Utils0.resultval set_move_status :
status Var0.Mvar.t Mr.t ->
Eqtype.Equality.sort ->
region ->
status ->
status Var0.Mvar.t Mr.Map.tval set_move :
region_map ->
Eqtype.Equality.sort ->
sub_region ->
status ->
region_mapval insert_status :
Var0.Var.var ->
status ->
Eqtype.Equality.sort ->
Eqtype.Equality.sort ->
status ->
statusval set_move_sub :
region_map ->
region ->
Eqtype.Equality.sort ->
status ->
Eqtype.Equality.sort ->
Eqtype.Equality.sort ->
status ->
region_mapval zone_of_cs : concrete_slice -> symbolic_zoneval sub_region_stkptr : slot -> Wsize.wsize -> concrete_slice -> sub_regionval set_stack_ptr :
region_map ->
slot ->
Wsize.wsize ->
concrete_slice ->
Var0.Var.var ->
region_mapval check_stack_ptr :
status Var0.Mvar.t Mr.t ->
slot ->
Wsize.wsize ->
concrete_slice ->
Eqtype.Equality.sort ->
boolval sub_region_full : Var0.Var.var -> region -> sub_regionval sub_region_glob : slot -> Wsize.wsize -> sub_regionval get_sub_region_status :
region_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, sub_region * status) Utils0.resultval get_gsub_region_status :
region_map ->
Expr.var_i ->
vptr_kind ->
(Compiler_util.pp_error_loc, sub_region * status) Utils0.resultval table_fresh_var :
(Var0.Var.var -> Uint63.t -> Var0.Var.var) ->
table ->
Var0.Var.var ->
(Compiler_util.pp_error_loc, table * sexpr) Utils0.resultval table_get_var :
(Var0.Var.var -> Uint63.t -> Var0.Var.var) ->
table ->
Eqtype.Equality.sort ->
(Compiler_util.pp_error_loc, table * sexpr) Utils0.resultval symbolic_of_pexpr :
(Var0.Var.var -> Uint63.t -> Var0.Var.var) ->
table ->
Expr.pexpr ->
(table * sexpr) option Compiler_util.cexecval get_symbolic_of_pexpr :
(Var0.Var.var -> Uint63.t -> Var0.Var.var) ->
table ->
Expr.pexpr ->
(Compiler_util.pp_error_loc, table * sexpr) Utils0.resultval remove_binding : table -> Eqtype.Equality.sort -> tableval table_set_var : table -> Eqtype.Equality.sort -> sexpr -> tableval assert_check : bool -> bool -> 'a1 -> ('a1, unit) Utils0.resultval clone :
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
Var0.Var.var ->
Uint63.t ->
Var0.Var.varval mul : Wsize.coq_PointerData -> Expr.pexpr -> Expr.pexpr -> Expr.pexprval mk_ofs :
Wsize.coq_PointerData ->
Warray_.arr_access ->
Wsize.wsize ->
Expr.pexpr ->
BinNums.coq_Z ->
Expr.pexprval mk_ofs_int : Warray_.arr_access -> Wsize.wsize -> sexpr -> sexprval get_global :
pos_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, BinNums.coq_Z * Wsize.wsize) Utils0.resultval get_local : pos_map -> Var0.Var.var -> ptr_kind optionval get_var_kind :
pos_map ->
Expr.gvar ->
(Compiler_util.pp_error_loc, vptr_kind option) Utils0.resultval check_diff :
pos_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval check_var :
pos_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval with_var : Expr.var_i -> Var0.Var.var -> Expr.var_ival base_ptr : pos_map -> Expr.v_scope -> Var0.Var.varval addr_from_pk :
pos_map ->
Expr.var_i ->
ptr_kind ->
(Compiler_util.pp_error_loc, Expr.var_i * BinNums.coq_Z) Utils0.resultval addr_from_vpk :
pos_map ->
Expr.var_i ->
vptr_kind ->
(Compiler_util.pp_error_loc, Expr.var_i * BinNums.coq_Z) Utils0.resultval bad_arg_number : Compiler_util.pp_error_locval not_trivially_incorrect :
Warray_.arr_access ->
Wsize.wsize ->
Expr.pexpr ->
BinNums.coq_Z ->
boolval alloc_e :
Wsize.coq_PointerData ->
pos_map ->
region_map ->
Expr.pexpr ->
Type.stype ->
(Compiler_util.pp_error_loc, Expr.pexpr) Utils0.resultval alloc_es :
Wsize.coq_PointerData ->
pos_map ->
region_map ->
Expr.pexpr list ->
Type.stype list ->
(Compiler_util.pp_error_loc, Expr.pexpr list) Utils0.resultval sub_region_direct :
slot ->
Wsize.wsize ->
concrete_slice ->
Eqtype.Equality.sort ->
sub_regionval sub_region_stack : slot -> Wsize.wsize -> concrete_slice -> sub_regionval alloc_lval :
Wsize.coq_PointerData ->
pos_map ->
region_map ->
Expr.lval ->
Type.stype ->
(Compiler_util.pp_error_loc, region_map * Expr.lval) Utils0.resultval nop : 'a1 Sopn.asmOp -> 'a1 Expr.instr_rval is_nop :
region_map ->
Eqtype.Equality.sort ->
sub_region ->
slot ->
Wsize.wsize ->
concrete_slice ->
Eqtype.Equality.sort ->
boolval get_addr :
'a1 Sopn.asmOp ->
'a1 Stack_alloc_params.stack_alloc_params ->
Expr.var_i ->
Expr.lval ->
Expr.assgn_tag ->
Stack_alloc_params.mov_kind ->
Expr.pexpr ->
Expr.pexpr ->
(Compiler_util.pp_error_loc, 'a1 Expr.instr_r) Utils0.resultval is_stack_ptr :
vptr_kind ->
((((Var0.Var.var * BinNums.coq_Z) * Wsize.wsize) * concrete_slice)
* Var0.Var.var)
optionval addr_from_vpk_pexpr :
Wsize.coq_PointerData ->
pos_map ->
status Var0.Mvar.t Mr.t ->
Expr.var_i ->
vptr_kind ->
(Compiler_util.pp_error_loc, Expr.pexpr * BinNums.coq_Z) Utils0.resultval mk_mov : vptr_kind -> Stack_alloc_params.mov_kindval regions_are_not_equal :
(sub_region -> Compiler_util.pp_error) ->
string ->
Expr.var_i ->
sub_region ->
sub_region ->
Compiler_util.pp_error_locval alloc_array_move :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
'a1 Stack_alloc_params.stack_alloc_params ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
pos_map ->
table ->
region_map ->
Expr.lval ->
Expr.assgn_tag ->
Expr.pexpr ->
(Compiler_util.pp_error_loc, (table * region_map) * 'a1 Expr.instr_r)
Utils0.resultval is_protect_ptr_fail :
'a1 Sopn.asmOp ->
Expr.lval list ->
'a1 Sopn.sopn ->
Expr.pexpr list ->
((Expr.lval * Expr.pexpr) * Expr.pexpr) optionval lower_protect_ptr_fail :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
Expr.instr_info ->
Expr.lval list ->
Expr.assgn_tag ->
Expr.pexpr list ->
'a1 Expr.instr_r Compiler_util.cexecval alloc_protect_ptr :
Wsize.coq_PointerData ->
Wsize.coq_MSFsize ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
pos_map ->
region_map ->
Expr.instr_info ->
Expr.lval ->
Expr.assgn_tag ->
Expr.pexpr ->
Expr.pexpr ->
(Compiler_util.pp_error_loc, region_map * 'a1 Expr.instr_r) Utils0.resultval alloc_array_move_init :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
'a1 Stack_alloc_params.stack_alloc_params ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
pos_map ->
table ->
region_map ->
Expr.lval ->
Expr.assgn_tag ->
Expr.pexpr ->
(Compiler_util.pp_error_loc, (table * region_map) * 'a1 Expr.instr_r)
Utils0.resultval bad_lval_number : Compiler_util.pp_error_locval alloc_lvals :
Wsize.coq_PointerData ->
pos_map ->
region_map ->
Expr.lval list ->
Type.stype list ->
(Compiler_util.pp_error_loc, region_map * Expr.lval list) Utils0.resultval incl_status_map : status_map -> status_map -> boolval incl : region_map -> region_map -> boolval type_of_op_kind : Expr.op_kind -> Type.stypeval typecheck : sexpr -> (Compiler_util.pp_error_loc, Type.stype) Utils0.resultval typecheck_slice : symbolic_slice -> boolval read_e_rec : Var0.SvExtra.Sv.t -> sexpr -> Var0.SvExtra.Sv.tval read_e : sexpr -> Var0.SvExtra.Sv.tval read_slice : symbolic_slice -> Var0.SvExtra.Sv.tval merge_status :
Var0.SvExtra.Sv.t ->
Var0.Var.var ->
status option ->
status option ->
status optionval merge_status_map :
Var0.SvExtra.Sv.t ->
region ->
status_map option ->
status_map option ->
status Var0.Mvar.t optionval merge : Var0.SvExtra.Sv.t -> region_map -> region_map -> region_mapval loop2 :
'a1 Sopn.asmOp ->
Expr.instr_info ->
(table ->
region_map ->
(((table * region_map) * (table * region_map))
* ((Expr.pexpr * 'a1 Expr.instr list list) * 'a1 Expr.instr list list))
Compiler_util.cexec) ->
Datatypes.nat ->
table ->
region_map ->
(Compiler_util.pp_error_loc,
(table * region_map)
* ((Expr.pexpr * 'a1 Expr.instr list list) * 'a1 Expr.instr list list))
Utils0.resulttype stk_alloc_oracle_t = {sao_align : Wsize.wsize;sao_size : BinNums.coq_Z;sao_ioff : BinNums.coq_Z;sao_extra_size : BinNums.coq_Z;sao_max_size : BinNums.coq_Z;sao_max_call_depth : BinNums.coq_Z;sao_params : param_info option list;sao_return : Datatypes.nat option list;sao_slots : ((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) list;sao_alloc : (Var0.Var.var * ptr_kind_init) list;sao_to_save : (Var0.Var.var * BinNums.coq_Z) list;sao_rsp : Expr.saved_stack;sao_return_address : Expr.return_address_location;
}val sao_frame_size : stk_alloc_oracle_t -> BinNums.coq_Zval get_Pvar :
Expr.pexpr ->
(Compiler_util.pp_error_loc, Expr.gvar) Utils0.resultval alloc_call_arg_aux :
pos_map ->
region_map ->
region_map ->
param_info option ->
Expr.pexpr ->
(Compiler_util.pp_error_loc,
region_map * ((bool * sub_region) option * Expr.pexpr))
Utils0.resultval alloc_call_args_aux :
pos_map ->
region_map ->
param_info option list ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc,
region_map * ((bool * sub_region) option * Expr.pexpr) list)
Utils0.resultval disjoint_zones :
Eqtype.Equality.sort list ->
Eqtype.Equality.sort list ->
boolval disj_sub_regions : sub_region -> sub_region -> boolval check_all_disj :
sub_region list ->
sub_region list ->
((bool * sub_region) option * Expr.pexpr) list ->
boolval alloc_call_args :
pos_map ->
region_map ->
Var0.funname ->
param_info option list ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc,
region_map * ((bool * sub_region) option * Expr.pexpr) list)
Utils0.resultval check_lval_reg_call :
pos_map ->
Expr.lval ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval get_regptr :
pos_map ->
Expr.var_i ->
(Compiler_util.pp_error_loc, Expr.var_i) Utils0.resultval alloc_lval_call :
Wsize.coq_PointerData ->
pos_map ->
((bool * sub_region) option * Expr.pexpr) list ->
region_map ->
Expr.lval ->
Datatypes.nat option ->
(Compiler_util.pp_error_loc, region_map * Expr.lval) Utils0.resultval alloc_call_res :
Wsize.coq_PointerData ->
pos_map ->
region_map ->
((bool * sub_region) option * Expr.pexpr) list ->
Datatypes.nat option list ->
Expr.lval list ->
(Compiler_util.pp_error_loc, region_map * Expr.lval list) Utils0.resultval alloc_call :
bool ->
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
pos_map ->
(Var0.funname -> stk_alloc_oracle_t) ->
stk_alloc_oracle_t ->
region_map ->
Expr.lval list ->
Var0.funname ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc, region_map * 'a1 Expr.instr_r) Utils0.resultval alloc_syscall :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
'a1 Stack_alloc_params.stack_alloc_params ->
pos_map ->
Expr.instr_info ->
region_map ->
Expr.lval list ->
BinNums.positive Syscall_t.syscall_t ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc, region_map * 'a1 Expr.instr list) Utils0.resultval is_swap_array : 'a1 Sopn.asmOp -> 'a1 Sopn.sopn -> boolval alloc_array_swap :
'a1 Sopn.asmOp ->
'a1 Stack_alloc_params.stack_alloc_params ->
pos_map ->
region_map ->
Expr.lval list ->
Expr.assgn_tag ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc, region_map * 'a1 Expr.instr_r) Utils0.resultval alloc_i :
bool ->
Wsize.coq_PointerData ->
Wsize.coq_MSFsize ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
'a1 Stack_alloc_params.stack_alloc_params ->
('a1 Sopn.asm_op_t -> bool) ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
pos_map ->
(Var0.funname -> stk_alloc_oracle_t) ->
'a1 Expr._uprog ->
stk_alloc_oracle_t ->
(table * region_map) ->
'a1 Expr.instr ->
((table * region_map) * 'a1 Expr.instr list) Compiler_util.cexecval init_stack_layout :
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
stk_alloc_oracle_t ->
(Compiler_util.pp_error_loc, (BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t)
Utils0.resultval add_alloc :
Wsize.coq_PointerData ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(Var0.Var.var * ptr_kind_init) ->
((ptr_kind Var0.Mvar.t * region_map) * Var0.SvExtra.Sv.t) ->
(Compiler_util.pp_error_loc,
(ptr_kind Var0.Mvar.Map.t * region_map) * Var0.SvExtra.Sv.t)
Utils0.resultval init_local_map :
Wsize.coq_PointerData ->
Var0.SvExtra.Sv.elt ->
Var0.SvExtra.Sv.elt ->
Var0.SvExtra.Sv.elt ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
stk_alloc_oracle_t ->
(Compiler_util.pp_error_loc,
(ptr_kind Var0.Mvar.t * region_map) * Var0.SvExtra.Sv.t)
Utils0.resultval check_result :
pos_map ->
region_map ->
Eqtype.Equality.sort option list ->
Expr.var_i list ->
Datatypes.nat option ->
Expr.var_i ->
(Compiler_util.pp_error_loc, Expr.var_i) Utils0.resultval check_all_writable_regions_returned :
sub_region option list ->
Datatypes.nat option list ->
boolval check_results :
pos_map ->
region_map ->
Eqtype.Equality.sort option list ->
Expr.var_i list ->
Datatypes.nat option list ->
Expr.var_i list ->
(Compiler_util.pp_error_loc, Expr.var_i list) Utils0.resultval init_param :
Wsize.coq_PointerData ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
((Var0.SvExtra.Sv.t * ptr_kind Var0.Mvar.t) * region_map) ->
param_info option ->
Expr.var_i ->
(Compiler_util.pp_error_loc,
((Var0.SvExtra.Sv.t * ptr_kind Var0.Mvar.Map.t) * region_map)
* (sub_region option * Expr.var_i))
Utils0.resultval init_params :
Wsize.coq_PointerData ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
Var0.SvExtra.Sv.t ->
ptr_kind Var0.Mvar.t ->
region_map ->
param_info option list ->
Expr.var_i list ->
(Compiler_util.pp_error_loc,
((Var0.SvExtra.Sv.t * ptr_kind Var0.Mvar.t) * region_map)
* (sub_region option * Expr.var_i) list)
Utils0.resultval fresh_reg :
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
string ->
Type.stype ->
Ident.Ident.identval alloc_fd_aux :
bool ->
Wsize.coq_PointerData ->
Wsize.coq_MSFsize ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
'a1 Stack_alloc_params.stack_alloc_params ->
('a1 Sopn.asm_op_t -> bool) ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
'a1 Expr._uprog ->
Expr.sprog_extra ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(Var0.funname -> stk_alloc_oracle_t) ->
stk_alloc_oracle_t ->
('a1, unit) Expr._fundef ->
'a1 Expr._ufundef Compiler_util.cexecval alloc_fd :
bool ->
Wsize.coq_PointerData ->
Wsize.coq_MSFsize ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
'a1 Stack_alloc_params.stack_alloc_params ->
('a1 Sopn.asm_op_t -> bool) ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
'a1 Expr._uprog ->
Expr.sprog_extra ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t ->
(Var0.funname -> stk_alloc_oracle_t) ->
Var0.funname ->
('a1, unit) Expr._fundef ->
(Compiler_util.pp_error_loc, 'a1 Expr.sfundef) Utils0.resultval ptake :
BinNums.positive ->
'a1 list ->
'a1 list ->
('a1 list * 'a1 list) optionval ztake : BinNums.coq_Z -> 'a1 list -> ('a1 list * 'a1 list) optionval check_glob :
Ssralg.GRing.ComRing.sort list ->
Global.glob_value ->
(Compiler_util.pp_error_loc, unit) Utils0.resultval size_glob : Global.glob_value -> BinNums.coq_Zval init_map :
((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) list ->
Ssralg.GRing.ComRing.sort list ->
Global.glob_decl list ->
(BinNums.coq_Z * Wsize.wsize) Var0.Mvar.t Compiler_util.cexecval alloc_prog :
bool ->
Wsize.coq_PointerData ->
Wsize.coq_MSFsize ->
'a1 Sopn.asmOp ->
'a1 Slh_lowering.sh_params ->
'a1 Stack_alloc_params.stack_alloc_params ->
('a1 Sopn.asm_op_t -> bool) ->
(Wsize.v_kind -> Uint63.t -> string -> Type.stype -> Ident.Ident.ident) ->
(sub_region -> Compiler_util.pp_error) ->
Ident.Ident.ident ->
Ident.Ident.ident ->
Ssralg.GRing.ComRing.sort list ->
((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) list ->
(Var0.funname -> stk_alloc_oracle_t) ->
'a1 Expr._uprog ->
'a1 Expr._sprog Compiler_util.cexec sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>