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/Arch_decl/index.html
Module Jasmin.Arch_decl
type __ = Obj.tval category : Type.stype -> 'a1 coq_ToString -> stringval _finC : Type.stype -> 'a1 coq_ToString -> 'a1 Utils0.finTypeCval to_string : Type.stype -> 'a1 coq_ToString -> 'a1 -> stringval rtype : Type.stype -> 'a1 coq_ToString -> Type.stypetype caimm_checker_s = | CAimmC_none| CAimmC_arm_shift_amout of Shift_kind.shift_kind| CAimmC_arm_wencoding of Arm_expand_imm.expected_wencoding| CAimmC_arm_0_8_16_24| CAimmC_riscv_12bits_signed| CAimmC_riscv_5bits_unsigned
val caimm_checker_s_rect :
'a1 ->
(Shift_kind.shift_kind -> 'a1) ->
(Arm_expand_imm.expected_wencoding -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
caimm_checker_s ->
'a1val caimm_checker_s_rec :
'a1 ->
(Shift_kind.shift_kind -> 'a1) ->
(Arm_expand_imm.expected_wencoding -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
caimm_checker_s ->
'a1type is_caimm_checker_s = | Coq_is_CAimmC_none| Coq_is_CAimmC_arm_shift_amout of Shift_kind.shift_kind * Shift_kind.is_shift_kind| Coq_is_CAimmC_arm_wencoding of Arm_expand_imm.expected_wencoding * Arm_expand_imm.is_expected_wencoding| Coq_is_CAimmC_arm_0_8_16_24| Coq_is_CAimmC_riscv_12bits_signed| Coq_is_CAimmC_riscv_5bits_unsigned
val is_caimm_checker_s_rect :
'a1 ->
(Shift_kind.shift_kind -> Shift_kind.is_shift_kind -> 'a1) ->
(Arm_expand_imm.expected_wencoding ->
Arm_expand_imm.is_expected_wencoding ->
'a1) ->
'a1 ->
'a1 ->
'a1 ->
caimm_checker_s ->
is_caimm_checker_s ->
'a1val is_caimm_checker_s_rec :
'a1 ->
(Shift_kind.shift_kind -> Shift_kind.is_shift_kind -> 'a1) ->
(Arm_expand_imm.expected_wencoding ->
Arm_expand_imm.is_expected_wencoding ->
'a1) ->
'a1 ->
'a1 ->
'a1 ->
caimm_checker_s ->
is_caimm_checker_s ->
'a1val caimm_checker_s_tag : caimm_checker_s -> BinNums.positiveval is_caimm_checker_s_inhab : caimm_checker_s -> is_caimm_checker_sval is_caimm_checker_s_functor :
caimm_checker_s ->
is_caimm_checker_s ->
is_caimm_checker_stype box_caimm_checker_s_CAimmC_arm_shift_amout = Shift_kind.shift_kindval coq_Box_caimm_checker_s_CAimmC_arm_shift_amout_0 :
box_caimm_checker_s_CAimmC_arm_shift_amout ->
Shift_kind.shift_kindtype box_caimm_checker_s_CAimmC_arm_wencoding =
Arm_expand_imm.expected_wencodingval coq_Box_caimm_checker_s_CAimmC_arm_wencoding_0 :
box_caimm_checker_s_CAimmC_arm_wencoding ->
Arm_expand_imm.expected_wencodingtype caimm_checker_s_fields_t = __val caimm_checker_s_fields : caimm_checker_s -> caimm_checker_s_fields_tval caimm_checker_s_construct :
BinNums.positive ->
caimm_checker_s_fields_t ->
caimm_checker_s optionval caimm_checker_s_induction :
'a1 ->
(Shift_kind.shift_kind -> Shift_kind.is_shift_kind -> 'a1) ->
(Arm_expand_imm.expected_wencoding ->
Arm_expand_imm.is_expected_wencoding ->
'a1) ->
'a1 ->
'a1 ->
'a1 ->
caimm_checker_s ->
is_caimm_checker_s ->
'a1val caimm_checker_s_eqb_fields :
(caimm_checker_s -> caimm_checker_s -> bool) ->
BinNums.positive ->
caimm_checker_s_fields_t ->
caimm_checker_s_fields_t ->
boolval caimm_checker_s_eqb : caimm_checker_s -> caimm_checker_s -> boolval caimm_checker_s_eqb_OK : caimm_checker_s -> caimm_checker_s -> Bool.reflectval caimm_checker_s_eqb_OK_sumbool : caimm_checker_s -> caimm_checker_s -> boolval coq_HB_unnamed_factory_1 : caimm_checker_s Eqtype.Coq_hasDecEq.axioms_val arch_decl_caimm_checker_s__canonical__eqtype_Equality :
Eqtype.Equality.coq_typetype ('reg, 'regx, 'xreg, 'rflag, 'cond) arch_decl = {reg_size : Wsize.wsize;xreg_size : Wsize.wsize;cond_eqC : 'cond Utils0.eqTypeC;toS_r : 'reg coq_ToString;toS_rx : 'regx coq_ToString;toS_x : 'xreg coq_ToString;toS_f : 'rflag coq_ToString;ad_rsp : 'reg;ad_fcp : Flag_combination.coq_FlagCombinationParams;check_CAimm : caimm_checker_s -> Wsize.wsize -> Ssralg.GRing.ComRing.sort -> bool;
}val reg_size : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Wsize.wsizeval xreg_size : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Wsize.wsizeval cond_eqC : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a5 Utils0.eqTypeCval toS_r : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a1 coq_ToStringval toS_rx : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a2 coq_ToStringval toS_x : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a3 coq_ToStringval toS_f : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a4 coq_ToStringval ad_rsp : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> 'a1val ad_fcp :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Flag_combination.coq_FlagCombinationParamsval check_CAimm :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
caimm_checker_s ->
Wsize.wsize ->
Ssralg.GRing.ComRing.sort ->
boolval arch_pd : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Wsize.coq_PointerDataval arch_msfsz : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Wsize.coq_MSFsizeval mk_ptr :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Ident.Ident.ident ->
Var0.Var.varval sreg : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Type.stypetype ('reg, 'regx, 'xreg, 'rflag, 'cond) wreg = Sem_type.sem_tval sxreg : ('a1, 'a2, 'a3, 'a4, 'a5) arch_decl -> Type.stypetype ('reg, 'regx, 'xreg, 'rflag, 'cond) wxreg = Sem_type.sem_ttype ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_address = {ad_disp : Ssralg.GRing.ComRing.sort;ad_base : ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t option;ad_scale : Datatypes.nat;ad_offset : ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t option;
}val ad_disp :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
Ssralg.GRing.ComRing.sortval ad_base :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t optionval ad_scale :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
Datatypes.natval ad_offset :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t optiontype ('reg, 'regx, 'xreg, 'rflag, 'cond) address = | Areg of ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_address| Arip of Ssralg.GRing.ComRing.sort
val reg_address_beq :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address ->
boolval reg_address_eq_axiom :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address Eqtype.eq_axiomval coq_HB_unnamed_factory_3 :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_address Eqtype.Coq_hasDecEq.axioms_val arch_decl_reg_address__canonical__eqtype_Equality :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Eqtype.Equality.coq_typeval address_eq_axiom :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) address Eqtype.eq_axiomval coq_HB_unnamed_factory_5 :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) address Eqtype.Coq_hasDecEq.axioms_val arch_decl_address__canonical__eqtype_Equality :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Eqtype.Equality.coq_typetype ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_arg = | Condt of ('reg, 'regx, 'xreg, 'rflag, 'cond) cond_t| Imm of Wsize.wsize * Ssralg.GRing.ComRing.sort| Reg of ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t| Regx of ('reg, 'regx, 'xreg, 'rflag, 'cond) regx_t| Addr of ('reg, 'regx, 'xreg, 'rflag, 'cond) address| XReg of ('reg, 'regx, 'xreg, 'rflag, 'cond) xreg_t
type ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_args =
('reg, 'regx, 'xreg, 'rflag, 'cond) asm_arg listval asm_arg_eq_axiom :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_arg Eqtype.eq_axiomval coq_HB_unnamed_factory_7 :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_arg Eqtype.Coq_hasDecEq.axioms_val arch_decl_asm_arg__canonical__eqtype_Equality :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Eqtype.Equality.coq_typeval msb_flag_rect : 'a1 -> 'a1 -> msb_flag -> 'a1val msb_flag_rec : 'a1 -> 'a1 -> msb_flag -> 'a1val is_msb_flag_rect : 'a1 -> 'a1 -> msb_flag -> is_msb_flag -> 'a1val is_msb_flag_rec : 'a1 -> 'a1 -> msb_flag -> is_msb_flag -> 'a1val msb_flag_tag : msb_flag -> BinNums.positiveval is_msb_flag_inhab : msb_flag -> is_msb_flagval is_msb_flag_functor : msb_flag -> is_msb_flag -> is_msb_flagtype msb_flag_fields_t = __val msb_flag_fields : msb_flag -> msb_flag_fields_tval msb_flag_construct :
BinNums.positive ->
msb_flag_fields_t ->
msb_flag optionval msb_flag_induction : 'a1 -> 'a1 -> msb_flag -> is_msb_flag -> 'a1val msb_flag_eqb_fields :
(msb_flag -> msb_flag -> bool) ->
BinNums.positive ->
msb_flag_fields_t ->
msb_flag_fields_t ->
boolval msb_flag_eqb_OK : msb_flag -> msb_flag -> Bool.reflectval coq_HB_unnamed_factory_9 : msb_flag Eqtype.Coq_hasDecEq.axioms_val arch_decl_msb_flag__canonical__eqtype_Equality : Eqtype.Equality.coq_typeval implicit_arg_beq :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) implicit_arg ->
('a1, 'a2, 'a3, 'a4, 'a5) implicit_arg ->
boolval implicit_arg_eq_axiom :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) implicit_arg Eqtype.eq_axiomval coq_HB_unnamed_factory_11 :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) implicit_arg Eqtype.Coq_hasDecEq.axioms_val arch_decl_implicit_arg__canonical__eqtype_Equality :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Eqtype.Equality.coq_typetype ('reg, 'regx, 'xreg, 'rflag, 'cond) arg_desc = | ADImplicit of ('reg, 'regx, 'xreg, 'rflag, 'cond) implicit_arg| ADExplicit of addr_kind * Datatypes.nat * ('reg, 'regx, 'xreg, 'rflag, 'cond) arg_constrained_register
val coq_Ea :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Datatypes.nat ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_descval coq_Eu :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Datatypes.nat ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_descval coq_Ec :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Datatypes.nat ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_descval coq_Ef :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Datatypes.nat ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_descval check_oreg :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_constrained_register ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_arg ->
booltype arg_kind = | CAcond| CAreg| CAregx| CAxmm| CAmem of bool| CAimm of caimm_checker_s * Wsize.wsize
val arg_kind_rect :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(bool -> 'a1) ->
(caimm_checker_s -> Wsize.wsize -> 'a1) ->
arg_kind ->
'a1val arg_kind_rec :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(bool -> 'a1) ->
(caimm_checker_s -> Wsize.wsize -> 'a1) ->
arg_kind ->
'a1type is_arg_kind = | Coq_is_CAcond| Coq_is_CAreg| Coq_is_CAregx| Coq_is_CAxmm| Coq_is_CAmem of bool * Param1.Coq_exports.is_bool| Coq_is_CAimm of caimm_checker_s * is_caimm_checker_s * Wsize.wsize * Wsize.is_wsize
val is_arg_kind_rect :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
(caimm_checker_s ->
is_caimm_checker_s ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
arg_kind ->
is_arg_kind ->
'a1val is_arg_kind_rec :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
(caimm_checker_s ->
is_caimm_checker_s ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
arg_kind ->
is_arg_kind ->
'a1val arg_kind_tag : arg_kind -> BinNums.positiveval is_arg_kind_inhab : arg_kind -> is_arg_kindval is_arg_kind_functor : arg_kind -> is_arg_kind -> is_arg_kindval coq_Box_arg_kind_CAmem_0 : box_arg_kind_CAmem -> booltype box_arg_kind_CAimm = {coq_Box_arg_kind_CAimm_0 : caimm_checker_s;coq_Box_arg_kind_CAimm_1 : Wsize.wsize;
}val coq_Box_arg_kind_CAimm_0 : box_arg_kind_CAimm -> caimm_checker_sval coq_Box_arg_kind_CAimm_1 : box_arg_kind_CAimm -> Wsize.wsizetype arg_kind_fields_t = __val arg_kind_fields : arg_kind -> arg_kind_fields_tval arg_kind_construct :
BinNums.positive ->
arg_kind_fields_t ->
arg_kind optionval arg_kind_induction :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
(caimm_checker_s ->
is_caimm_checker_s ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
arg_kind ->
is_arg_kind ->
'a1val arg_kind_eqb_fields :
(arg_kind -> arg_kind -> bool) ->
BinNums.positive ->
arg_kind_fields_t ->
arg_kind_fields_t ->
boolval arg_kind_eqb_OK : arg_kind -> arg_kind -> Bool.reflectval coq_HB_unnamed_factory_13 : arg_kind Eqtype.Coq_hasDecEq.axioms_val arch_decl_arg_kind__canonical__eqtype_Equality : Eqtype.Equality.coq_typetype arg_kinds = arg_kind listtype args_kinds = arg_kinds listtype i_args_kinds = args_kinds listval check_args_kinds :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_args ->
args_kinds ->
boolval check_i_args_kinds :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
i_args_kinds ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_args ->
boolval check_arg_dest :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc ->
Type.stype ->
booltype ('reg, 'regx, 'xreg, 'rflag, 'cond) pp_asm_op_ext = | PP_error| PP_name| PP_iname of Wsize.wsize| PP_iname2 of string * Wsize.wsize * Wsize.wsize| PP_viname of Wsize.velem * bool| PP_viname2 of Wsize.velem * Wsize.velem| PP_ct of ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_arg
type ('reg, 'regx, 'xreg, 'rflag, 'cond) pp_asm_op = {pp_aop_name : string;pp_aop_ext : ('reg, 'regx, 'xreg, 'rflag, 'cond) pp_asm_op_ext;pp_aop_args : (Wsize.wsize * ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_arg) list;
}val pp_aop_ext :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) pp_asm_op ->
('a1, 'a2, 'a3, 'a4, 'a5) pp_asm_op_extval pp_aop_args :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) pp_asm_op ->
(Wsize.wsize * ('a1, 'a2, 'a3, 'a4, 'a5) asm_arg) listtype ('reg, 'regx, 'xreg, 'rflag, 'cond) instr_desc_t = {id_valid : bool;id_msb_flag : msb_flag;id_tin : Type.stype list;id_in : ('reg, 'regx, 'xreg, 'rflag, 'cond) arg_desc list;id_tout : Type.stype list;id_out : ('reg, 'regx, 'xreg, 'rflag, 'cond) arg_desc list;id_semi : Sem_type.sem_tuple Utils0.exec Sem_type.sem_prod;id_args_kinds : i_args_kinds;id_nargs : Datatypes.nat;id_str_jas : unit -> string;id_safe : Wsize.safe_cond list;id_pp_asm : ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_args -> ('reg, 'regx, 'xreg, 'rflag, 'cond) pp_asm_op;
}val id_valid :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
boolval id_msb_flag :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
msb_flagval id_tin :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
Type.stype listval id_in :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc listval id_tout :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
Type.stype listval id_out :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc listval id_semi :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
Sem_type.sem_tuple Utils0.exec Sem_type.sem_prodval id_args_kinds :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
i_args_kindsval id_nargs :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
Datatypes.natval id_str_jas :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
unit ->
stringval id_safe :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
Wsize.safe_cond listval id_pp_asm :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_t ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_args ->
('a1, 'a2, 'a3, 'a4, 'a5) pp_asm_optype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_op_decl = {_eqT : 'asm_op Utils0.eqTypeC;instr_desc_op : 'asm_op -> ('reg, 'regx, 'xreg, 'rflag, 'cond) instr_desc_t;prim_string : (string * 'asm_op Sopn.prim_constructor) list;
}val _eqT :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
'a6 Utils0.eqTypeCval instr_desc_op :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
'a6 ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_tval prim_string :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
(string * 'a6 Sopn.prim_constructor) listtype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_op_msb_t =
Wsize.wsize option * 'asm_opval extend_size : Wsize.wsize -> Type.stype -> Type.stypeval wextend_size :
Wsize.wsize ->
Type.stype ->
Sem_type.sem_ot ->
Sem_type.sem_otval extend_tuple :
Wsize.wsize ->
Type.stype list ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval apply_lprod :
('a1 -> 'a2) ->
__ list ->
'a1 Utils0.lprod ->
'a2 Utils0.lprodval is_not_CAmem : arg_kind -> boolval exclude_mem_args_kinds :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc ->
args_kinds ->
args_kindsval exclude_mem_i_args_kinds :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc ->
i_args_kinds ->
i_args_kindsval exclude_mem_aux :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
i_args_kinds ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc list ->
i_args_kindsval exclude_mem :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
i_args_kinds ->
('a1, 'a2, 'a3, 'a4, 'a5) arg_desc list ->
i_args_kindsval extend_sem :
Type.stype list ->
Type.stype list ->
Wsize.wsize ->
Sem_type.sem_tuple Utils0.exec Sem_type.sem_prod ->
Sem_type.sem_tuple Utils0.exec Sem_type.sem_prodval instr_desc :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_msb_t ->
('a1, 'a2, 'a3, 'a4, 'a5) instr_desc_ttype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_i_r = | ALIGN| LABEL of Label.label_kind * Label.label| STORELABEL of ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t * Label.label| JMP of Label.remote_label| JMPI of ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_arg| Jcc of Label.label * ('reg, 'regx, 'xreg, 'rflag, 'cond) cond_t| JAL of ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t * Label.remote_label| CALL of Label.remote_label| POPPC| AsmOp of ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_op_t' * ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_args| SysCall of BinNums.positive Syscall_t.syscall_t
type ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_i = {asmi_ii : Expr.instr_info;asmi_i : ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_i_r;
}val asmi_ii :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_i ->
Expr.instr_infoval asmi_i :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_i ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_i_rtype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_code =
('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_i listval asm_typed_reg_beq :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
boolval asm_typed_reg_eq_axiom :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg Eqtype.eq_axiomval coq_HB_unnamed_factory_15 :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg Eqtype.Coq_hasDecEq.axioms_val arch_decl_asm_typed_reg__canonical__eqtype_Equality :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
Eqtype.Equality.coq_typetype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_fundef = {asm_fd_align : Wsize.wsize;asm_fd_arg : ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_typed_reg list;asm_fd_body : ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_code;asm_fd_res : ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_typed_reg list;asm_fd_export : bool;asm_fd_total_stack : BinNums.coq_Z;asm_fd_align_args : Wsize.wsize list;
}val asm_fd_align :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
Wsize.wsizeval asm_fd_arg :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg listval asm_fd_body :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_codeval asm_fd_res :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg listval asm_fd_export :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
boolval asm_fd_total_stack :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
BinNums.coq_Zval asm_fd_align_args :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
Wsize.wsize listtype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_prog = {asm_globs : Ssralg.GRing.ComRing.sort list;asm_glob_names : ((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) list;asm_funcs : (Var0.funname * ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_fundef) list;
}val asm_globs :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_prog ->
Ssralg.GRing.ComRing.sort listval asm_glob_names :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_prog ->
((Var0.Var.var * Wsize.wsize) * BinNums.coq_Z) listval asm_funcs :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_prog ->
(Var0.funname * ('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef) listval is_ABReg :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
booltype ('reg, 'regx, 'xreg, 'rflag, 'cond) calling_convention = {callee_saved : ('reg, 'regx, 'xreg, 'rflag, 'cond) asm_typed_reg list;call_reg_args : ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t list;call_xreg_args : ('reg, 'regx, 'xreg, 'rflag, 'cond) xreg_t list;call_reg_ret : ('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t list;call_xreg_ret : ('reg, 'regx, 'xreg, 'rflag, 'cond) xreg_t list;
}val callee_saved :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg listval call_reg_args :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t listval call_xreg_args :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5) xreg_t listval call_reg_ret :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t listval call_xreg_ret :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5) xreg_t listval get_ARReg :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
('a1, 'a2, 'a3, 'a4, 'a5) reg_t optionval get_ARegX :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
('a1, 'a2, 'a3, 'a4, 'a5) regx_t optionval get_AXReg :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg ->
('a1, 'a2, 'a3, 'a4, 'a5) xreg_t optionval check_list :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
'a6 Utils0.eqTypeC ->
(('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg -> 'a6 option) ->
('a1, 'a2, 'a3, 'a4, 'a5) asm_typed_reg list ->
'a6 list ->
boolval check_call_conv :
('a1, 'a2, 'a3, 'a4, 'a5) arch_decl ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_decl ->
('a1, 'a2, 'a3, 'a4, 'a5) calling_convention ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_fundef ->
boolval rflagv_rect : (bool -> 'a1) -> 'a1 -> rflagv -> 'a1val rflagv_rec : (bool -> 'a1) -> 'a1 -> rflagv -> 'a1val is_rflagv_rect :
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
'a1 ->
rflagv ->
is_rflagv ->
'a1val is_rflagv_rec :
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
'a1 ->
rflagv ->
is_rflagv ->
'a1val rflagv_tag : rflagv -> BinNums.positiveval coq_Box_rflagv_Def_0 : box_rflagv_Def -> booltype rflagv_fields_t = __val rflagv_fields : rflagv -> rflagv_fields_tval rflagv_construct : BinNums.positive -> rflagv_fields_t -> rflagv optionval rflagv_induction :
(bool -> Param1.Coq_exports.is_bool -> 'a1) ->
'a1 ->
rflagv ->
is_rflagv ->
'a1val rflagv_eqb_fields :
(rflagv -> rflagv -> bool) ->
BinNums.positive ->
rflagv_fields_t ->
rflagv_fields_t ->
boolval rflagv_eqb_OK : rflagv -> rflagv -> Bool.reflectval coq_HB_unnamed_factory_17 : rflagv Eqtype.Coq_hasDecEq.axioms_val arch_decl_rflagv__canonical__eqtype_Equality : Eqtype.Equality.coq_typetype ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm = {_arch_decl : ('reg, 'regx, 'xreg, 'rflag, 'cond) arch_decl;_asm_op_decl : ('reg, 'regx, 'xreg, 'rflag, 'cond, 'asm_op) asm_op_decl;eval_cond : (('reg, 'regx, 'xreg, 'rflag, 'cond) reg_t -> Ssralg.GRing.ComRing.sort) -> (('reg, 'regx, 'xreg, 'rflag, 'cond) rflag_t -> bool Utils0.exec) -> ('reg, 'regx, 'xreg, 'rflag, 'cond) cond_t -> bool Utils0.exec;
}val _asm_op_decl :
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm ->
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm_op_declval eval_cond :
('a1, 'a2, 'a3, 'a4, 'a5, 'a6) asm ->
(('a1, 'a2, 'a3, 'a4, 'a5) reg_t -> Ssralg.GRing.ComRing.sort) ->
(('a1, 'a2, 'a3, 'a4, 'a5) rflag_t -> bool Utils0.exec) ->
('a1, 'a2, 'a3, 'a4, 'a5) cond_t ->
bool Utils0.exec sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>