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/Riscv_instr_decl/index.html
Module Jasmin.Riscv_instr_decl
type __ = Obj.tmodule E : sig ... endval pp_name :
string ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.asm_arg
list ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.pp_asm_opval coq_RTypeInstruction :
Wsize.wsize ->
Sem_type.sem_tuple Sem_type.sem_prod ->
string ->
string ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval coq_ITypeInstruction :
Arch_decl.caimm_checker_s ->
Wsize.wsize ->
Sem_type.sem_tuple Sem_type.sem_prod ->
string ->
string ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval coq_ITypeInstruction_12s :
Wsize.wsize ->
Sem_type.sem_tuple Sem_type.sem_prod ->
string ->
string ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval coq_ITypeInstruction_5u :
Wsize.wsize ->
Sem_type.sem_tuple Sem_type.sem_prod ->
string ->
string ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_ttype riscv_op = | ADD| ADDI| SUB| SLT| SLTI| SLTU| SLTIU| AND| ANDI| OR| ORI| XOR| XORI| SLL| SLLI| SRL| SRLI| SRA| SRAI| MV| LA| LI| NOT| NEG| LOAD of Wsize.signedness * Wsize.wsize| STORE of Wsize.wsize| MUL| MULH| MULHU| MULHSU| DIV| DIVU| REM| REMU
val riscv_op_rect :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(Wsize.signedness -> Wsize.wsize -> 'a1) ->
(Wsize.wsize -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
riscv_op ->
'a1val riscv_op_rec :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(Wsize.signedness -> Wsize.wsize -> 'a1) ->
(Wsize.wsize -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
riscv_op ->
'a1type is_riscv_op = | Coq_is_ADD| Coq_is_ADDI| Coq_is_SUB| Coq_is_SLT| Coq_is_SLTI| Coq_is_SLTU| Coq_is_SLTIU| Coq_is_AND| Coq_is_ANDI| Coq_is_OR| Coq_is_ORI| Coq_is_XOR| Coq_is_XORI| Coq_is_SLL| Coq_is_SLLI| Coq_is_SRL| Coq_is_SRLI| Coq_is_SRA| Coq_is_SRAI| Coq_is_MV| Coq_is_LA| Coq_is_LI| Coq_is_NOT| Coq_is_NEG| Coq_is_LOAD of Wsize.signedness * Wsize.is_signedness * Wsize.wsize * Wsize.is_wsize| Coq_is_STORE of Wsize.wsize * Wsize.is_wsize| Coq_is_MUL| Coq_is_MULH| Coq_is_MULHU| Coq_is_MULHSU| Coq_is_DIV| Coq_is_DIVU| Coq_is_REM| Coq_is_REMU
val is_riscv_op_rect :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
riscv_op ->
is_riscv_op ->
'a1val is_riscv_op_rec :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
riscv_op ->
is_riscv_op ->
'a1val riscv_op_tag : riscv_op -> BinNums.positiveval is_riscv_op_inhab : riscv_op -> is_riscv_opval is_riscv_op_functor : riscv_op -> is_riscv_op -> is_riscv_optype box_riscv_op_LOAD = {coq_Box_riscv_op_LOAD_0 : Wsize.signedness;coq_Box_riscv_op_LOAD_1 : Wsize.wsize;
}val coq_Box_riscv_op_LOAD_0 : box_riscv_op_LOAD -> Wsize.signednessval coq_Box_riscv_op_LOAD_1 : box_riscv_op_LOAD -> Wsize.wsizetype box_riscv_op_STORE = Wsize.wsizeval coq_Box_riscv_op_STORE_0 : box_riscv_op_STORE -> Wsize.wsizetype riscv_op_fields_t = __val riscv_op_fields : riscv_op -> riscv_op_fields_tval riscv_op_construct :
BinNums.positive ->
riscv_op_fields_t ->
riscv_op optionval riscv_op_induction :
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
(Wsize.signedness ->
Wsize.is_signedness ->
Wsize.wsize ->
Wsize.is_wsize ->
'a1) ->
(Wsize.wsize -> Wsize.is_wsize -> 'a1) ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
'a1 ->
riscv_op ->
is_riscv_op ->
'a1val riscv_op_eqb_fields :
(riscv_op -> riscv_op -> bool) ->
BinNums.positive ->
riscv_op_fields_t ->
riscv_op_fields_t ->
boolval riscv_op_eqb_OK : riscv_op -> riscv_op -> Bool.reflectval eqTC_riscv_op : riscv_op Utils0.eqTypeCval riscv_op_eqType : Eqtype.Equality.coq_typeval riscv_add_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_ADD_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_ADD : string * riscv_op Sopn.prim_constructorval riscv_ADDI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_ADDI : string * riscv_op Sopn.prim_constructorval riscv_sub_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_SUB_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SUB : string * riscv_op Sopn.prim_constructorval riscv_slt_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_SLT_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLT : string * riscv_op Sopn.prim_constructorval riscv_SLTI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLTI : string * riscv_op Sopn.prim_constructorval riscv_sltu_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_SLTU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLTU : string * riscv_op Sopn.prim_constructorval riscv_SLTIU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLTIU : string * riscv_op Sopn.prim_constructorval riscv_and_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_AND_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_AND : string * riscv_op Sopn.prim_constructorval riscv_ANDI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_ANDI : string * riscv_op Sopn.prim_constructorval riscv_or_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_OR_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_OR : string * riscv_op Sopn.prim_constructorval riscv_ORI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_ORI : string * riscv_op Sopn.prim_constructorval riscv_xor_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_XOR_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_XOR : string * riscv_op Sopn.prim_constructorval riscv_XORI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_XORI : string * riscv_op Sopn.prim_constructorval riscv_sll_semi :
Sem_type.sem_tuple ->
Ssralg.GRing.ComRing.sort ->
Sem_type.sem_tupleval riscv_SLL_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLL : string * riscv_op Sopn.prim_constructorval riscv_SLLI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SLLI : string * riscv_op Sopn.prim_constructorval riscv_srl_semi :
Sem_type.sem_tuple ->
Ssralg.GRing.ComRing.sort ->
Sem_type.sem_tupleval riscv_SRL_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SRL : string * riscv_op Sopn.prim_constructorval riscv_SRLI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SRLI : string * riscv_op Sopn.prim_constructorval riscv_sra_semi :
Sem_type.sem_tuple ->
Ssralg.GRing.ComRing.sort ->
Sem_type.sem_tupleval riscv_SRA_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SRA : string * riscv_op Sopn.prim_constructorval riscv_SRAI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_SRAI : string * riscv_op Sopn.prim_constructorval riscv_MV_semi : Sem_type.sem_tuple -> Sem_type.sem_tupleval riscv_MV_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_MV : string * riscv_op Sopn.prim_constructorval riscv_LA_semi : Sem_type.sem_tuple -> Sem_type.sem_tupleval riscv_LA_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_LA : string * riscv_op Sopn.prim_constructorval riscv_LI_semi : Sem_type.sem_tuple -> Sem_type.sem_tupleval riscv_LI_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_LI : string * riscv_op Sopn.prim_constructorval riscv_NOT_semi : Sem_type.sem_tuple -> Sem_type.sem_tupleval riscv_NOT_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_NOT : string * riscv_op Sopn.prim_constructorval riscv_NEG_semi : Sem_type.sem_tuple -> Sem_type.sem_tupleval riscv_NEG_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_NEG : string * riscv_op Sopn.prim_constructorval string_of_sign : Wsize.signedness -> stringval string_of_size : Wsize.wsize -> stringval pp_sign_sz : string -> Wsize.signedness -> Wsize.wsize -> unit -> stringval riscv_extend_semi :
Wsize.signedness ->
Wsize.wsize ->
Wsize.wsize ->
Ssralg.GRing.ComRing.sort ->
Ssralg.GRing.ComRing.sortval riscv_LOAD_instr :
Wsize.signedness ->
Wsize.wsize ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval primS :
(Wsize.signedness -> Wsize.wsize -> riscv_op) ->
riscv_op Sopn.prim_constructorval prim_LOAD : string * riscv_op Sopn.prim_constructorval riscv_STORE_instr :
Wsize.wsize ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_STORE : string * riscv_op Sopn.prim_constructorval riscv_mul_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_MUL_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_MUL : string * riscv_op Sopn.prim_constructorval riscv_mulh_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_MULH_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_MULH : string * riscv_op Sopn.prim_constructorval riscv_mulhu_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_MULHU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_MULHU : string * riscv_op Sopn.prim_constructorval riscv_mulhsu_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_MULHSU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_MULHSU : string * riscv_op Sopn.prim_constructorval riscv_div_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_DIV_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_DIV : string * riscv_op Sopn.prim_constructorval riscv_divu_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_DIVU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_DIVU : string * riscv_op Sopn.prim_constructorval riscv_rem_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_REM_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_REM : string * riscv_op Sopn.prim_constructorval riscv_remu_semi :
Sem_type.sem_tuple ->
Sem_type.sem_tuple ->
Sem_type.sem_tupleval riscv_REMU_instr :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval prim_REMU : string * riscv_op Sopn.prim_constructorval riscv_instr_desc :
riscv_op ->
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt)
Arch_decl.instr_desc_tval riscv_prim_string : (string * riscv_op Sopn.prim_constructor) listval riscv_op_decl :
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt,
riscv_op)
Arch_decl.asm_op_decltype riscv_prog =
(Riscv_decl.register,
Arch_utils.empty,
Arch_utils.empty,
Arch_utils.empty,
Riscv_decl.condt,
riscv_op)
Arch_decl.asm_prog sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>