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/Regalloc/module-type-Regalloc/index.html
Module type Regalloc.Regalloc
Source
val create_return_addresses :
(('info, 'asm) Prog.sfundef -> Z.t) ->
('info, 'asm) Prog.sfundef list ->
retaddr Jasmin.Prog.Hf.t
Compute where the return address will be stored
val renaming : (unit, extended_op) Prog.func -> (unit, extended_op) Prog.func
val subroutine_ra_by_stack : (unit, extended_op) Prog.func -> bool
val get_reg_oracle :
(('info, 'asm) Prog.func -> bool) ->
(Prog.var -> Prog.var) ->
(Prog.funname -> Prog.Sv.t) ->
retaddr ->
('info, 'asm) Prog.func ->
reg_oracle_t
Extract from the outcome of register allocation the information that is needed by stack-allocation.
val alloc_prog :
retaddr Jasmin.Prog.Hf.t ->
('a * (unit, extended_op) Prog.func) list ->
(Prog.var ->
Prog.var)
* (Prog.funname ->
Prog.Sv.t)
* ('a * (unit, extended_op) Prog.func) list
Returns:
- the global renaming function
- the set of killed registers (see note below)
- the input function with variables turned into registers
Note: Export functions can freely use caller-saved registers: they are not reported as killed. Subroutines report ALL killed registers.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>