package jasmin
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Compiler for High-Assurance and High-Speed Cryptography
Install
dune-project
Dependency
Authors
Maintainers
Sources
jasmin-compiler-v2025.06.3.tar.bz2
sha256=e7aafd891eb54e89d41d9d7d1bbda9ddb1cddc5fdf0359d88c2b7b417ae4a39b
doc/jasmin.jasmin/Jasmin/Regalloc/Regalloc/index.html
Module Regalloc.RegallocSource
Parameters
module Arch : Arch_full.ArchSignature
Source
val create_return_addresses :
(('info, 'asm) Prog.sfundef -> Z.t) ->
('info, 'asm) Prog.sfundef list ->
retaddr Jasmin.Prog.Hf.tCompute where the return address will be stored
Source
val renaming :
(unit,
(Arch.reg,
Arch.regx,
Arch.xreg,
Arch.rflag,
Arch.cond,
Arch.asm_op,
Arch.extra_op)
Arch_extra.extended_op)
Prog.func ->
(unit,
(Arch.reg,
Arch.regx,
Arch.xreg,
Arch.rflag,
Arch.cond,
Arch.asm_op,
Arch.extra_op)
Arch_extra.extended_op)
Prog.funcSource
val subroutine_ra_by_stack :
(unit,
(Arch.reg,
Arch.regx,
Arch.xreg,
Arch.rflag,
Arch.cond,
Arch.asm_op,
Arch.extra_op)
Arch_extra.extended_op)
Prog.func ->
boolSource
val get_reg_oracle :
(('info, 'asm) Prog.func -> bool) ->
(Prog.var -> Prog.var) ->
(Prog.funname -> Prog.Sv.t) ->
('info, 'asm) Prog.func ->
reg_oracle_tExtract from the outcome of register allocation the information that is needed by stack-allocation. To be called on export functions only.
Source
val alloc_prog :
retaddr Jasmin.Prog.Hf.t ->
('a
* (unit,
(Arch.reg,
Arch.regx,
Arch.xreg,
Arch.rflag,
Arch.cond,
Arch.asm_op,
Arch.extra_op)
Arch_extra.extended_op)
Prog.func)
list ->
(Prog.var ->
Prog.var)
* (Prog.funname ->
Prog.Sv.t)
* ('a
* (unit,
(Arch.reg,
Arch.regx,
Arch.xreg,
Arch.rflag,
Arch.cond,
Arch.asm_op,
Arch.extra_op)
Arch_extra.extended_op)
Prog.func)
listReturns:
- 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)"
>
On This Page