package jasmin

  1. Overview
  2. Docs
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/src/jasmin.jasmin/array_expand.ml.html

Source file array_expand.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(* Replace register array by register *)
open Prog

let init_tbl fc =
  let tbl = Hv.create 107 in
  let init_var (v:var) =
    let ws, sz = array_kind v.v_ty in
    let ty = Bty (U ws) in
    let vi i =
      V.mk (v.v_name ^ "#" ^ string_of_int i) (Reg(reg_kind v.v_kind, Direct)) ty v.v_dloc v.v_annot in
    let t = Array.init sz vi in
    Hv.add tbl v (ws, t) in
  let fv = vars_fc fc in
  let arrs = Sv.filter is_reg_arr (vars_fc fc) in
  let vars = Sv.diff fv arrs in
  Sv.iter init_var arrs;
  vars, tbl