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.2.tar.bz2
sha256=aa0d21f532c1560a0939244cfd1c8414ba2b42c9d1403960f458500446cb1ebb
doc/jasmin.linter/Linter/ForwardAnalyser/Make/argument-1-Logic/index.html
Parameter Make.Logic
val initialize : ('info, 'asm) Jasmin.Prog.func -> domain Annotation.annotationBuild the initial value of the domain using the function passed as argument.
args :
('info,'asm) Prog.func(function to analyse)
returns :
domain(intial domain)
val pp : Format.formatter -> (Jasmin.Location.i_loc * domain) -> unitPretty printer for the domain.
args :
Format.formatter(formatter to use)domain(domain to print)
Inclusion test for the domain. included a b test if a is included in b
args :
domain(first domain)domain(second domain)
returns :
bool(true if first domain is included in the second one)
val assume :
Jasmin.Prog.expr ->
domain Annotation.annotation ->
domain Annotation.annotation * domain Annotation.annotationControl flow functions used to handle conditionnal branches. assume condition d returns a pair of domain d1,d2 such that :
d1is the domaindupdated with the knowledge thatconditionis trued2is the domaindupdated with the knowledge thatconditionis false
args :
Jasmin.Prog.expr(condition to test)domain(domain to split)
returns :
domain * domain
Merge two domains. merge a b returns a domain that is the result of the merge of a and b.
args :
domain(first domain)domain(second domain)
returns :
domain(merged domain)
val forget : Jasmin.Prog.var_i -> domain -> domain Annotation.annotationFunction to remove a variable from a domain. This function is needed because of the way we handle for loops. args :
Jasmin.Prog.var_i(variable to remove)domain(domain to update)
returns :
domain Annotation.annotation(updated domain wrap with annotation type)
val funcall :
Jasmin.Location.i_loc ->
Jasmin.Prog.lvals ->
Jasmin.CoreIdent.funname ->
Jasmin.Prog.exprs ->
domain ->
domain Annotation.annotationFunction to handle function call instruction
val syscall :
Jasmin.Location.i_loc ->
Jasmin.Prog.lvals ->
Jasmin.BinNums.positive Jasmin.Syscall_t.syscall_t ->
Jasmin.Prog.exprs ->
domain ->
domain Annotation.annotationFunction to handle syscall instruction
val assign :
Jasmin.Location.i_loc ->
Jasmin.Prog.lval ->
Jasmin.Expr.assgn_tag ->
Jasmin.Prog.ty ->
Jasmin.Prog.expr ->
domain ->
domain Annotation.annotationFunction to handle assign instruction
val opn :
Jasmin.Location.i_loc ->
Jasmin.Prog.lvals ->
Jasmin.Expr.assgn_tag ->
'asm Jasmin.Sopn.sopn ->
Jasmin.Prog.exprs ->
domain ->
domain Annotation.annotationFunction to handle opn instruction
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>