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/Expr/index.html
Module Jasmin.Expr
type __ = Obj.ttype is_cmp_kind = | Coq_is_Cmp_int| Coq_is_Cmp_w of Wsize.signedness * Wsize.is_signedness * Wsize.wsize * Wsize.is_wsize
val cmp_kind_tag : cmp_kind -> BinNums.positiveval is_cmp_kind_inhab : cmp_kind -> is_cmp_kindval is_cmp_kind_functor : cmp_kind -> is_cmp_kind -> is_cmp_kindtype box_cmp_kind_Cmp_w = {coq_Box_cmp_kind_Cmp_w_0 : Wsize.signedness;coq_Box_cmp_kind_Cmp_w_1 : Wsize.wsize;
}val coq_Box_cmp_kind_Cmp_w_0 : box_cmp_kind_Cmp_w -> Wsize.signednessval coq_Box_cmp_kind_Cmp_w_1 : box_cmp_kind_Cmp_w -> Wsize.wsizetype cmp_kind_fields_t = __val cmp_kind_fields : cmp_kind -> cmp_kind_fields_tval cmp_kind_construct :
BinNums.positive ->
cmp_kind_fields_t ->
cmp_kind optionval cmp_kind_induction :
'a1 ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
cmp_kind ->
is_cmp_kind ->
'a1val cmp_kind_eqb_fields :
(cmp_kind -> cmp_kind -> bool) ->
BinNums.positive ->
cmp_kind_fields_t ->
cmp_kind_fields_t ->
boolval cmp_kind_eqb_OK : cmp_kind -> cmp_kind -> Bool.reflectval op_kind_tag : op_kind -> BinNums.positiveval is_op_kind_inhab : op_kind -> is_op_kindval is_op_kind_functor : op_kind -> is_op_kind -> is_op_kindtype box_op_kind_Op_w = Wsize.wsizeval coq_Box_op_kind_Op_w_0 : box_op_kind_Op_w -> Wsize.wsizetype op_kind_fields_t = __val op_kind_fields : op_kind -> op_kind_fields_tval op_kind_construct : BinNums.positive -> op_kind_fields_t -> op_kind optionval op_kind_induction :
'a1 ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
op_kind ->
is_op_kind ->
'a1val op_kind_eqb_fields :
(op_kind -> op_kind -> bool) ->
BinNums.positive ->
op_kind_fields_t ->
op_kind_fields_t ->
boolval op_kind_eqb_OK : op_kind -> op_kind -> Bool.reflecttype wiop1 = | WIwint_of_int of Wsize.wsize| WIint_of_wint of Wsize.wsize| WIword_of_wint of Wsize.wsize| WIwint_of_word of Wsize.wsize| WIwint_ext of Wsize.wsize * Wsize.wsize| WIneg of Wsize.wsize
type is_wiop1 = | Coq_is_WIwint_of_int of Wsize.wsize * Wsize.is_wsize| Coq_is_WIint_of_wint of Wsize.wsize * Wsize.is_wsize| Coq_is_WIword_of_wint of Wsize.wsize * Wsize.is_wsize| Coq_is_WIwint_of_word of Wsize.wsize * Wsize.is_wsize| Coq_is_WIwint_ext of Wsize.wsize * Wsize.is_wsize * Wsize.wsize * Wsize.is_wsize| Coq_is_WIneg of Wsize.wsize * Wsize.is_wsize
val wiop1_tag : wiop1 -> BinNums.positivetype box_wiop1_WIwint_of_int = Wsize.wsizeval coq_Box_wiop1_WIwint_of_int_0 : box_wiop1_WIwint_of_int -> Wsize.wsizetype box_wiop1_WIwint_ext = {coq_Box_wiop1_WIwint_ext_0 : Wsize.wsize;coq_Box_wiop1_WIwint_ext_1 : Wsize.wsize;
}val coq_Box_wiop1_WIwint_ext_0 : box_wiop1_WIwint_ext -> Wsize.wsizeval coq_Box_wiop1_WIwint_ext_1 : box_wiop1_WIwint_ext -> Wsize.wsizetype wiop1_fields_t = __val wiop1_fields : wiop1 -> wiop1_fields_tval wiop1_construct : BinNums.positive -> wiop1_fields_t -> wiop1 optionval wiop1_induction :
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
wiop1 ->
is_wiop1 ->
'a1val wiop1_eqb_fields :
(wiop1 -> wiop1 -> bool) ->
BinNums.positive ->
wiop1_fields_t ->
wiop1_fields_t ->
boolval wiop1_eqb_OK : wiop1 -> wiop1 -> Bool.reflecttype sop1 = | Oword_of_int of Wsize.wsize| Oint_of_word of Wsize.signedness * Wsize.wsize| Osignext of Wsize.wsize * Wsize.wsize| Ozeroext of Wsize.wsize * Wsize.wsize| Onot| Olnot of Wsize.wsize| Oneg of op_kind| Owi1 of Wsize.signedness * wiop1
type is_sop1 = | Coq_is_Oword_of_int of Wsize.wsize * Wsize.is_wsize| Coq_is_Oint_of_word of Wsize.signedness * Wsize.is_signedness * Wsize.wsize * Wsize.is_wsize| Coq_is_Osignext of Wsize.wsize * Wsize.is_wsize * Wsize.wsize * Wsize.is_wsize| Coq_is_Ozeroext of Wsize.wsize * Wsize.is_wsize * Wsize.wsize * Wsize.is_wsize| Coq_is_Onot| Coq_is_Olnot of Wsize.wsize * Wsize.is_wsize| Coq_is_Oneg of op_kind * is_op_kind| Coq_is_Owi1 of Wsize.signedness * Wsize.is_signedness * wiop1 * is_wiop1
val sop1_tag : sop1 -> BinNums.positivetype box_sop1_Oword_of_int = Wsize.wsizeval coq_Box_sop1_Oword_of_int_0 : box_sop1_Oword_of_int -> Wsize.wsizetype box_sop1_Oint_of_word = {coq_Box_sop1_Oint_of_word_0 : Wsize.signedness;coq_Box_sop1_Oint_of_word_1 : Wsize.wsize;
}val coq_Box_sop1_Oint_of_word_0 : box_sop1_Oint_of_word -> Wsize.signednessval coq_Box_sop1_Oint_of_word_1 : box_sop1_Oint_of_word -> Wsize.wsizetype box_sop1_Osignext = {coq_Box_sop1_Osignext_0 : Wsize.wsize;coq_Box_sop1_Osignext_1 : Wsize.wsize;
}val coq_Box_sop1_Osignext_0 : box_sop1_Osignext -> Wsize.wsizeval coq_Box_sop1_Osignext_1 : box_sop1_Osignext -> Wsize.wsizetype box_sop1_Oneg = op_kindval coq_Box_sop1_Oneg_0 : box_sop1_Oneg -> op_kindval coq_Box_sop1_Owi1_0 : box_sop1_Owi1 -> Wsize.signednessval coq_Box_sop1_Owi1_1 : box_sop1_Owi1 -> wiop1type sop1_fields_t = __val sop1_fields : sop1 -> sop1_fields_tval sop1_construct : BinNums.positive -> sop1_fields_t -> sop1 optionval sop1_induction :
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
'a1 ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(Wsize.signedness -> Wsize.is_signedness -> wiop1 -> is_wiop1 -> 'a1) ->
sop1 ->
is_sop1 ->
'a1val sop1_eqb_fields :
(sop1 -> sop1 -> bool) ->
BinNums.positive ->
sop1_fields_t ->
sop1_fields_t ->
boolval sop1_eqb_OK : sop1 -> sop1 -> Bool.reflectval uint_of_word : Wsize.wsize -> sop1val sint_of_word : Wsize.wsize -> sop1val wiop2_tag : wiop2 -> BinNums.positivetype wiop2_fields_t = __val wiop2_fields : wiop2 -> wiop2_fields_tval wiop2_construct : BinNums.positive -> wiop2_fields_t -> wiop2 optionval wiop2_eqb_fields :
(wiop2 -> wiop2 -> bool) ->
BinNums.positive ->
wiop2_fields_t ->
wiop2_fields_t ->
boolval wiop2_eqb_OK : wiop2 -> wiop2 -> Bool.reflecttype sop2 = | Obeq| Oand| Oor| Oadd of op_kind| Omul of op_kind| Osub of op_kind| Odiv of Wsize.signedness * op_kind| Omod of Wsize.signedness * op_kind| Oland of Wsize.wsize| Olor of Wsize.wsize| Olxor of Wsize.wsize| Olsr of Wsize.wsize| Olsl of op_kind| Oasr of op_kind| Oror of Wsize.wsize| Orol of Wsize.wsize| Oeq of op_kind| Oneq of op_kind| Olt of cmp_kind| Ole of cmp_kind| Ogt of cmp_kind| Oge of cmp_kind| Ovadd of Wsize.velem * Wsize.wsize| Ovsub of Wsize.velem * Wsize.wsize| Ovmul of Wsize.velem * Wsize.wsize| Ovlsr of Wsize.velem * Wsize.wsize| Ovlsl of Wsize.velem * Wsize.wsize| Ovasr of Wsize.velem * Wsize.wsize| Owi2 of Wsize.signedness * Wsize.wsize * wiop2
type is_sop2 = | Coq_is_Obeq| Coq_is_Oand| Coq_is_Oor| Coq_is_Oadd of op_kind * is_op_kind| Coq_is_Omul of op_kind * is_op_kind| Coq_is_Osub of op_kind * is_op_kind| Coq_is_Odiv of Wsize.signedness * Wsize.is_signedness * op_kind * is_op_kind| Coq_is_Omod of Wsize.signedness * Wsize.is_signedness * op_kind * is_op_kind| Coq_is_Oland of Wsize.wsize * Wsize.is_wsize| Coq_is_Olor of Wsize.wsize * Wsize.is_wsize| Coq_is_Olxor of Wsize.wsize * Wsize.is_wsize| Coq_is_Olsr of Wsize.wsize * Wsize.is_wsize| Coq_is_Olsl of op_kind * is_op_kind| Coq_is_Oasr of op_kind * is_op_kind| Coq_is_Oror of Wsize.wsize * Wsize.is_wsize| Coq_is_Orol of Wsize.wsize * Wsize.is_wsize| Coq_is_Oeq of op_kind * is_op_kind| Coq_is_Oneq of op_kind * is_op_kind| Coq_is_Olt of cmp_kind * is_cmp_kind| Coq_is_Ole of cmp_kind * is_cmp_kind| Coq_is_Ogt of cmp_kind * is_cmp_kind| Coq_is_Oge of cmp_kind * is_cmp_kind| Coq_is_Ovadd of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Ovsub of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Ovmul of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Ovlsr of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Ovlsl of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Ovasr of Wsize.velem * Wsize.is_velem * Wsize.wsize * Wsize.is_wsize| Coq_is_Owi2 of Wsize.signedness * Wsize.is_signedness * Wsize.wsize * Wsize.is_wsize * wiop2 * is_wiop2
val sop2_tag : sop2 -> BinNums.positivetype box_sop2_Oadd = op_kindval coq_Box_sop2_Oadd_0 : box_sop2_Oadd -> op_kindval coq_Box_sop2_Odiv_0 : box_sop2_Odiv -> Wsize.signednessval coq_Box_sop2_Odiv_1 : box_sop2_Odiv -> op_kindtype box_sop2_Oland = Wsize.wsizeval coq_Box_sop2_Oland_0 : box_sop2_Oland -> Wsize.wsizetype box_sop2_Olt = cmp_kindval coq_Box_sop2_Olt_0 : box_sop2_Olt -> cmp_kindval coq_Box_sop2_Ovadd_0 : box_sop2_Ovadd -> Wsize.velemval coq_Box_sop2_Ovadd_1 : box_sop2_Ovadd -> Wsize.wsizetype box_sop2_Owi2 = {coq_Box_sop2_Owi2_0 : Wsize.signedness;coq_Box_sop2_Owi2_1 : Wsize.wsize;coq_Box_sop2_Owi2_2 : wiop2;
}val coq_Box_sop2_Owi2_0 : box_sop2_Owi2 -> Wsize.signednessval coq_Box_sop2_Owi2_1 : box_sop2_Owi2 -> Wsize.wsizeval coq_Box_sop2_Owi2_2 : box_sop2_Owi2 -> wiop2type sop2_fields_t = __val sop2_fields : sop2 -> sop2_fields_tval sop2_construct : BinNums.positive -> sop2_fields_t -> sop2 optionval sop2_induction :
'a1 ->
'a1 ->
'a1 ->
(op_kind -> is_op_kind -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(Wsize.signedness -> Wsize.is_signedness -> op_kind -> is_op_kind -> 'a1) ->
(Wsize.signedness -> Wsize.is_signedness -> op_kind -> is_op_kind -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(op_kind -> is_op_kind -> 'a1) ->
(cmp_kind -> is_cmp_kind -> 'a1) ->
(cmp_kind -> is_cmp_kind -> 'a1) ->
(cmp_kind -> is_cmp_kind -> 'a1) ->
(cmp_kind -> is_cmp_kind -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.velem -> Wsize.is_velem -> Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
wiop2 ->
is_wiop2 ->
'a1) ->
sop2 ->
is_sop2 ->
'a1val sop2_eqb_fields :
(sop2 -> sop2 -> bool) ->
BinNums.positive ->
sop2_fields_t ->
sop2_fields_t ->
boolval sop2_eqb_OK : sop2 -> sop2 -> Bool.reflecttype combine_flags = | CF_LT of Wsize.signedness| CF_LE of Wsize.signedness| CF_EQ| CF_NEQ| CF_GE of Wsize.signedness| CF_GT of Wsize.signedness
type is_combine_flags = | Coq_is_CF_LT of Wsize.signedness * Wsize.is_signedness| Coq_is_CF_LE of Wsize.signedness * Wsize.is_signedness| Coq_is_CF_EQ| Coq_is_CF_NEQ| Coq_is_CF_GE of Wsize.signedness * Wsize.is_signedness| Coq_is_CF_GT of Wsize.signedness * Wsize.is_signedness
val combine_flags_tag : combine_flags -> BinNums.positiveval is_combine_flags_inhab : combine_flags -> is_combine_flagsval is_combine_flags_functor :
combine_flags ->
is_combine_flags ->
is_combine_flagstype box_combine_flags_CF_LT = Wsize.signednessval coq_Box_combine_flags_CF_LT_0 : box_combine_flags_CF_LT -> Wsize.signednesstype combine_flags_fields_t = __val combine_flags_fields : combine_flags -> combine_flags_fields_tval combine_flags_construct :
BinNums.positive ->
combine_flags_fields_t ->
combine_flags optionval combine_flags_induction :
(Wsize.signedness -> Wsize.is_signedness -> 'a1) ->
(Wsize.signedness -> Wsize.is_signedness -> 'a1) ->
'a1 ->
'a1 ->
(Wsize.signedness -> Wsize.is_signedness -> 'a1) ->
(Wsize.signedness -> Wsize.is_signedness -> 'a1) ->
combine_flags ->
is_combine_flags ->
'a1val combine_flags_eqb_fields :
(combine_flags -> combine_flags -> bool) ->
BinNums.positive ->
combine_flags_fields_t ->
combine_flags_fields_t ->
boolval combine_flags_eqb : combine_flags -> combine_flags -> boolval combine_flags_eqb_OK : combine_flags -> combine_flags -> Bool.reflectval combine_flags_eqb_OK_sumbool : combine_flags -> combine_flags -> booltype is_opN = | Coq_is_Opack of Wsize.wsize * Wsize.is_wsize * Wsize.pelem * Wsize.is_pelem| Coq_is_Ocombine_flags of combine_flags * is_combine_flags
val opN_tag : opN -> BinNums.positiveval coq_Box_opN_Opack_0 : box_opN_Opack -> Wsize.wsizeval coq_Box_opN_Opack_1 : box_opN_Opack -> Wsize.pelemtype box_opN_Ocombine_flags = combine_flagsval coq_Box_opN_Ocombine_flags_0 : box_opN_Ocombine_flags -> combine_flagstype opN_fields_t = __val opN_fields : opN -> opN_fields_tval opN_construct : BinNums.positive -> opN_fields_t -> opN optionval opN_induction :
(Wsize.wsize -> Wsize.is_wsize -> Wsize.pelem -> Wsize.is_pelem -> 'a1) ->
(combine_flags -> is_combine_flags -> 'a1) ->
opN ->
is_opN ->
'a1val opN_eqb_fields :
(opN -> opN -> bool) ->
BinNums.positive ->
opN_fields_t ->
opN_fields_t ->
boolval opN_eqb_OK : opN -> opN -> Bool.reflectval coq_HB_unnamed_factory_1 : op_kind Eqtype.Coq_hasDecEq.axioms_val expr_op_kind__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval coq_HB_unnamed_factory_3 : sop1 Eqtype.Coq_hasDecEq.axioms_val expr_sop1__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval coq_HB_unnamed_factory_5 : sop2 Eqtype.Coq_hasDecEq.axioms_val expr_sop2__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval coq_HB_unnamed_factory_7 : opN Eqtype.Coq_hasDecEq.axioms_val expr_opN__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval etype_of_wiop1 :
Wsize.signedness ->
wiop1 ->
'a1 Type.extended_type * 'a1 Type.extended_typeval type_of_wiop1 : wiop1 -> Type.stype * Type.stypeval type_of_opk : op_kind -> Type.stypeval etype_of_opk : op_kind -> 'a1 Type.extended_typeval etype_of_op1 : sop1 -> 'a1 Type.extended_type * 'a1 Type.extended_typeval type_of_op1 : sop1 -> Type.stype * Type.stypeval etype_of_wiop2 :
Wsize.signedness ->
Wsize.wsize ->
wiop2 ->
('a1 Type.extended_type * 'a1 Type.extended_type) * 'a1 Type.extended_typeval type_of_wiop2 :
Wsize.wsize ->
wiop2 ->
(Type.stype * Type.stype) * Type.stypeval etype_of_op2 :
sop2 ->
('a1 Type.extended_type * 'a1 Type.extended_type) * 'a1 Type.extended_typeval type_of_op2 : sop2 -> (Type.stype * Type.stype) * Type.stypeval tin_combine_flags : Type.stype listval type_of_opN : opN -> Type.stype list * Type.stypemodule type TAG = sig ... endtype var_info = Location.tval dummy_var_info : var_infoval v_var : var_i -> Var0.Var.varval mk_var_i : Var0.Var.var -> var_ival v_scope_tag : v_scope -> BinNums.positiveval is_v_scope_inhab : v_scope -> is_v_scopeval is_v_scope_functor : v_scope -> is_v_scope -> is_v_scopetype v_scope_fields_t = __val v_scope_fields : v_scope -> v_scope_fields_tval v_scope_construct : BinNums.positive -> v_scope_fields_t -> v_scope optionval v_scope_induction : 'a1 -> 'a1 -> v_scope -> is_v_scope -> 'a1val v_scope_eqb_fields :
(v_scope -> v_scope -> bool) ->
BinNums.positive ->
v_scope_fields_t ->
v_scope_fields_t ->
boolval v_scope_eqb_OK : v_scope -> v_scope -> Bool.reflectval coq_HB_unnamed_factory_9 : v_scope Eqtype.Coq_hasDecEq.axioms_val expr_v_scope__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval is_lvar : gvar -> boolval is_glob : gvar -> booltype pexpr = | Pconst of BinNums.coq_Z| Pbool of bool| Parr_init of BinNums.positive| Pvar of gvar| Pget of Memory_model.aligned * Warray_.arr_access * Wsize.wsize * gvar * pexpr| Psub of Warray_.arr_access * Wsize.wsize * BinNums.positive * gvar * pexpr| Pload of Memory_model.aligned * Wsize.wsize * pexpr| Papp1 of sop1 * pexpr| Papp2 of sop2 * pexpr * pexpr| PappN of opN * pexpr list| Pif of Type.stype * pexpr * pexpr * pexpr
val eaddw : Wsize.wsize -> pexpr -> pexpr -> pexprval cf_of_condition : sop2 -> (combine_flags * Wsize.wsize) optionval pexpr_of_cf : combine_flags -> var_info -> Var0.Var.var list -> pexprtype lval = | Lnone of var_info * Type.stype| Lvar of var_i| Lmem of Memory_model.aligned * Wsize.wsize * var_info * pexpr| Laset of Memory_model.aligned * Warray_.arr_access * Wsize.wsize * var_i * pexpr| Lasub of Warray_.arr_access * Wsize.wsize * BinNums.positive * var_i * pexpr
val get_pvar : pexpr -> Var0.Var.var Utils0.execval get_lvar : lval -> Var0.Var.var Utils0.execval dir_tag : dir -> BinNums.positivetype dir_fields_t = __val dir_fields : dir -> dir_fields_tval dir_construct : BinNums.positive -> dir_fields_t -> dir optionval dir_eqb_fields :
(dir -> dir -> bool) ->
BinNums.positive ->
dir_fields_t ->
dir_fields_t ->
boolval dir_eqb_OK : dir -> dir -> Bool.reflectval coq_HB_unnamed_factory_11 : dir Eqtype.Coq_hasDecEq.axioms_val expr_dir__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval wrange : dir -> BinNums.coq_Z -> BinNums.coq_Z -> BinNums.coq_Z listmodule type InstrInfoT = sig ... endmodule InstrInfo : InstrInfoTtype instr_info = IInfo.tval dummy_instr_info : instr_infoval ii_with_location : instr_info -> instr_infoval ii_is_inline : instr_info -> boolval var_info_of_ii : instr_info -> var_infoval assgn_tag_tag : assgn_tag -> BinNums.positiveval is_assgn_tag_inhab : assgn_tag -> is_assgn_tagval is_assgn_tag_functor : assgn_tag -> is_assgn_tag -> is_assgn_tagtype assgn_tag_fields_t = __val assgn_tag_fields : assgn_tag -> assgn_tag_fields_tval assgn_tag_construct :
BinNums.positive ->
assgn_tag_fields_t ->
assgn_tag optionval assgn_tag_induction :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
assgn_tag ->
is_assgn_tag ->
'a1val assgn_tag_eqb_fields :
(assgn_tag -> assgn_tag -> bool) ->
BinNums.positive ->
assgn_tag_fields_t ->
assgn_tag_fields_t ->
boolval assgn_tag_eqb_OK : assgn_tag -> assgn_tag -> Bool.reflectval coq_HB_unnamed_factory_13 : assgn_tag Eqtype.Coq_hasDecEq.axioms_val expr_assgn_tag__canonical__eqtype_Equality : Eqtype.Equality.coq_typetype 'asm_op instr_r = | Cassgn of lval * assgn_tag * Type.stype * pexpr| Copn of lval list * assgn_tag * 'asm_op Sopn.sopn * pexpr list| Csyscall of lval list * BinNums.positive Syscall_t.syscall_t * pexpr list| Cif of pexpr * 'asm_op instr list * 'asm_op instr list| Cfor of var_i * range * 'asm_op instr list| Cwhile of align * 'asm_op instr list * pexpr * instr_info * 'asm_op instr list| Ccall of lval list * Var0.funname * pexpr list
val cmd_rect_aux :
'a1 Sopn.asmOp ->
'a3 ->
('a1 instr -> 'a1 instr list -> 'a2 -> 'a3 -> 'a3) ->
('a1 instr -> 'a2) ->
'a1 instr list ->
'a3val instr_Rect :
'a1 Sopn.asmOp ->
('a1 instr_r -> instr_info -> 'a2 -> 'a3) ->
'a4 ->
('a1 instr -> 'a1 instr list -> 'a3 -> 'a4 -> 'a4) ->
(lval -> assgn_tag -> Type.stype -> pexpr -> 'a2) ->
(lval list -> assgn_tag -> 'a1 Sopn.sopn -> pexpr list -> 'a2) ->
(lval list -> BinNums.positive Syscall_t.syscall_t -> pexpr list -> 'a2) ->
(pexpr -> 'a1 instr list -> 'a1 instr list -> 'a4 -> 'a4 -> 'a2) ->
(var_i -> dir -> pexpr -> pexpr -> 'a1 instr list -> 'a4 -> 'a2) ->
(align ->
'a1 instr list ->
pexpr ->
instr_info ->
'a1 instr list ->
'a4 ->
'a4 ->
'a2) ->
(lval list -> Var0.funname -> pexpr list -> 'a2) ->
'a1 instr ->
'a3val instr_r_Rect :
'a1 Sopn.asmOp ->
('a1 instr_r -> instr_info -> 'a2 -> 'a3) ->
'a4 ->
('a1 instr -> 'a1 instr list -> 'a3 -> 'a4 -> 'a4) ->
(lval -> assgn_tag -> Type.stype -> pexpr -> 'a2) ->
(lval list -> assgn_tag -> 'a1 Sopn.sopn -> pexpr list -> 'a2) ->
(lval list -> BinNums.positive Syscall_t.syscall_t -> pexpr list -> 'a2) ->
(pexpr -> 'a1 instr list -> 'a1 instr list -> 'a4 -> 'a4 -> 'a2) ->
(var_i -> dir -> pexpr -> pexpr -> 'a1 instr list -> 'a4 -> 'a2) ->
(align ->
'a1 instr list ->
pexpr ->
instr_info ->
'a1 instr list ->
'a4 ->
'a4 ->
'a2) ->
(lval list -> Var0.funname -> pexpr list -> 'a2) ->
'a1 instr_r ->
'a2val cmd_rect :
'a1 Sopn.asmOp ->
('a1 instr_r -> instr_info -> 'a2 -> 'a3) ->
'a4 ->
('a1 instr -> 'a1 instr list -> 'a3 -> 'a4 -> 'a4) ->
(lval -> assgn_tag -> Type.stype -> pexpr -> 'a2) ->
(lval list -> assgn_tag -> 'a1 Sopn.sopn -> pexpr list -> 'a2) ->
(lval list -> BinNums.positive Syscall_t.syscall_t -> pexpr list -> 'a2) ->
(pexpr -> 'a1 instr list -> 'a1 instr list -> 'a4 -> 'a4 -> 'a2) ->
(var_i -> dir -> pexpr -> pexpr -> 'a1 instr list -> 'a4 -> 'a2) ->
(align ->
'a1 instr list ->
pexpr ->
instr_info ->
'a1 instr list ->
'a4 ->
'a4 ->
'a2) ->
(lval list -> Var0.funname -> pexpr list -> 'a2) ->
'a1 instr list ->
'a4module type FunInfoT = sig ... endtype fun_info = FInfo.tval entry_info_of_fun_info : fun_info -> instr_infoval ret_info_of_fun_info : fun_info -> instr_infotype extra_fun_t = __type extra_prog_t = __type extra_val_t = __type ('asm_op, 'extra_fun_t) _fundef = {f_info : fun_info;f_tyin : Type.stype list;f_params : var_i list;f_body : 'asm_op instr list;f_tyout : Type.stype list;f_res : var_i list;f_extra : 'extra_fun_t;
}val f_info : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> fun_infoval f_tyin : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> Type.stype listval f_params : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> var_i listval f_body : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> 'a1 instr listval f_tyout : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> Type.stype listval f_res : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> var_i listval f_extra : 'a1 Sopn.asmOp -> ('a1, 'a2) _fundef -> 'a2type ('asm_op, 'extra_fun_t) _fun_decl =
Var0.funname * ('asm_op, 'extra_fun_t) _fundeftype ('asm_op, 'extra_fun_t, 'extra_prog_t) _prog = {p_funcs : ('asm_op, 'extra_fun_t) _fun_decl list;p_globs : Global.glob_decl list;p_extra : 'extra_prog_t;
}val p_funcs :
'a1 Sopn.asmOp ->
('a1, 'a2, 'a3) _prog ->
('a1, 'a2) _fun_decl listval p_globs : 'a1 Sopn.asmOp -> ('a1, 'a2, 'a3) _prog -> Global.glob_decl listval p_extra : 'a1 Sopn.asmOp -> ('a1, 'a2, 'a3) _prog -> 'a3type 'asm_op fundef = ('asm_op, extra_fun_t) _fundeftype function_signature = Type.stype list * Type.stype listval signature_of_fundef :
'a1 Sopn.asmOp ->
progT ->
'a1 fundef ->
function_signaturetype 'asm_op fun_decl = Var0.funname * 'asm_op fundeftype 'asm_op prog = ('asm_op, extra_fun_t, extra_prog_t) _progval coq_Build_prog :
'a1 Sopn.asmOp ->
progT ->
('a1, extra_fun_t) _fun_decl list ->
Global.glob_decl list ->
extra_prog_t ->
'a1 progval progUnit : progTtype 'asm_op ufundef = 'asm_op fundeftype 'asm_op ufun_decl = 'asm_op fun_decltype 'asm_op ufun_decls = 'asm_op fun_decl listtype 'asm_op uprog = 'asm_op progtype 'asm_op _ufundef = ('asm_op, unit) _fundeftype 'asm_op _ufun_decl = ('asm_op, unit) _fun_decltype 'asm_op _ufun_decls = ('asm_op, unit) _fun_decl listtype 'asm_op _uprog = ('asm_op, unit, unit) _progval to_uprog : 'a1 Sopn.asmOp -> 'a1 _uprog -> 'a1 uprogval saved_stack_beq : saved_stack -> saved_stack -> boolval saved_stack_eq_axiom : saved_stack Eqtype.eq_axiomval coq_HB_unnamed_factory_15 : saved_stack Eqtype.Coq_hasDecEq.axioms_val expr_saved_stack__canonical__eqtype_Equality : Eqtype.Equality.coq_typetype return_address_location = | RAnone| RAreg of Var0.Var.var * Var0.Var.var option| RAstack of Var0.Var.var option * Var0.Var.var option * BinNums.coq_Z * Var0.Var.var option
val is_RAnone : return_address_location -> boolval is_RAstack : return_address_location -> boolval return_address_location_beq :
return_address_location ->
return_address_location ->
boolval return_address_location_eq_axiom : return_address_location Eqtype.eq_axiomval coq_HB_unnamed_factory_17 :
return_address_location Eqtype.Coq_hasDecEq.axioms_val expr_return_address_location__canonical__eqtype_Equality :
Eqtype.Equality.coq_typetype stk_fun_extra = {sf_align : Wsize.wsize;sf_stk_sz : BinNums.coq_Z;sf_stk_ioff : BinNums.coq_Z;sf_stk_extra_sz : BinNums.coq_Z;sf_stk_max : BinNums.coq_Z;sf_max_call_depth : BinNums.coq_Z;sf_to_save : (Var0.Var.var * BinNums.coq_Z) list;sf_save_stack : saved_stack;sf_return_address : return_address_location;sf_align_args : Wsize.wsize list;
}val sf_align : stk_fun_extra -> Wsize.wsizeval sf_stk_sz : stk_fun_extra -> BinNums.coq_Zval sf_stk_ioff : stk_fun_extra -> BinNums.coq_Zval sf_stk_extra_sz : stk_fun_extra -> BinNums.coq_Zval sf_stk_max : stk_fun_extra -> BinNums.coq_Zval sf_max_call_depth : stk_fun_extra -> BinNums.coq_Zval sf_to_save : stk_fun_extra -> (Var0.Var.var * BinNums.coq_Z) listval sf_save_stack : stk_fun_extra -> saved_stackval sf_return_address : stk_fun_extra -> return_address_locationval sf_align_args : stk_fun_extra -> Wsize.wsize listtype sprog_extra = {sp_rsp : Ident.Ident.ident;sp_rip : Ident.Ident.ident;sp_globs : Ssralg.GRing.ComRing.sort list;sp_glob_names : ((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) list;
}val sp_rsp : sprog_extra -> Ident.Ident.identval sp_rip : sprog_extra -> Ident.Ident.identval sp_globs : sprog_extra -> Ssralg.GRing.ComRing.sort listval sp_glob_names :
sprog_extra ->
((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) listval progStack : Wsize.coq_PointerData -> progTtype 'asm_op sfundef = 'asm_op fundeftype 'asm_op sfun_decl = 'asm_op fun_decltype 'asm_op sfun_decls = 'asm_op fun_decl listtype 'asm_op sprog = 'asm_op progtype 'asm_op _sfundef = ('asm_op, stk_fun_extra) _fundeftype 'asm_op _sfun_decl = ('asm_op, stk_fun_extra) _fun_decltype 'asm_op _sfun_decls = ('asm_op, stk_fun_extra) _fun_decl listtype 'asm_op _sprog = ('asm_op, stk_fun_extra, sprog_extra) _progval to_sprog :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
'a1 _sprog ->
'a1 sprogval with_body :
'a1 Sopn.asmOp ->
('a1, 'a2) _fundef ->
'a1 instr list ->
('a1, 'a2) _fundefval swith_extra :
Wsize.coq_PointerData ->
'a1 Sopn.asmOp ->
Wsize.coq_PointerData ->
'a1 ufundef ->
extra_fun_t ->
'a1 sfundefval is_const : pexpr -> BinNums.coq_Z optionval is_bool : pexpr -> bool optionval is_Pload : pexpr -> boolval is_load : pexpr -> boolval is_array_init : pexpr -> boolval cast_w : Wsize.wsize -> pexpr -> pexprval cast_ptr : Wsize.coq_PointerData -> pexpr -> pexprval cast_const : Wsize.coq_PointerData -> BinNums.coq_Z -> pexprval eword_of_int : Wsize.wsize -> BinNums.coq_Z -> pexprval wconst : Wsize.wsize -> Ssralg.GRing.ComRing.sort -> pexprval is_wconst : Wsize.wsize -> pexpr -> Ssralg.GRing.ComRing.sort optionval is_wconst_of_size : Eqtype.Equality.sort -> pexpr -> BinNums.coq_Z optionval vrv_rec : Var0.SvExtra.Sv.t -> lval -> Var0.SvExtra.Sv.tval vrvs_rec : Var0.SvExtra.Sv.t -> lval list -> Var0.SvExtra.Sv.tval vrv : lval -> Var0.SvExtra.Sv.tval vrvs : lval list -> Var0.SvExtra.Sv.tval lv_write_mem : lval -> boolval write_i_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr_r ->
Var0.SvExtra.Sv.tval write_I_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr ->
Var0.SvExtra.Sv.tval write_i : 'a1 Sopn.asmOp -> 'a1 instr_r -> Var0.SvExtra.Sv.tval write_I : 'a1 Sopn.asmOp -> 'a1 instr -> Var0.SvExtra.Sv.tval write_c_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr list ->
Var0.SvExtra.Sv.tval write_c : 'a1 Sopn.asmOp -> 'a1 instr list -> Var0.SvExtra.Sv.tval use_mem : pexpr -> boolval read_gvar : gvar -> Var0.SvExtra.Sv.tval read_e_rec : Var0.SvExtra.Sv.t -> pexpr -> Var0.SvExtra.Sv.tval read_e : pexpr -> Var0.SvExtra.Sv.tval read_es_rec : Var0.SvExtra.Sv.t -> pexpr list -> Var0.SvExtra.Sv.tval read_es : pexpr list -> Var0.SvExtra.Sv.tval read_rv_rec : Var0.SvExtra.Sv.t -> lval -> Var0.SvExtra.Sv.tval read_rv : lval -> Var0.SvExtra.Sv.tval read_rvs_rec : Var0.SvExtra.Sv.t -> lval list -> Var0.SvExtra.Sv.tval read_rvs : lval list -> Var0.SvExtra.Sv.tval read_i_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr_r ->
Var0.SvExtra.Sv.tval read_I_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr ->
Var0.SvExtra.Sv.tval read_c_rec :
'a1 Sopn.asmOp ->
Var0.SvExtra.Sv.t ->
'a1 instr list ->
Var0.SvExtra.Sv.tval read_i : 'a1 Sopn.asmOp -> 'a1 instr_r -> Var0.SvExtra.Sv.tval read_I : 'a1 Sopn.asmOp -> 'a1 instr -> Var0.SvExtra.Sv.tval read_c : 'a1 Sopn.asmOp -> 'a1 instr list -> Var0.SvExtra.Sv.tval vars_I : 'a1 Sopn.asmOp -> 'a1 instr -> Var0.SvExtra.Sv.tval vars_c : 'a1 Sopn.asmOp -> 'a1 instr list -> Var0.SvExtra.Sv.tval vars_lval : lval -> Var0.SvExtra.Sv.tval vars_lvals : lval list -> Var0.SvExtra.Sv.tval vars_l : var_i list -> Var0.SvExtra.Sv.tval vars_fd : 'a1 Sopn.asmOp -> progT -> 'a1 fundef -> Var0.SvExtra.Sv.tval vars_p : 'a1 Sopn.asmOp -> progT -> 'a1 fun_decl list -> Var0.SvExtra.Sv.tval to_lvals : Var0.Var.var list -> lval listval is_false : pexpr -> boolval is_zero : Eqtype.Equality.sort -> pexpr -> bool sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>