package jasmin
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/Prog/index.html
Module Jasmin.Prog
Source
include module type of struct include CoreIdent end
Source
type 'len gety = 'len CoreIdent.gety =
| ETbool
| ETint
| ETword of Wsize.signedness option * Wsize.wsize
| ETarr of Wsize.wsize * 'len
Source
type +'len gvar = private 'len CoreIdent.gvar = {
v_name : Name.t;
v_id : uid;
v_kind : Wsize.v_kind;
v_ty : 'len gty;
v_dloc : L.t;
v_annot : Annotations.annotations;
}
module E = Expr
Source
type 'len gexpr =
| Pconst of Z.t
| Pbool of bool
| Parr_init of 'len
| Pvar of 'len ggvar
| Pget of Memory_model.aligned * Warray_.arr_access * Wsize.wsize * 'len ggvar * 'len gexpr
| Psub of Warray_.arr_access * Wsize.wsize * 'len * 'len ggvar * 'len gexpr
| Pload of Memory_model.aligned * Wsize.wsize * 'len gexpr
| Papp1 of E.sop1 * 'len gexpr
| Papp2 of E.sop2 * 'len gexpr * 'len gexpr
| PappN of E.opN * 'len gexpr list
| Pif of 'len gty * 'len gexpr * 'len gexpr * 'len gexpr
Source
type 'len glval =
| Lnone of L.t * 'len gty
| Lvar of 'len gvar_i
| Lmem of Memory_model.aligned * Wsize.wsize * L.t * 'len gexpr
| Laset of Memory_model.aligned * Warray_.arr_access * Wsize.wsize * 'len gvar_i * 'len gexpr
| Lasub of Warray_.arr_access * Wsize.wsize * 'len * 'len gvar_i * 'len gexpr
Source
type ('len, 'info, 'asm) ginstr_r =
| Cassgn of 'len glval * E.assgn_tag * 'len gty * 'len gexpr
| Copn of 'len glvals * E.assgn_tag * 'asm Sopn.sopn * 'len gexprs
| Csyscall of 'len glvals * BinNums.positive Syscall_t.syscall_t * 'len gexprs
| Cif of 'len gexpr * ('len, 'info, 'asm) gstmt * ('len, 'info, 'asm) gstmt
| Cfor of 'len gvar_i * 'len grange * ('len, 'info, 'asm) gstmt
| Cwhile of E.align * ('len, 'info, 'asm) gstmt * 'len gexpr * IInfo.t * 'info * ('len, 'info, 'asm) gstmt
| Ccall of 'len glvals * funname * 'len gexprs
Source
and ('len, 'info, 'asm) ginstr = {
i_desc : ('len, 'info, 'asm) ginstr_r;
i_loc : L.i_loc;
i_info : 'info;
i_annot : Annotations.annotations;
}
Source
type ('len, 'info, 'asm) gfunc = {
f_loc : L.t;
f_annot : FInfo.f_annot;
f_info : 'info;
f_cc : FInfo.call_conv;
f_name : funname;
f_tyin : 'len gty list;
f_args : 'len gvar list;
f_body : ('len, 'info, 'asm) gstmt;
f_tyout : 'len gty list;
f_ret_info : FInfo.return_info;
f_ret : 'len gvar_i list;
}
Computes the set of variables that the given instruction writes to, if any. NB: control flow instructions (if, while, and for) do not write to any variable.
iter_instr f c
traverses statement c
and applies function f
to every instruction.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>