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/Lower_spill/index.html
Module Jasmin.Lower_spill
module E : sig ... end
val is_spill_op :
'a1 Sopn.asmOp ->
'a1 Sopn.sopn ->
(Pseudo_operator.spill_op * Type.stype list) option
val to_spill_e : Var0.SvExtra.Sv.t -> Expr.pexpr -> Var0.SvExtra.Sv.t
val to_spill_i :
'a1 Sopn.asmOp ->
(Var0.SvExtra.Sv.t * bool) ->
'a1 Expr.instr ->
Var0.SvExtra.Sv.t * bool
type spill_env = Var0.SvExtra.Sv.t
val get_Pvar : Expr.instr_info -> Expr.pexpr -> Expr.var_i Compiler_util.cexec
val get_Pvars :
Expr.instr_info ->
Expr.pexpr list ->
Expr.var_i list Compiler_util.cexec
val check_ty :
Expr.instr_info ->
Expr.var_i list ->
Type.stype list ->
(Compiler_util.pp_error_loc, unit) Utils0.result
val spill_x :
'a1 Sopn.asmOp ->
(Expr.instr_info -> Var0.Var.var -> Var0.Var.var Compiler_util.cexec) ->
Expr.instr_info ->
spill_env ->
Expr.var_i ->
(Compiler_util.pp_error_loc, Var0.SvExtra.Sv.t * 'a1 Expr.instr)
Utils0.result
val spill_es :
'a1 Sopn.asmOp ->
(Expr.instr_info -> Var0.Var.var -> Var0.Var.var Compiler_util.cexec) ->
Expr.instr_info ->
spill_env ->
Type.stype list ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc, spill_env * 'a1 Expr.instr list) Utils0.result
val unspill_x :
'a1 Sopn.asmOp ->
(Expr.instr_info -> Var0.Var.var -> Var0.Var.var Compiler_util.cexec) ->
Expr.instr_info ->
spill_env ->
Expr.var_i ->
(Compiler_util.pp_error_loc, 'a1 Expr.instr) Utils0.result
val unspill_es :
'a1 Sopn.asmOp ->
(Expr.instr_info -> Var0.Var.var -> Var0.Var.var Compiler_util.cexec) ->
Expr.instr_info ->
spill_env ->
Type.stype list ->
Expr.pexpr list ->
(Compiler_util.pp_error_loc, 'a1 Expr.instr list) Utils0.result
val spill_c :
'a1 Sopn.asmOp ->
(spill_env ->
'a1 Expr.instr ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec) ->
spill_env ->
'a1 Expr.instr list ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec
val merge_env : spill_env -> spill_env -> Var0.SvExtra.Sv.t
val loop :
'a1 Sopn.asmOp ->
(spill_env ->
'a1 Expr.instr list ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec) ->
Expr.instr_info ->
'a1 Expr.instr list ->
Datatypes.nat ->
spill_env ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec
val wloop :
'a1 Sopn.asmOp ->
(spill_env ->
'a1 Expr.instr list ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec) ->
Expr.instr_info ->
'a1 Expr.instr list ->
'a1 Expr.instr list ->
Datatypes.nat ->
Var0.SvExtra.Sv.t ->
(Var0.SvExtra.Sv.t * ('a1 Expr.instr list * 'a1 Expr.instr list))
Compiler_util.cexec
val spill_i :
'a1 Sopn.asmOp ->
(Expr.instr_info -> Var0.Var.var -> Var0.Var.var Compiler_util.cexec) ->
spill_env ->
'a1 Expr.instr ->
(spill_env * 'a1 Expr.instr list) Compiler_util.cexec
val init_map :
(Wsize.v_kind ->
Expr.instr_info ->
string ->
Type.stype ->
Ident.Ident.ident) ->
Var0.SvExtra.Sv.t ->
Var0.Var.var Var0.Mvar.t
val get_spill :
Var0.Var.var Var0.Mvar.t ->
Expr.instr_info ->
Var0.Var.var ->
(Compiler_util.pp_error_loc, Var0.Var.var) Utils0.result
val check_map :
Var0.Var.var Var0.Mvar.t ->
Var0.SvExtra.Sv.t ->
bool * Var0.SvExtra.Sv.t
val spill_fd :
'a1 Sopn.asmOp ->
(Wsize.v_kind ->
Expr.instr_info ->
string ->
Type.stype ->
Ident.Ident.ident) ->
Var0.funname ->
('a1, 'a2) Expr._fundef ->
('a1, 'a2) Expr._fundef Compiler_util.cexec
val spill_prog :
'a1 Sopn.asmOp ->
(Wsize.v_kind ->
Expr.instr_info ->
string ->
Type.stype ->
Ident.Ident.ident) ->
Expr.progT ->
'a1 Expr.prog ->
'a1 Expr.prog Compiler_util.cexec
val spill_uprog :
'a1 Sopn.asmOp ->
(Wsize.v_kind ->
Expr.instr_info ->
string ->
Type.stype ->
Ident.Ident.ident) ->
'a1 Expr._uprog ->
'a1 Expr._uprog Compiler_util.cexec
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>