From 9936a7022cbfaa2c27e2793245b978e791486a83 Mon Sep 17 00:00:00 2001 From: Alistair Michael Date: Wed, 8 Jan 2025 17:42:50 +1000 Subject: [PATCH 01/17] tweak ocaml backend support pc, and export a library --- bin/asli.ml | 4 ++-- bin/offline_sem.ml | 12 ++++++++---- bin/server.ml | 2 -- libASL/cpp_backend.ml | 5 +++++ libASL/cpu.ml | 11 ++++++----- libASL/dune | 3 ++- libASL/gen_backend.ml | 14 ++++++++++++++ libASL/ocaml_backend.ml | 31 +++++++++++++++++++++++-------- libASL/scala_backend.ml | 5 ++++- 9 files changed, 64 insertions(+), 23 deletions(-) create mode 100644 libASL/gen_backend.ml diff --git a/bin/asli.ml b/bin/asli.ml index 31b91653..b2c1c14c 100644 --- a/bin/asli.ml +++ b/bin/asli.ml @@ -42,7 +42,7 @@ let help_msg = [ {|:sem Decode and print opcode semantics|}; {|:ast [file] Decode and write opcode semantics to stdout or a file, in a structured ast format|}; {|:gen Generate an offline lifter using the given backend|}; - {| [pc-option] [backend] [dir]|}; + {| [backend] [pc-option] [dir]|}; {|:project Execute ASLi commands in |}; {|:q :quit Exit the interpreter|}; {|:run Execute instructions|}; @@ -199,8 +199,8 @@ let rec process_command (tcenv: TC.Env.t) (cpu: Cpu.cpu) (fname: string) (input0 (Dis.dis_decode_entry cpu.env cpu.denv decoder op); Option.iter close_out chan_opt | ":gen" :: iset :: id :: rest when List.length rest <= 3 -> - let pc_option = Option.value List.(nth_opt rest 1) ~default:"false" in let backend_str = Option.value List.(nth_opt rest 0) ~default:"ocaml" in + let pc_option = Option.value List.(nth_opt rest 1) ~default:"false" in Printf.printf "Generating lifter for %s %s with pc option %s using %s backend\n" iset id pc_option backend_str; let pc_option = match String.lowercase_ascii pc_option with diff --git a/bin/offline_sem.ml b/bin/offline_sem.ml index 54b8ac38..9ac728f8 100644 --- a/bin/offline_sem.ml +++ b/bin/offline_sem.ml @@ -2,14 +2,17 @@ open LibASL open Asl_ast open Asl_utils -let run (opcode: string) = +let run (opcode: string) (pc: int option) = let op = Z.of_string opcode in let bv = Primops.prim_cvt_int_bits (Z.of_int 32) op in - let stmts = OfflineASL.Offline.run bv in + let stmts = OfflineASL.Offline.run ?pc bv in List.iter (fun s -> Printf.printf "%s\n" (pp_stmt s)) stmts let opt_instr = ref [] -let options = Arg.align ([]) +let opt_pc = ref (-1) +let options = Arg.align ([ + ( "--pc", Arg.Set_int opt_pc , "set program counter (does nothing if lifter generated does not support it)"); +]) let usage_msg = "" let _ = @@ -18,6 +21,7 @@ let _ = usage_msg let main () = - List.map (fun instr -> run instr) !opt_instr + let pc = if (!opt_pc <> -1) then Some !opt_pc else None in + List.map (fun instr -> run instr pc) !opt_instr let _ = main() diff --git a/bin/server.ml b/bin/server.ml index 759eee24..22f427fe 100644 --- a/bin/server.ml +++ b/bin/server.ml @@ -33,8 +33,6 @@ let get_reply (jsonin: string) : Cohttp.Code.status_code * string = (*let json = Yojson.Safe.from_string jsonin in *) let make_reply code tail = (code, Yojson.Safe.to_string (`Assoc (["instruction", `String jsonin] @ tail))) in - Printf.printf "Disassembling '%s'\n" jsonin; - flush stdout; match (eval_instr jsonin) with | exception e -> make_reply `Internal_server_error ["error", `String (Printexc.to_string e)] | enc, x -> make_reply `OK [ "encoding", `String enc; "semantics", `String x; ] diff --git a/libASL/cpp_backend.ml b/libASL/cpp_backend.ml index 76c7f25b..1f5c1c0f 100644 --- a/libASL/cpp_backend.ml +++ b/libASL/cpp_backend.ml @@ -1,5 +1,6 @@ open Asl_ast open Asl_utils +open Gen_backend (**************************************************************** * Write State @@ -569,3 +570,7 @@ let run dfn dfnsig tests fns root = Printf.eprintf "Warning: cpp gen directory '%s' is missing build system files. These might need to be copied manually.\n\n" root; () + +module CppBackend : Backend = struct + let run ~(config:conf) dfn dfnsig tests fns = run dfn dfnsig tests fns config.output_directory +end diff --git a/libASL/cpu.ml b/libASL/cpu.ml index ec28aa4f..e649940f 100644 --- a/libASL/cpu.ml +++ b/libASL/cpu.ml @@ -67,15 +67,16 @@ let mkCPU (env : Eval.Env.t) (denv: Dis.env): cpu = (* Build the symbolic lifter *) let (decoder_id,decoder_fnsig,tests,instrs) = Symbolic_lifter.run_marshal include_pc iset pat env in - let run_gen_backend : gen_function = + let run_gen_backend = match backend with - | Ocaml -> Ocaml_backend.run - | Cpp -> Cpp_backend.run - | Scala -> Scala_backend.run + | Ocaml -> Ocaml_backend.OcamlBackend.run + | Cpp -> Cpp_backend.CppBackend.run + | Scala -> Scala_backend.ScalaBackend.run in + let config : Gen_backend.conf = {use_pc=include_pc; output_directory=dir} in (* Build backend program *) - run_gen_backend decoder_id decoder_fnsig tests instrs dir + run_gen_backend ~config decoder_id decoder_fnsig tests instrs in { diff --git a/libASL/dune b/libASL/dune index 80dcf748..fbd3b76a 100644 --- a/libASL/dune +++ b/libASL/dune @@ -35,7 +35,8 @@ (public_name asli.libASL-stage1) (flags (:standard -w -27 -cclib -lstdc++ -open LibASL_stage0)) - (modules cpu dis elf eval + (modules + gen_backend cpu dis elf eval lexer lexersupport loadASL monad primops rws symbolic tcheck testing transforms value rASL_check symbolic_lifter decoder_program call_graph req_analysis diff --git a/libASL/gen_backend.ml b/libASL/gen_backend.ml new file mode 100644 index 00000000..01bea2ea --- /dev/null +++ b/libASL/gen_backend.ml @@ -0,0 +1,14 @@ + + +module AST = Asl_ast +open Asl_utils + + +type conf = { + use_pc : bool; + output_directory: string; +} + +module type Backend = sig + val run : config:conf -> AST.ident -> Eval.fun_sig -> Eval.fun_sig Bindings.t -> Eval.fun_sig Bindings.t -> unit +end diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 5579ef9e..8ade1914 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -1,5 +1,6 @@ open Asl_ast open Asl_utils +open Gen_backend (**************************************************************** * Write State @@ -65,8 +66,15 @@ let write_preamble opens st = Printf.fprintf st.oc "open %s\n" s) opens; Printf.fprintf st.oc "\n" -let write_epilogue fid st = - Printf.fprintf st.oc "let run enc =\n reset_ir ();\n %s enc;\n get_ir ()\n" (name_of_ident fid) +let write_epilogue use_pc fid st = + let conv_pc = "let pc = (mkBits (Z.of_int 64) (Z.of_int (Option.get pc))) in" in + let dis_call = (match use_pc with + | true -> Printf.sprintf "if (Option.is_none pc) then (failwith \"Must provide PC\");\n %s\n %s enc pc" conv_pc + | false -> Printf.sprintf "%s enc" + ) (name_of_ident fid) + in + let pc_arg = " ?(pc:int option)" in + Printf.fprintf st.oc "let run%s enc =\n reset_ir ();\n %s;\n get_ir ()\n" pc_arg dis_call let write_line s st = let padding = String.concat "" (List.init st.depth (fun _ -> " ")) in @@ -359,23 +367,24 @@ let write_test_file tests dir = m (* Write the decoder file - should depend on all of the above *) -let write_decoder_file fn fnsig deps dir = +let write_decoder_file use_pc fn fnsig deps dir = let m = "offline" in let path = dir ^ "/" ^ m ^ ".ml" in let oc = open_out path in let st = init_st oc in write_preamble (global_deps @ deps) st; write_fn fn fnsig st; - write_epilogue fn st; + write_epilogue use_pc fn st; close_out oc; m (* Write the dune build file *) -let write_dune_file files dir = +let write_dune_file use_pc files dir = let oc = open_out (dir ^ "/dune") in Printf.fprintf oc "; AUTO-GENERATED BY OCAML BACKEND (library (name offlineASL) + (public_name asli.offline) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) (modules \n"; @@ -387,8 +396,14 @@ let write_dune_file files dir = close_out oc (* Write all of the above, expecting offline_utils.ml to already be present in dir *) -let run dfn dfnsig tests fns dir = +let run config dfn dfnsig tests fns = + let dir = config.output_directory in let files = Bindings.fold (fun fn fnsig acc -> (write_instr_file fn fnsig dir)::acc) fns [] in let files = (write_test_file tests dir)::files in - let decoder = write_decoder_file dfn dfnsig files dir in - write_dune_file (decoder::files@global_deps) dir + let decoder = write_decoder_file config.use_pc dfn dfnsig files dir in + write_dune_file config.use_pc (decoder::files@global_deps) dir + +module OcamlBackend : Backend = struct + let run ~(config:conf) dfn dfnsig tests fns = run config dfn dfnsig tests fns +end + diff --git a/libASL/scala_backend.ml b/libASL/scala_backend.ml index 06b69819..e089bfe7 100644 --- a/libASL/scala_backend.ml +++ b/libASL/scala_backend.ml @@ -5,7 +5,7 @@ open Asl_utils open AST open Asl_visitor -open Value +open Gen_backend (* For splitting up functions we use type to indicate which parameters are passed by reference. *) @@ -845,3 +845,6 @@ let run (dfn : ident) (dfnsig : ty option * 'a * ident list * ident list * 'b * write_decoder_file dfn (lift_fsig dfnsig) files dir st |> ignore ; () +module ScalaBackend : Backend = struct + let run ~(config:conf) dfn dfnsig tests fns = run dfn dfnsig tests fns config.output_directory +end From 6e32a5353929fbaa3bbad733a480ae3c0fb62bdf Mon Sep 17 00:00:00 2001 From: am Date: Wed, 8 Jan 2025 18:46:21 +1000 Subject: [PATCH 02/17] update stub lifter --- offlineASL/dune | 1 + offlineASL/offline.ml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/offlineASL/dune b/offlineASL/dune index aa2cf6f6..49e4a6a4 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,6 +1,7 @@ ; AUTO-GENERATED BY OCAML BACKEND (library (name offlineASL) + (public_name asli.offline) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) (modules diff --git a/offlineASL/offline.ml b/offlineASL/offline.ml index 1d913f9b..7e87b0ad 100644 --- a/offlineASL/offline.ml +++ b/offlineASL/offline.ml @@ -6,7 +6,7 @@ open Decode_tests let f_A64_decoder v_enc : unit = failwith "unsupported" -let run enc = +let run ?pc enc = reset_ir (); f_A64_decoder enc; get_ir () From e8e0b19a4f22bb5a6fdb7971c6bba61d523d236e Mon Sep 17 00:00:00 2001 From: Alistair Michael Date: Thu, 16 Jan 2025 14:23:52 +1000 Subject: [PATCH 03/17] new offline lifter & asli packages, make dune build offline lifter We now define two packages, asli and aslp_offline. The offline lifter library gets a different name depending on whether its built with pc support which is enabled by default in offlineASL/gen-command (breaking offline-coverage). libASL/dune now invokes asli to generate the lifter into the build directory. This makes everything buildable so the offline lifter should be useable as an opam pin dependency. Asli can generate the dune to build the offline lifter, but there is a little bit bit of manual mess, e.g. regarding the command to build asli. We also don't properly invalidate the cached marshalled generated lifter (which appears in _build/default/marshalled-offline-lifter-*) when we rebuild asli; to regenerate the lifter you must first run `dune clean`. --- asli.opam | 10 +- aslp_offline.opam | 31 + bin/dune | 4 + bin/offline_coverage.ml | 2 +- dune-project | 20 +- libASL/dune | 2 +- libASL/ocaml_backend.ml | 42 +- offlineASL/decode_tests.ml | 4 - offlineASL/dune | 798 +++++++++++++++++- offlineASL/gen-command | 1 + offlineASL/offline.ml | 12 - ...ine_utils.ml => template_offline_utils.ml} | 0 12 files changed, 886 insertions(+), 40 deletions(-) create mode 100644 aslp_offline.opam delete mode 100644 offlineASL/decode_tests.ml create mode 100644 offlineASL/gen-command delete mode 100644 offlineASL/offline.ml rename offlineASL/{offline_utils.ml => template_offline_utils.ml} (100%) diff --git a/asli.opam b/asli.opam index c36f30e1..f933b769 100644 --- a/asli.opam +++ b/asli.opam @@ -10,11 +10,11 @@ interactive execution of ASL statements and expressions, executing opcodes one at a time, loading ELF files and executing Arm binaries. """ -maintainer: ["Alastair Reid "] -authors: ["Alastair Reid"] +maintainer: ["UQ-PAC"] +authors: ["UQ-PAC"] license: "BSD-3-Clause" -homepage: "https://github.com/alastairreid/asl-interpreter" -bug-reports: "https://github.com/alastairreid/asl-interpreter/issues" +homepage: "https://github.com/UQ-PAC/aslp" +bug-reports: "https://github.com/UQ-PAC/aslp/issues" depends: [ "dune" {>= "2.8"} "ocaml" {>= "4.14"} @@ -46,4 +46,4 @@ build: [ "@doc" {with-doc} ] ] -dev-repo: "git+https://github.com/alastairreid/asl-interpreter.git" +dev-repo: "git+https://github.com/UQ-PAC/aslp.git" diff --git a/aslp_offline.opam b/aslp_offline.opam new file mode 100644 index 00000000..0c766804 --- /dev/null +++ b/aslp_offline.opam @@ -0,0 +1,31 @@ +# This file is generated by dune, edit dune-project instead +opam-version: "2.0" +version: "0.2.0" +synopsis: "AArch64 Offline lifter" +description: "" +maintainer: ["UQ-PAC"] +authors: ["UQ-PAC"] +license: "BSD-3-Clause" +homepage: "https://github.com/UQ-PAC/aslp" +bug-reports: "https://github.com/UQ-PAC/aslp/issues" +depends: [ + "dune" {>= "2.8"} + "ocaml" {>= "4.14"} + "asli" + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] +dev-repo: "git+https://github.com/UQ-PAC/aslp.git" diff --git a/bin/dune b/bin/dune index 7b572c03..18d0b112 100644 --- a/bin/dune +++ b/bin/dune @@ -2,6 +2,7 @@ (executable (name asli) (public_name asli) + (package asli) (modes exe byte) (modules asli) (flags (-cclib -lstdc++)) @@ -11,6 +12,7 @@ (executable (name server) (public_name aslp-server) + (package asli) (modes exe) (modules server) (flags (-cclib -lstdc++)) @@ -36,6 +38,7 @@ (executable (name offline_coverage) (public_name asloff-coverage) + (package aslp_offline) (modes exe) (modules offline_coverage) (flags (-cclib -lstdc++)) @@ -44,6 +47,7 @@ (executable (name offline_sem) (public_name asloff-sem) + (package aslp_offline) (modes exe) (modules offline_sem) (flags (-cclib -lstdc++)) diff --git a/bin/offline_coverage.ml b/bin/offline_coverage.ml index a69e581d..35e084d8 100644 --- a/bin/offline_coverage.ml +++ b/bin/offline_coverage.ml @@ -12,7 +12,7 @@ let () = Printexc.register_printer let op_dis (op: int): stmt list opresult = let bv = Primops.prim_cvt_int_bits (Z.of_int 32) (Z.of_int op) in try - let stmts = OfflineASL.Offline.run bv in + let stmts = OfflineASL.Offline.run ~pc:0 bv in Result.Ok stmts with | e -> Result.Error (Op_DisFail e) diff --git a/dune-project b/dune-project index ec36847e..e54236f5 100644 --- a/dune-project +++ b/dune-project @@ -31,12 +31,22 @@ ) ) +(package + (name aslp_offline) + (synopsis "AArch64 Offline lifter") + (description "" ) + (depends + ("ocaml" (>= "4.14")) + "asli" + ) +) + (license BSD-3-Clause) -(authors "Alastair Reid") -(maintainers "Alastair Reid ") -(source (github alastairreid/asl-interpreter)) -(bug_reports "https://github.com/alastairreid/asl-interpreter/issues") -(homepage "https://github.com/alastairreid/asl-interpreter") +(authors "UQ-PAC") +(maintainers "UQ-PAC") +(source (github UQ-PAC/aslp)) +(bug_reports "https://github.com/UQ-PAC/aslp/issues") +(homepage "https://github.com/UQ-PAC/aslp") ; (documentation ...) (generate_opam_files true) diff --git a/libASL/dune b/libASL/dune index fbd3b76a..7658e709 100644 --- a/libASL/dune +++ b/libASL/dune @@ -46,7 +46,7 @@ scala_backend arm_env pretransforms flags ) - (preprocessor_deps (alias ../asl_files) (alias cpp_backend_files)) + (preprocessor_deps (alias ../asl_files) (alias cpp_backend_files) ../offlineASL/template_offline_utils.ml) (preprocess (pps ppx_blob)) (libraries libASL_stage0 libASL_support str mlbdd)) diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 8ade1914..564c91af 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -343,6 +343,7 @@ let write_fn name (ret_tyo,_,targs,args,_,body) st = let init_st oc = { depth = 0; skip_seq = false; oc ; ref_vars = IdentSet.empty } let global_deps = ["Offline_utils"] +let offline_utils_file = [%blob "../offlineASL/template_offline_utils.ml"] (* Write an instruction file, containing just the behaviour of one instructions *) let write_instr_file fn fnsig dir = @@ -378,16 +379,45 @@ let write_decoder_file use_pc fn fnsig deps dir = close_out oc; m +let write_new_dune_file use_pc files dir : unit = + let target_gen_files = String.concat "" @@ List.map (fun k -> + Printf.sprintf " %s.ml\n" k + ) files in + let oc = open_out (dir ^ "/dune") in + Printf.fprintf oc " + (rule (targets \n%s) + (deps gen-command) + (action (chdir %%{workspace_root} + (with-stdin-from %s/gen-command (run asli)) + )))" + target_gen_files dir ; + Printf.fprintf oc "\n\n"; + Printf.fprintf oc " + (library + (name offlineASL) + (public_name aslp_offline.%s) + (flags + (:standard -w -27 -w -33 -cclib -lstdc++)) + (modules \n" + (if use_pc then "pc_aarch64" else "aarch64") ; + List.iter (fun k -> + Printf.fprintf oc " %s\n" k + ) (files); + Printf.fprintf oc " ) + (libraries asli.libASL))" + + (* Write the dune build file *) let write_dune_file use_pc files dir = let oc = open_out (dir ^ "/dune") in Printf.fprintf oc "; AUTO-GENERATED BY OCAML BACKEND (library (name offlineASL) - (public_name asli.offline) + (public_name aslp_offline.%s) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules \n"; + (modules \n" + (if use_pc then "pc_aarch64" else "aarch64") ; List.iter (fun k -> Printf.fprintf oc " %s\n" k ) files; @@ -395,13 +425,19 @@ let write_dune_file use_pc files dir = (libraries asli.libASL))"; close_out oc +let write_ibi dir = + let oc = open_out (dir ^ "/Offline_utils.ml") in + output_string oc offline_utils_file ; + close_out oc + (* Write all of the above, expecting offline_utils.ml to already be present in dir *) let run config dfn dfnsig tests fns = let dir = config.output_directory in let files = Bindings.fold (fun fn fnsig acc -> (write_instr_file fn fnsig dir)::acc) fns [] in let files = (write_test_file tests dir)::files in let decoder = write_decoder_file config.use_pc dfn dfnsig files dir in - write_dune_file config.use_pc (decoder::files@global_deps) dir + write_new_dune_file config.use_pc (decoder::files@global_deps) dir ; + write_ibi dir module OcamlBackend : Backend = struct let run ~(config:conf) dfn dfnsig tests fns = run config dfn dfnsig tests fns diff --git a/offlineASL/decode_tests.ml b/offlineASL/decode_tests.ml deleted file mode 100644 index 3f44e593..00000000 --- a/offlineASL/decode_tests.ml +++ /dev/null @@ -1,4 +0,0 @@ -(* AUTO-GENERATED LIFTER FILE *) - -open Offline_utils - diff --git a/offlineASL/dune b/offlineASL/dune index 49e4a6a4..02951f4f 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,12 +1,792 @@ -; AUTO-GENERATED BY OCAML BACKEND -(library - (name offlineASL) - (public_name asli.offline) - (flags - (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules +(rule (targets + offline.ml + decode_tests.ml + aarch64_vector_transfer_vector_table.ml + aarch64_vector_transfer_vector_permute_zip.ml + aarch64_vector_transfer_vector_permute_unzip.ml + aarch64_vector_transfer_vector_permute_transpose.ml + aarch64_vector_transfer_vector_insert.ml + aarch64_vector_transfer_vector_extract.ml + aarch64_vector_transfer_vector_cpy_dup_sisd.ml + aarch64_vector_transfer_vector_cpy_dup_simd.ml + aarch64_vector_transfer_integer_move_unsigned.ml + aarch64_vector_transfer_integer_move_signed.ml + aarch64_vector_transfer_integer_insert.ml + aarch64_vector_transfer_integer_dup.ml + aarch64_vector_shift_right_sisd.ml + aarch64_vector_shift_right_simd.ml + aarch64_vector_shift_right_narrow_uniform_sisd.ml + aarch64_vector_shift_right_narrow_uniform_simd.ml + aarch64_vector_shift_right_narrow_nonuniform_sisd.ml + aarch64_vector_shift_right_narrow_nonuniform_simd.ml + aarch64_vector_shift_right_narrow_logical.ml + aarch64_vector_shift_right_insert_sisd.ml + aarch64_vector_shift_right_insert_simd.ml + aarch64_vector_shift_left_sisd.ml + aarch64_vector_shift_left_simd.ml + aarch64_vector_shift_left_sat_sisd.ml + aarch64_vector_shift_left_sat_simd.ml + aarch64_vector_shift_left_long.ml + aarch64_vector_shift_left_insert_sisd.ml + aarch64_vector_shift_left_insert_simd.ml + aarch64_vector_shift_conv_int_sisd.ml + aarch64_vector_shift_conv_int_simd.ml + aarch64_vector_shift_conv_float_sisd.ml + aarch64_vector_shift_conv_float_simd.ml + aarch64_vector_reduce_int_max.ml + aarch64_vector_reduce_fp_maxnm_sisd.ml + aarch64_vector_reduce_fp_maxnm_simd.ml + aarch64_vector_reduce_fp_max_sisd.ml + aarch64_vector_reduce_fp_max_simd.ml + aarch64_vector_reduce_fp_add_sisd.ml + aarch64_vector_reduce_fp16_maxnm_sisd.ml + aarch64_vector_reduce_fp16_maxnm_simd.ml + aarch64_vector_reduce_fp16_max_sisd.ml + aarch64_vector_reduce_fp16_max_simd.ml + aarch64_vector_reduce_fp16_add_sisd.ml + aarch64_vector_reduce_add_sisd.ml + aarch64_vector_reduce_add_simd.ml + aarch64_vector_reduce_add_long.ml + aarch64_vector_logical.ml + aarch64_vector_fp16_movi.ml + aarch64_vector_cvt_bf16_vector.ml + aarch64_vector_cvt_bf16_scalar.ml + aarch64_vector_crypto_sm4_sm4enckey.ml + aarch64_vector_crypto_sm4_sm4enc.ml + aarch64_vector_crypto_sm3_sm3tt2b.ml + aarch64_vector_crypto_sm3_sm3tt2a.ml + aarch64_vector_crypto_sm3_sm3tt1b.ml + aarch64_vector_crypto_sm3_sm3tt1a.ml + aarch64_vector_crypto_sm3_sm3ss1.ml + aarch64_vector_crypto_sm3_sm3partw2.ml + aarch64_vector_crypto_sm3_sm3partw1.ml + aarch64_vector_crypto_sha512_sha512su1.ml + aarch64_vector_crypto_sha512_sha512su0.ml + aarch64_vector_crypto_sha512_sha512h2.ml + aarch64_vector_crypto_sha512_sha512h.ml + aarch64_vector_crypto_sha3op_sha256_sched1.ml + aarch64_vector_crypto_sha3op_sha256_hash.ml + aarch64_vector_crypto_sha3op_sha1_sched0.ml + aarch64_vector_crypto_sha3op_sha1_hash_parity.ml + aarch64_vector_crypto_sha3op_sha1_hash_majority.ml + aarch64_vector_crypto_sha3op_sha1_hash_choose.ml + aarch64_vector_crypto_sha3_xar.ml + aarch64_vector_crypto_sha3_rax1.ml + aarch64_vector_crypto_sha3_eor3.ml + aarch64_vector_crypto_sha3_bcax.ml + aarch64_vector_crypto_sha2op_sha256_sched0.ml + aarch64_vector_crypto_sha2op_sha1_sched1.ml + aarch64_vector_crypto_sha2op_sha1_hash.ml + aarch64_vector_crypto_aes_round.ml + aarch64_vector_crypto_aes_mix.ml + aarch64_vector_bfmmla.ml + aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt.ml + aarch64_vector_arithmetic_unary_special_recip_int.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_float_simd.ml + aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml + aarch64_vector_arithmetic_unary_special_frecpx.ml + aarch64_vector_arithmetic_unary_shift.ml + aarch64_vector_arithmetic_unary_rev.ml + aarch64_vector_arithmetic_unary_rbit.ml + aarch64_vector_arithmetic_unary_not.ml + aarch64_vector_arithmetic_unary_fp16_round.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_float_xtn_sisd.ml + aarch64_vector_arithmetic_unary_float_xtn_simd.ml + aarch64_vector_arithmetic_unary_float_widen.ml + aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml + aarch64_vector_arithmetic_unary_float_round.ml + aarch64_vector_arithmetic_unary_float_narrow.ml + aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_int_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml + aarch64_vector_arithmetic_unary_extract_sat_sisd.ml + aarch64_vector_arithmetic_unary_extract_sat_simd.ml + aarch64_vector_arithmetic_unary_extract_nosat.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_fp16.ml + aarch64_vector_arithmetic_unary_diff_neg_float.ml + aarch64_vector_arithmetic_unary_cnt.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_clsz.ml + aarch64_vector_arithmetic_unary_add_saturating_sisd.ml + aarch64_vector_arithmetic_unary_add_saturating_simd.ml + aarch64_vector_arithmetic_unary_add_pairwise.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_int.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml + aarch64_vector_arithmetic_binary_uniform_shift_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_uniform_max_min_single.ml + aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml + aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml + aarch64_vector_arithmetic_binary_uniform_div_fp16.ml + aarch64_vector_arithmetic_binary_uniform_div.ml + aarch64_vector_arithmetic_binary_uniform_diff.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml + aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_add_fp16.ml + aarch64_vector_arithmetic_binary_uniform_add_fp.ml + aarch64_vector_arithmetic_binary_element_mul_long.ml + aarch64_vector_arithmetic_binary_element_mul_int.ml + aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml + aarch64_vector_arithmetic_binary_element_mul_acc_long.ml + aarch64_vector_arithmetic_binary_element_mul_acc_int.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_element_dotp.ml + aarch64_vector_arithmetic_binary_element_bfdot.ml + aarch64_vector_arithmetic_binary_disparate_mul_product.ml + aarch64_vector_arithmetic_binary_disparate_mul_poly.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_accum.ml + aarch64_vector_arithmetic_binary_disparate_diff.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml + aarch64_udf.ml + aarch64_system_sysops.ml + aarch64_system_register_cpsr.ml + aarch64_system_monitors.ml + aarch64_system_exceptions_runtime_hvc.ml + aarch64_system_exceptions_debug_halt.ml + aarch64_system_exceptions_debug_breakpoint.ml + aarch64_system_barriers_ssbb.ml + aarch64_system_barriers_sb.ml + aarch64_system_barriers_pssbb.ml + aarch64_system_barriers_isb.ml + aarch64_system_barriers_dsb.ml + aarch64_system_barriers_dmb.ml + aarch64_memory_vector_single_post_inc.ml + aarch64_memory_vector_single_no_wb.ml + aarch64_memory_vector_multiple_post_inc.ml + aarch64_memory_vector_multiple_no_wb.ml + aarch64_memory_single_simdfp_register.ml + aarch64_memory_single_simdfp_immediate_unsigned.ml + aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml + aarch64_memory_single_simdfp_immediate_signed_post_idx.ml + aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml + aarch64_memory_single_general_register.ml + aarch64_memory_single_general_immediate_unsigned.ml + aarch64_memory_single_general_immediate_signed_pre_idx.ml + aarch64_memory_single_general_immediate_signed_post_idx.ml + aarch64_memory_single_general_immediate_signed_pac.ml + aarch64_memory_single_general_immediate_signed_offset_unpriv.ml + aarch64_memory_single_general_immediate_signed_offset_normal.ml + aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml + aarch64_memory_pair_simdfp_pre_idx.ml + aarch64_memory_pair_simdfp_post_idx.ml + aarch64_memory_pair_simdfp_offset.ml + aarch64_memory_pair_simdfp_no_alloc.ml + aarch64_memory_pair_general_pre_idx.ml + aarch64_memory_pair_general_post_idx.ml + aarch64_memory_pair_general_offset.ml + aarch64_memory_pair_general_no_alloc.ml + aarch64_memory_ordered_rcpc.ml + aarch64_memory_ordered.ml + aarch64_memory_literal_simdfp.ml + aarch64_memory_literal_general.ml + aarch64_memory_exclusive_single.ml + aarch64_memory_exclusive_pair.ml + aarch64_memory_atomicops_swp.ml + aarch64_memory_atomicops_ld.ml + aarch64_memory_atomicops_cas_single.ml + aarch64_memory_atomicops_cas_pair.ml + aarch64_integer_tags_mcsubtag.ml + aarch64_integer_tags_mcsettagpre.ml + aarch64_integer_tags_mcsettagpost.ml + aarch64_integer_tags_mcsettagpairpre.ml + aarch64_integer_tags_mcsettagpairpost.ml + aarch64_integer_tags_mcsettagpairandzerodatapre.ml + aarch64_integer_tags_mcsettagpairandzerodatapost.ml + aarch64_integer_tags_mcsettagpairandzerodata.ml + aarch64_integer_tags_mcsettagpair.ml + aarch64_integer_tags_mcsettagarray.ml + aarch64_integer_tags_mcsettagandzerodatapre.ml + aarch64_integer_tags_mcsettagandzerodatapost.ml + aarch64_integer_tags_mcsettagandzerodata.ml + aarch64_integer_tags_mcsettagandzeroarray.ml + aarch64_integer_tags_mcsettaganddatapairpre.ml + aarch64_integer_tags_mcsettaganddatapairpost.ml + aarch64_integer_tags_mcsettaganddatapair.ml + aarch64_integer_tags_mcsettag.ml + aarch64_integer_tags_mcinserttagmask.ml + aarch64_integer_tags_mcinsertrandomtag.ml + aarch64_integer_tags_mcgettagarray.ml + aarch64_integer_tags_mcgettag.ml + aarch64_integer_tags_mcaddtag.ml + aarch64_integer_shift_variable.ml + aarch64_integer_pac_strip_hint.ml + aarch64_integer_pac_pacib_hint.ml + aarch64_integer_pac_pacib_dp_1src.ml + aarch64_integer_pac_pacia_hint.ml + aarch64_integer_pac_pacia_dp_1src.ml + aarch64_integer_pac_pacdb_dp_1src.ml + aarch64_integer_pac_pacda_dp_1src.ml + aarch64_integer_pac_autib_hint.ml + aarch64_integer_pac_autib_dp_1src.ml + aarch64_integer_pac_autia_hint.ml + aarch64_integer_pac_autia_dp_1src.ml + aarch64_integer_pac_autdb_dp_1src.ml + aarch64_integer_pac_autda_dp_1src.ml + aarch64_integer_logical_shiftedreg.ml + aarch64_integer_logical_immediate.ml + aarch64_integer_ins_ext_insert_movewide.ml + aarch64_integer_ins_ext_extract_immediate.ml + aarch64_integer_flags_xaflag.ml + aarch64_integer_flags_setf.ml + aarch64_integer_flags_rmif.ml + aarch64_integer_flags_cfinv.ml + aarch64_integer_flags_axflag.ml + aarch64_integer_crc.ml + aarch64_integer_conditional_select.ml + aarch64_integer_conditional_compare_register.ml + aarch64_integer_conditional_compare_immediate.ml + aarch64_integer_bitfield.ml + aarch64_integer_arithmetic_rev.ml + aarch64_integer_arithmetic_rbit.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml + aarch64_integer_arithmetic_mul_widening_64_128hi.ml + aarch64_integer_arithmetic_mul_widening_32_64.ml + aarch64_integer_arithmetic_mul_uniform_add_sub.ml + aarch64_integer_arithmetic_div.ml + aarch64_integer_arithmetic_cnt.ml + aarch64_integer_arithmetic_address_pc_rel.ml + aarch64_integer_arithmetic_add_sub_shiftedreg.ml + aarch64_integer_arithmetic_add_sub_immediate.ml + aarch64_integer_arithmetic_add_sub_extendedreg.ml + aarch64_integer_arithmetic_add_sub_carry.ml + aarch64_float_move_fp_select.ml + aarch64_float_move_fp_imm.ml + aarch64_float_convert_int.ml + aarch64_float_convert_fp.ml + aarch64_float_convert_fix.ml + aarch64_float_compare_uncond.ml + aarch64_float_compare_cond.ml + aarch64_float_arithmetic_unary.ml + aarch64_float_arithmetic_round_frint_32_64.ml + aarch64_float_arithmetic_round_frint.ml + aarch64_float_arithmetic_mul_product.ml + aarch64_float_arithmetic_mul_add_sub.ml + aarch64_float_arithmetic_max_min.ml + aarch64_float_arithmetic_div.ml + aarch64_float_arithmetic_add_sub.ml + aarch64_branch_unconditional_register.ml + aarch64_branch_unconditional_immediate.ml + aarch64_branch_unconditional_eret.ml + aarch64_branch_unconditional_dret.ml + aarch64_branch_conditional_test.ml + aarch64_branch_conditional_cond.ml + aarch64_branch_conditional_compare.ml + Offline_utils.ml +) + (deps gen-command) + (action (chdir %{workspace_root} + (progn (with-stdin-from offlineASL/gen-command (run asli)))) + )) + + + (library + (name offlineASL) + (public_name aslp_offline.pc_aarch64) + (flags + (:standard -w -27 -w -33 -cclib -lstdc++)) + (modules offline decode_tests - offline_utils + aarch64_vector_transfer_vector_table + aarch64_vector_transfer_vector_permute_zip + aarch64_vector_transfer_vector_permute_unzip + aarch64_vector_transfer_vector_permute_transpose + aarch64_vector_transfer_vector_insert + aarch64_vector_transfer_vector_extract + aarch64_vector_transfer_vector_cpy_dup_sisd + aarch64_vector_transfer_vector_cpy_dup_simd + aarch64_vector_transfer_integer_move_unsigned + aarch64_vector_transfer_integer_move_signed + aarch64_vector_transfer_integer_insert + aarch64_vector_transfer_integer_dup + aarch64_vector_shift_right_sisd + aarch64_vector_shift_right_simd + aarch64_vector_shift_right_narrow_uniform_sisd + aarch64_vector_shift_right_narrow_uniform_simd + aarch64_vector_shift_right_narrow_nonuniform_sisd + aarch64_vector_shift_right_narrow_nonuniform_simd + aarch64_vector_shift_right_narrow_logical + aarch64_vector_shift_right_insert_sisd + aarch64_vector_shift_right_insert_simd + aarch64_vector_shift_left_sisd + aarch64_vector_shift_left_simd + aarch64_vector_shift_left_sat_sisd + aarch64_vector_shift_left_sat_simd + aarch64_vector_shift_left_long + aarch64_vector_shift_left_insert_sisd + aarch64_vector_shift_left_insert_simd + aarch64_vector_shift_conv_int_sisd + aarch64_vector_shift_conv_int_simd + aarch64_vector_shift_conv_float_sisd + aarch64_vector_shift_conv_float_simd + aarch64_vector_reduce_int_max + aarch64_vector_reduce_fp_maxnm_sisd + aarch64_vector_reduce_fp_maxnm_simd + aarch64_vector_reduce_fp_max_sisd + aarch64_vector_reduce_fp_max_simd + aarch64_vector_reduce_fp_add_sisd + aarch64_vector_reduce_fp16_maxnm_sisd + aarch64_vector_reduce_fp16_maxnm_simd + aarch64_vector_reduce_fp16_max_sisd + aarch64_vector_reduce_fp16_max_simd + aarch64_vector_reduce_fp16_add_sisd + aarch64_vector_reduce_add_sisd + aarch64_vector_reduce_add_simd + aarch64_vector_reduce_add_long + aarch64_vector_logical + aarch64_vector_fp16_movi + aarch64_vector_cvt_bf16_vector + aarch64_vector_cvt_bf16_scalar + aarch64_vector_crypto_sm4_sm4enckey + aarch64_vector_crypto_sm4_sm4enc + aarch64_vector_crypto_sm3_sm3tt2b + aarch64_vector_crypto_sm3_sm3tt2a + aarch64_vector_crypto_sm3_sm3tt1b + aarch64_vector_crypto_sm3_sm3tt1a + aarch64_vector_crypto_sm3_sm3ss1 + aarch64_vector_crypto_sm3_sm3partw2 + aarch64_vector_crypto_sm3_sm3partw1 + aarch64_vector_crypto_sha512_sha512su1 + aarch64_vector_crypto_sha512_sha512su0 + aarch64_vector_crypto_sha512_sha512h2 + aarch64_vector_crypto_sha512_sha512h + aarch64_vector_crypto_sha3op_sha256_sched1 + aarch64_vector_crypto_sha3op_sha256_hash + aarch64_vector_crypto_sha3op_sha1_sched0 + aarch64_vector_crypto_sha3op_sha1_hash_parity + aarch64_vector_crypto_sha3op_sha1_hash_majority + aarch64_vector_crypto_sha3op_sha1_hash_choose + aarch64_vector_crypto_sha3_xar + aarch64_vector_crypto_sha3_rax1 + aarch64_vector_crypto_sha3_eor3 + aarch64_vector_crypto_sha3_bcax + aarch64_vector_crypto_sha2op_sha256_sched0 + aarch64_vector_crypto_sha2op_sha1_sched1 + aarch64_vector_crypto_sha2op_sha1_hash + aarch64_vector_crypto_aes_round + aarch64_vector_crypto_aes_mix + aarch64_vector_bfmmla + aarch64_vector_arithmetic_unary_special_sqrt_fp16 + aarch64_vector_arithmetic_unary_special_sqrt_est_int + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd + aarch64_vector_arithmetic_unary_special_sqrt + aarch64_vector_arithmetic_unary_special_recip_int + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd + aarch64_vector_arithmetic_unary_special_recip_fp16_simd + aarch64_vector_arithmetic_unary_special_recip_float_sisd + aarch64_vector_arithmetic_unary_special_recip_float_simd + aarch64_vector_arithmetic_unary_special_frecpx_fp16 + aarch64_vector_arithmetic_unary_special_frecpx + aarch64_vector_arithmetic_unary_shift + aarch64_vector_arithmetic_unary_rev + aarch64_vector_arithmetic_unary_rbit + aarch64_vector_arithmetic_unary_not + aarch64_vector_arithmetic_unary_fp16_round + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd + aarch64_vector_arithmetic_unary_fp16_conv_int_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_float_xtn_sisd + aarch64_vector_arithmetic_unary_float_xtn_simd + aarch64_vector_arithmetic_unary_float_widen + aarch64_vector_arithmetic_unary_float_round_frint_32_64 + aarch64_vector_arithmetic_unary_float_round + aarch64_vector_arithmetic_unary_float_narrow + aarch64_vector_arithmetic_unary_float_conv_int_sisd + aarch64_vector_arithmetic_unary_float_conv_int_simd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd + aarch64_vector_arithmetic_unary_extract_sqxtun_simd + aarch64_vector_arithmetic_unary_extract_sat_sisd + aarch64_vector_arithmetic_unary_extract_sat_simd + aarch64_vector_arithmetic_unary_extract_nosat + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd + aarch64_vector_arithmetic_unary_diff_neg_sat_simd + aarch64_vector_arithmetic_unary_diff_neg_int_sisd + aarch64_vector_arithmetic_unary_diff_neg_int_simd + aarch64_vector_arithmetic_unary_diff_neg_fp16 + aarch64_vector_arithmetic_unary_diff_neg_float + aarch64_vector_arithmetic_unary_cnt + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd + aarch64_vector_arithmetic_unary_clsz + aarch64_vector_arithmetic_unary_add_saturating_sisd + aarch64_vector_arithmetic_unary_add_saturating_simd + aarch64_vector_arithmetic_unary_add_pairwise + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd + aarch64_vector_arithmetic_binary_uniform_sub_int + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd + aarch64_vector_arithmetic_binary_uniform_shift_sisd + aarch64_vector_arithmetic_binary_uniform_shift_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd + aarch64_vector_arithmetic_binary_uniform_recps_sisd + aarch64_vector_arithmetic_binary_uniform_recps_simd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_product + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot + aarch64_vector_arithmetic_binary_uniform_mul_int_accum + aarch64_vector_arithmetic_binary_uniform_mul_fp_product + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_uniform_max_min_single + aarch64_vector_arithmetic_binary_uniform_max_min_pair + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor + aarch64_vector_arithmetic_binary_uniform_logical_and_orr + aarch64_vector_arithmetic_binary_uniform_div_fp16 + aarch64_vector_arithmetic_binary_uniform_div + aarch64_vector_arithmetic_binary_uniform_diff + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding + aarch64_vector_arithmetic_binary_uniform_add_fp_complex + aarch64_vector_arithmetic_binary_uniform_add_fp16 + aarch64_vector_arithmetic_binary_uniform_add_fp + aarch64_vector_arithmetic_binary_element_mul_long + aarch64_vector_arithmetic_binary_element_mul_int + aarch64_vector_arithmetic_binary_element_mul_high_sisd + aarch64_vector_arithmetic_binary_element_mul_high_simd + aarch64_vector_arithmetic_binary_element_mul_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_fp_simd + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_double_sisd + aarch64_vector_arithmetic_binary_element_mul_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower + aarch64_vector_arithmetic_binary_element_mul_acc_long + aarch64_vector_arithmetic_binary_element_mul_acc_int + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_complex + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp + aarch64_vector_arithmetic_binary_element_dotp + aarch64_vector_arithmetic_binary_element_bfdot + aarch64_vector_arithmetic_binary_disparate_mul_product + aarch64_vector_arithmetic_binary_disparate_mul_poly + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd + aarch64_vector_arithmetic_binary_disparate_mul_double_simd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd + aarch64_vector_arithmetic_binary_disparate_mul_accum + aarch64_vector_arithmetic_binary_disparate_diff + aarch64_vector_arithmetic_binary_disparate_add_sub_wide + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow + aarch64_vector_arithmetic_binary_disparate_add_sub_long + aarch64_udf + aarch64_system_sysops + aarch64_system_register_cpsr + aarch64_system_monitors + aarch64_system_exceptions_runtime_hvc + aarch64_system_exceptions_debug_halt + aarch64_system_exceptions_debug_breakpoint + aarch64_system_barriers_ssbb + aarch64_system_barriers_sb + aarch64_system_barriers_pssbb + aarch64_system_barriers_isb + aarch64_system_barriers_dsb + aarch64_system_barriers_dmb + aarch64_memory_vector_single_post_inc + aarch64_memory_vector_single_no_wb + aarch64_memory_vector_multiple_post_inc + aarch64_memory_vector_multiple_no_wb + aarch64_memory_single_simdfp_register + aarch64_memory_single_simdfp_immediate_unsigned + aarch64_memory_single_simdfp_immediate_signed_pre_idx + aarch64_memory_single_simdfp_immediate_signed_post_idx + aarch64_memory_single_simdfp_immediate_signed_offset_normal + aarch64_memory_single_general_register + aarch64_memory_single_general_immediate_unsigned + aarch64_memory_single_general_immediate_signed_pre_idx + aarch64_memory_single_general_immediate_signed_post_idx + aarch64_memory_single_general_immediate_signed_pac + aarch64_memory_single_general_immediate_signed_offset_unpriv + aarch64_memory_single_general_immediate_signed_offset_normal + aarch64_memory_single_general_immediate_signed_offset_lda_stl + aarch64_memory_pair_simdfp_pre_idx + aarch64_memory_pair_simdfp_post_idx + aarch64_memory_pair_simdfp_offset + aarch64_memory_pair_simdfp_no_alloc + aarch64_memory_pair_general_pre_idx + aarch64_memory_pair_general_post_idx + aarch64_memory_pair_general_offset + aarch64_memory_pair_general_no_alloc + aarch64_memory_ordered_rcpc + aarch64_memory_ordered + aarch64_memory_literal_simdfp + aarch64_memory_literal_general + aarch64_memory_exclusive_single + aarch64_memory_exclusive_pair + aarch64_memory_atomicops_swp + aarch64_memory_atomicops_ld + aarch64_memory_atomicops_cas_single + aarch64_memory_atomicops_cas_pair + aarch64_integer_tags_mcsubtag + aarch64_integer_tags_mcsettagpre + aarch64_integer_tags_mcsettagpost + aarch64_integer_tags_mcsettagpairpre + aarch64_integer_tags_mcsettagpairpost + aarch64_integer_tags_mcsettagpairandzerodatapre + aarch64_integer_tags_mcsettagpairandzerodatapost + aarch64_integer_tags_mcsettagpairandzerodata + aarch64_integer_tags_mcsettagpair + aarch64_integer_tags_mcsettagarray + aarch64_integer_tags_mcsettagandzerodatapre + aarch64_integer_tags_mcsettagandzerodatapost + aarch64_integer_tags_mcsettagandzerodata + aarch64_integer_tags_mcsettagandzeroarray + aarch64_integer_tags_mcsettaganddatapairpre + aarch64_integer_tags_mcsettaganddatapairpost + aarch64_integer_tags_mcsettaganddatapair + aarch64_integer_tags_mcsettag + aarch64_integer_tags_mcinserttagmask + aarch64_integer_tags_mcinsertrandomtag + aarch64_integer_tags_mcgettagarray + aarch64_integer_tags_mcgettag + aarch64_integer_tags_mcaddtag + aarch64_integer_shift_variable + aarch64_integer_pac_strip_hint + aarch64_integer_pac_pacib_hint + aarch64_integer_pac_pacib_dp_1src + aarch64_integer_pac_pacia_hint + aarch64_integer_pac_pacia_dp_1src + aarch64_integer_pac_pacdb_dp_1src + aarch64_integer_pac_pacda_dp_1src + aarch64_integer_pac_autib_hint + aarch64_integer_pac_autib_dp_1src + aarch64_integer_pac_autia_hint + aarch64_integer_pac_autia_dp_1src + aarch64_integer_pac_autdb_dp_1src + aarch64_integer_pac_autda_dp_1src + aarch64_integer_logical_shiftedreg + aarch64_integer_logical_immediate + aarch64_integer_ins_ext_insert_movewide + aarch64_integer_ins_ext_extract_immediate + aarch64_integer_flags_xaflag + aarch64_integer_flags_setf + aarch64_integer_flags_rmif + aarch64_integer_flags_cfinv + aarch64_integer_flags_axflag + aarch64_integer_crc + aarch64_integer_conditional_select + aarch64_integer_conditional_compare_register + aarch64_integer_conditional_compare_immediate + aarch64_integer_bitfield + aarch64_integer_arithmetic_rev + aarch64_integer_arithmetic_rbit + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress + aarch64_integer_arithmetic_mul_widening_64_128hi + aarch64_integer_arithmetic_mul_widening_32_64 + aarch64_integer_arithmetic_mul_uniform_add_sub + aarch64_integer_arithmetic_div + aarch64_integer_arithmetic_cnt + aarch64_integer_arithmetic_address_pc_rel + aarch64_integer_arithmetic_add_sub_shiftedreg + aarch64_integer_arithmetic_add_sub_immediate + aarch64_integer_arithmetic_add_sub_extendedreg + aarch64_integer_arithmetic_add_sub_carry + aarch64_float_move_fp_select + aarch64_float_move_fp_imm + aarch64_float_convert_int + aarch64_float_convert_fp + aarch64_float_convert_fix + aarch64_float_compare_uncond + aarch64_float_compare_cond + aarch64_float_arithmetic_unary + aarch64_float_arithmetic_round_frint_32_64 + aarch64_float_arithmetic_round_frint + aarch64_float_arithmetic_mul_product + aarch64_float_arithmetic_mul_add_sub + aarch64_float_arithmetic_max_min + aarch64_float_arithmetic_div + aarch64_float_arithmetic_add_sub + aarch64_branch_unconditional_register + aarch64_branch_unconditional_immediate + aarch64_branch_unconditional_eret + aarch64_branch_unconditional_dret + aarch64_branch_conditional_test + aarch64_branch_conditional_cond + aarch64_branch_conditional_compare + Offline_utils ) - (libraries asli.libASL)) + (libraries asli.libASL)) diff --git a/offlineASL/gen-command b/offlineASL/gen-command new file mode 100644 index 00000000..bf67c811 --- /dev/null +++ b/offlineASL/gen-command @@ -0,0 +1 @@ +:gen A64 aarch64.+ ocaml false offlineASL/ diff --git a/offlineASL/offline.ml b/offlineASL/offline.ml deleted file mode 100644 index 7e87b0ad..00000000 --- a/offlineASL/offline.ml +++ /dev/null @@ -1,12 +0,0 @@ -(* AUTO-GENERATED LIFTER FILE *) - -open Offline_utils -open Decode_tests - -let f_A64_decoder v_enc : unit = - failwith "unsupported" - -let run ?pc enc = - reset_ir (); - f_A64_decoder enc; - get_ir () diff --git a/offlineASL/offline_utils.ml b/offlineASL/template_offline_utils.ml similarity index 100% rename from offlineASL/offline_utils.ml rename to offlineASL/template_offline_utils.ml From b077a7d1be63a5e6fe1a3af645ae75fda732d9f0 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 16 Jan 2025 16:40:48 +1000 Subject: [PATCH 04/17] make `dune build` build just asli the install dependency was requiring a build of all packages. note, to install asli only, you will have to use `dune install -p asli` --- dune | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dune b/dune index 6347f813..d6b07ad2 100644 --- a/dune +++ b/dune @@ -1,4 +1,4 @@ -(alias +(alias (name asl_files) (deps prelude.asl @@ -22,4 +22,4 @@ (alias (name default) - (deps (package asli) (alias install))) + (deps (package asli) asli.install)) From a61fcfb20315e456ab4cefc6928352f8380564d9 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 16 Jan 2025 16:44:11 +1000 Subject: [PATCH 05/17] make `dune build offlineASL` build all aslp offline things this will also build asli if needed for the offline generation --- offlineASL/dune | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/offlineASL/dune b/offlineASL/dune index 02951f4f..f5094fd9 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,4 +1,4 @@ -(rule (targets +(rule (targets offline.ml decode_tests.ml aarch64_vector_transfer_vector_table.ml @@ -387,9 +387,9 @@ aarch64_branch_conditional_cond.ml aarch64_branch_conditional_compare.ml Offline_utils.ml -) +) (deps gen-command) - (action (chdir %{workspace_root} + (action (chdir %{workspace_root} (progn (with-stdin-from offlineASL/gen-command (run asli)))) )) @@ -399,7 +399,7 @@ (public_name aslp_offline.pc_aarch64) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules + (modules offline decode_tests aarch64_vector_transfer_vector_table @@ -790,3 +790,8 @@ Offline_utils ) (libraries asli.libASL)) + + +(alias + (name default) + (deps (package aslp_offline) ../aslp_offline.install)) From e7c9d64c9b812db2e3c9b3624af13a5763e2b6bc Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 16 Jan 2025 17:09:42 +1000 Subject: [PATCH 06/17] readme: recommend dune to install package, clarify subpackages --- README.md | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b61345ed..22012d3b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # *ASLp* - ASL Partial Evaluator -This forks ASLi to extract usable semantics from the -architecture specifications. -The semantics produced are in ASL but are reduced to contain -only simple control flow and scalar types, +This forks ASLi to extract usable semantics from the +architecture specifications. +The semantics produced are in ASL but are reduced to contain +only simple control flow and scalar types, for use in further static analysis. ## Introduction @@ -29,10 +29,10 @@ To build and run the ASL interpreter, you will need: * odoc - OCaml documentation generator (optional) * dune - OCaml build system * menhir - parser generator tool - * ott - tool for defining language grammars and semantics + * ott - tool for defining language grammars and semantics * linenoise - OCaml line editing library * pprint - OCaml pretty-printing library - * z3 - OCaml bindings for the Z3 SMT solver + * z3 - OCaml bindings for the Z3 SMT solver * zarith - OCaml multiprecision arithmetic library @@ -144,11 +144,29 @@ these steps will install the package in a location discoverable by opam and dune After installing dependencies and testing the build, run these commands in this directory: ``` - opam pin . -k path - opam install . + dune build + dune install -p asli ``` Once complete, you can verify the package is installed by running `ocamlfind query asli`. +#### ASLp Offline OCaml lifter + +To build the offline lifter, which depends on the main ASLp package, first install the ASLp +package as above. +Then, use: +```bash +dune build -p aslp_offline +dune install -p aslp_offline +``` +Note: this uses the installed copy of ASLp to generate the offline lifter. +If you want to simultaneously build ASLp and use this version to generate the lifter, +use `dune build offlineASL`. + +Basically, `-p` acts as if all packages other than the one listed +do not exist in this dune project, forcing it to look elsewhere. +This can be useful when building and installing packages individually. + + ### Using ASL lexer @@ -206,7 +224,7 @@ ASLi> ``` LLVM can be used to obtain the bytecode for a particular instruction mnemonic: ```bash -$ echo 'add x1, x2, x3, LSL 4' | +$ echo 'add x1, x2, x3, LSL 4' | clang -x assembler -target aarch64 - -c -o/dev/stdout | llvm-objdump - -d --section=.text | tail -n1 @@ -274,12 +292,12 @@ For the coverage tests, the tests are simple diff tests against an expected outp In both cases, dune will report test failures as a difference against the expected output. [`dune promote`](https://dune.readthedocs.io/en/latest/concepts/promotion.html) can be used to update the expected files with the output from the latest run. - + #### Differential testing The `:coverage` command is used to test equivalence of the partial evaluator and the interpreter. It takes a regular expression of an instruction group, then generates and evaluates the partially evaluated -ASL as well as the original ASL and compares the final states. +ASL as well as the original ASL and compares the final states. Instruction groups can be found in the [mra_tools/arch/arch_instrs.asl](mra_tools/arch/arch_instrs.asl) file. ``` ASLi> :coverage A64 aarch64_integer.+ @@ -295,7 +313,7 @@ ASLi> :coverage A64 aarch64_integer.+ [...] ``` -"OK" indicates the machine state after both executions are the same, +"OK" indicates the machine state after both executions are the same, as we would expect if the partial evaluation is correct. UNDEFINED means that particular bytecode is an undefined case in the architecture. If an exception occurs somewhere else in the process, that will be reported as well. @@ -304,9 +322,9 @@ If an exception occurs somewhere else in the process, that will be reported as w - Lam, K., & Coughlin, N. (2023). Lift-off: Trustworthy ARMv8 semantics from formal specifications. -In A. Nadel & K. Y. Rozier (Eds.), +In A. Nadel & K. Y. Rozier (Eds.), _Proceedings of the 23rd Conference on Formal Methods in Computer-Aided Design – FMCAD 2023_ -(pp. 274–283). +(pp. 274–283). TU Wien Academic Press. [10.34727/2023/isbn.978-3-85448-060-0_36](https://doi.org/10.34727/2023/isbn.978-3-85448-060-0_36) From d68137fb51eba18818a8f22bd4c53d05009ef7b7 Mon Sep 17 00:00:00 2001 From: am Date: Thu, 16 Jan 2025 20:28:05 +1000 Subject: [PATCH 07/17] separate offline lifter with pc support --- libASL/ocaml_backend.ml | 22 +- offlineASL-pc/dune | 796 ++++++++++++++++++++++++++++++++++++++ offlineASL-pc/gen-command | 1 + offlineASL/dune | 5 +- offlineASL/gen-command | 2 +- 5 files changed, 813 insertions(+), 13 deletions(-) create mode 100644 offlineASL-pc/dune create mode 100644 offlineASL-pc/gen-command diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 564c91af..30bbfe5b 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -73,7 +73,7 @@ let write_epilogue use_pc fid st = | false -> Printf.sprintf "%s enc" ) (name_of_ident fid) in - let pc_arg = " ?(pc:int option)" in + let pc_arg = if use_pc then " ~(pc:int)" else "" in Printf.fprintf st.oc "let run%s enc =\n reset_ir ();\n %s;\n get_ir ()\n" pc_arg dis_call let write_line s st = @@ -385,20 +385,24 @@ let write_new_dune_file use_pc files dir : unit = ) files in let oc = open_out (dir ^ "/dune") in Printf.fprintf oc " - (rule (targets \n%s) + (rule (targets + %s + ) (deps gen-command) - (action (chdir %%{workspace_root} - (with-stdin-from %s/gen-command (run asli)) - )))" - target_gen_files dir ; + (action + (with-stdin-from gen-command (run asli)) + ))" + target_gen_files ; Printf.fprintf oc "\n\n"; + let name = if use_pc then "offlineASL_pc" else "off" in Printf.fprintf oc " (library - (name offlineASL) + (name %s) (public_name aslp_offline.%s) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) (modules \n" + name (if use_pc then "pc_aarch64" else "aarch64") ; List.iter (fun k -> Printf.fprintf oc " %s\n" k @@ -436,8 +440,8 @@ let run config dfn dfnsig tests fns = let files = Bindings.fold (fun fn fnsig acc -> (write_instr_file fn fnsig dir)::acc) fns [] in let files = (write_test_file tests dir)::files in let decoder = write_decoder_file config.use_pc dfn dfnsig files dir in - write_new_dune_file config.use_pc (decoder::files@global_deps) dir ; - write_ibi dir + write_ibi dir ; + write_new_dune_file config.use_pc (decoder::files@global_deps) dir module OcamlBackend : Backend = struct let run ~(config:conf) dfn dfnsig tests fns = run config dfn dfnsig tests fns diff --git a/offlineASL-pc/dune b/offlineASL-pc/dune new file mode 100644 index 00000000..94591e5a --- /dev/null +++ b/offlineASL-pc/dune @@ -0,0 +1,796 @@ +(rule (targets + offline.ml + decode_tests.ml + aarch64_vector_transfer_vector_table.ml + aarch64_vector_transfer_vector_permute_zip.ml + aarch64_vector_transfer_vector_permute_unzip.ml + aarch64_vector_transfer_vector_permute_transpose.ml + aarch64_vector_transfer_vector_insert.ml + aarch64_vector_transfer_vector_extract.ml + aarch64_vector_transfer_vector_cpy_dup_sisd.ml + aarch64_vector_transfer_vector_cpy_dup_simd.ml + aarch64_vector_transfer_integer_move_unsigned.ml + aarch64_vector_transfer_integer_move_signed.ml + aarch64_vector_transfer_integer_insert.ml + aarch64_vector_transfer_integer_dup.ml + aarch64_vector_shift_right_sisd.ml + aarch64_vector_shift_right_simd.ml + aarch64_vector_shift_right_narrow_uniform_sisd.ml + aarch64_vector_shift_right_narrow_uniform_simd.ml + aarch64_vector_shift_right_narrow_nonuniform_sisd.ml + aarch64_vector_shift_right_narrow_nonuniform_simd.ml + aarch64_vector_shift_right_narrow_logical.ml + aarch64_vector_shift_right_insert_sisd.ml + aarch64_vector_shift_right_insert_simd.ml + aarch64_vector_shift_left_sisd.ml + aarch64_vector_shift_left_simd.ml + aarch64_vector_shift_left_sat_sisd.ml + aarch64_vector_shift_left_sat_simd.ml + aarch64_vector_shift_left_long.ml + aarch64_vector_shift_left_insert_sisd.ml + aarch64_vector_shift_left_insert_simd.ml + aarch64_vector_shift_conv_int_sisd.ml + aarch64_vector_shift_conv_int_simd.ml + aarch64_vector_shift_conv_float_sisd.ml + aarch64_vector_shift_conv_float_simd.ml + aarch64_vector_reduce_int_max.ml + aarch64_vector_reduce_fp_maxnm_sisd.ml + aarch64_vector_reduce_fp_maxnm_simd.ml + aarch64_vector_reduce_fp_max_sisd.ml + aarch64_vector_reduce_fp_max_simd.ml + aarch64_vector_reduce_fp_add_sisd.ml + aarch64_vector_reduce_fp16_maxnm_sisd.ml + aarch64_vector_reduce_fp16_maxnm_simd.ml + aarch64_vector_reduce_fp16_max_sisd.ml + aarch64_vector_reduce_fp16_max_simd.ml + aarch64_vector_reduce_fp16_add_sisd.ml + aarch64_vector_reduce_add_sisd.ml + aarch64_vector_reduce_add_simd.ml + aarch64_vector_reduce_add_long.ml + aarch64_vector_logical.ml + aarch64_vector_fp16_movi.ml + aarch64_vector_cvt_bf16_vector.ml + aarch64_vector_cvt_bf16_scalar.ml + aarch64_vector_crypto_sm4_sm4enckey.ml + aarch64_vector_crypto_sm4_sm4enc.ml + aarch64_vector_crypto_sm3_sm3tt2b.ml + aarch64_vector_crypto_sm3_sm3tt2a.ml + aarch64_vector_crypto_sm3_sm3tt1b.ml + aarch64_vector_crypto_sm3_sm3tt1a.ml + aarch64_vector_crypto_sm3_sm3ss1.ml + aarch64_vector_crypto_sm3_sm3partw2.ml + aarch64_vector_crypto_sm3_sm3partw1.ml + aarch64_vector_crypto_sha512_sha512su1.ml + aarch64_vector_crypto_sha512_sha512su0.ml + aarch64_vector_crypto_sha512_sha512h2.ml + aarch64_vector_crypto_sha512_sha512h.ml + aarch64_vector_crypto_sha3op_sha256_sched1.ml + aarch64_vector_crypto_sha3op_sha256_hash.ml + aarch64_vector_crypto_sha3op_sha1_sched0.ml + aarch64_vector_crypto_sha3op_sha1_hash_parity.ml + aarch64_vector_crypto_sha3op_sha1_hash_majority.ml + aarch64_vector_crypto_sha3op_sha1_hash_choose.ml + aarch64_vector_crypto_sha3_xar.ml + aarch64_vector_crypto_sha3_rax1.ml + aarch64_vector_crypto_sha3_eor3.ml + aarch64_vector_crypto_sha3_bcax.ml + aarch64_vector_crypto_sha2op_sha256_sched0.ml + aarch64_vector_crypto_sha2op_sha1_sched1.ml + aarch64_vector_crypto_sha2op_sha1_hash.ml + aarch64_vector_crypto_aes_round.ml + aarch64_vector_crypto_aes_mix.ml + aarch64_vector_bfmmla.ml + aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt.ml + aarch64_vector_arithmetic_unary_special_recip_int.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_float_simd.ml + aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml + aarch64_vector_arithmetic_unary_special_frecpx.ml + aarch64_vector_arithmetic_unary_shift.ml + aarch64_vector_arithmetic_unary_rev.ml + aarch64_vector_arithmetic_unary_rbit.ml + aarch64_vector_arithmetic_unary_not.ml + aarch64_vector_arithmetic_unary_fp16_round.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_float_xtn_sisd.ml + aarch64_vector_arithmetic_unary_float_xtn_simd.ml + aarch64_vector_arithmetic_unary_float_widen.ml + aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml + aarch64_vector_arithmetic_unary_float_round.ml + aarch64_vector_arithmetic_unary_float_narrow.ml + aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_int_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml + aarch64_vector_arithmetic_unary_extract_sat_sisd.ml + aarch64_vector_arithmetic_unary_extract_sat_simd.ml + aarch64_vector_arithmetic_unary_extract_nosat.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_fp16.ml + aarch64_vector_arithmetic_unary_diff_neg_float.ml + aarch64_vector_arithmetic_unary_cnt.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_clsz.ml + aarch64_vector_arithmetic_unary_add_saturating_sisd.ml + aarch64_vector_arithmetic_unary_add_saturating_simd.ml + aarch64_vector_arithmetic_unary_add_pairwise.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_int.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml + aarch64_vector_arithmetic_binary_uniform_shift_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_uniform_max_min_single.ml + aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml + aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml + aarch64_vector_arithmetic_binary_uniform_div_fp16.ml + aarch64_vector_arithmetic_binary_uniform_div.ml + aarch64_vector_arithmetic_binary_uniform_diff.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml + aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_add_fp16.ml + aarch64_vector_arithmetic_binary_uniform_add_fp.ml + aarch64_vector_arithmetic_binary_element_mul_long.ml + aarch64_vector_arithmetic_binary_element_mul_int.ml + aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml + aarch64_vector_arithmetic_binary_element_mul_acc_long.ml + aarch64_vector_arithmetic_binary_element_mul_acc_int.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_element_dotp.ml + aarch64_vector_arithmetic_binary_element_bfdot.ml + aarch64_vector_arithmetic_binary_disparate_mul_product.ml + aarch64_vector_arithmetic_binary_disparate_mul_poly.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_accum.ml + aarch64_vector_arithmetic_binary_disparate_diff.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml + aarch64_udf.ml + aarch64_system_sysops.ml + aarch64_system_register_cpsr.ml + aarch64_system_monitors.ml + aarch64_system_exceptions_runtime_hvc.ml + aarch64_system_exceptions_debug_halt.ml + aarch64_system_exceptions_debug_breakpoint.ml + aarch64_system_barriers_ssbb.ml + aarch64_system_barriers_sb.ml + aarch64_system_barriers_pssbb.ml + aarch64_system_barriers_isb.ml + aarch64_system_barriers_dsb.ml + aarch64_system_barriers_dmb.ml + aarch64_memory_vector_single_post_inc.ml + aarch64_memory_vector_single_no_wb.ml + aarch64_memory_vector_multiple_post_inc.ml + aarch64_memory_vector_multiple_no_wb.ml + aarch64_memory_single_simdfp_register.ml + aarch64_memory_single_simdfp_immediate_unsigned.ml + aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml + aarch64_memory_single_simdfp_immediate_signed_post_idx.ml + aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml + aarch64_memory_single_general_register.ml + aarch64_memory_single_general_immediate_unsigned.ml + aarch64_memory_single_general_immediate_signed_pre_idx.ml + aarch64_memory_single_general_immediate_signed_post_idx.ml + aarch64_memory_single_general_immediate_signed_pac.ml + aarch64_memory_single_general_immediate_signed_offset_unpriv.ml + aarch64_memory_single_general_immediate_signed_offset_normal.ml + aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml + aarch64_memory_pair_simdfp_pre_idx.ml + aarch64_memory_pair_simdfp_post_idx.ml + aarch64_memory_pair_simdfp_offset.ml + aarch64_memory_pair_simdfp_no_alloc.ml + aarch64_memory_pair_general_pre_idx.ml + aarch64_memory_pair_general_post_idx.ml + aarch64_memory_pair_general_offset.ml + aarch64_memory_pair_general_no_alloc.ml + aarch64_memory_ordered_rcpc.ml + aarch64_memory_ordered.ml + aarch64_memory_literal_simdfp.ml + aarch64_memory_literal_general.ml + aarch64_memory_exclusive_single.ml + aarch64_memory_exclusive_pair.ml + aarch64_memory_atomicops_swp.ml + aarch64_memory_atomicops_ld.ml + aarch64_memory_atomicops_cas_single.ml + aarch64_memory_atomicops_cas_pair.ml + aarch64_integer_tags_mcsubtag.ml + aarch64_integer_tags_mcsettagpre.ml + aarch64_integer_tags_mcsettagpost.ml + aarch64_integer_tags_mcsettagpairpre.ml + aarch64_integer_tags_mcsettagpairpost.ml + aarch64_integer_tags_mcsettagpairandzerodatapre.ml + aarch64_integer_tags_mcsettagpairandzerodatapost.ml + aarch64_integer_tags_mcsettagpairandzerodata.ml + aarch64_integer_tags_mcsettagpair.ml + aarch64_integer_tags_mcsettagarray.ml + aarch64_integer_tags_mcsettagandzerodatapre.ml + aarch64_integer_tags_mcsettagandzerodatapost.ml + aarch64_integer_tags_mcsettagandzerodata.ml + aarch64_integer_tags_mcsettagandzeroarray.ml + aarch64_integer_tags_mcsettaganddatapairpre.ml + aarch64_integer_tags_mcsettaganddatapairpost.ml + aarch64_integer_tags_mcsettaganddatapair.ml + aarch64_integer_tags_mcsettag.ml + aarch64_integer_tags_mcinserttagmask.ml + aarch64_integer_tags_mcinsertrandomtag.ml + aarch64_integer_tags_mcgettagarray.ml + aarch64_integer_tags_mcgettag.ml + aarch64_integer_tags_mcaddtag.ml + aarch64_integer_shift_variable.ml + aarch64_integer_pac_strip_hint.ml + aarch64_integer_pac_pacib_hint.ml + aarch64_integer_pac_pacib_dp_1src.ml + aarch64_integer_pac_pacia_hint.ml + aarch64_integer_pac_pacia_dp_1src.ml + aarch64_integer_pac_pacdb_dp_1src.ml + aarch64_integer_pac_pacda_dp_1src.ml + aarch64_integer_pac_autib_hint.ml + aarch64_integer_pac_autib_dp_1src.ml + aarch64_integer_pac_autia_hint.ml + aarch64_integer_pac_autia_dp_1src.ml + aarch64_integer_pac_autdb_dp_1src.ml + aarch64_integer_pac_autda_dp_1src.ml + aarch64_integer_logical_shiftedreg.ml + aarch64_integer_logical_immediate.ml + aarch64_integer_ins_ext_insert_movewide.ml + aarch64_integer_ins_ext_extract_immediate.ml + aarch64_integer_flags_xaflag.ml + aarch64_integer_flags_setf.ml + aarch64_integer_flags_rmif.ml + aarch64_integer_flags_cfinv.ml + aarch64_integer_flags_axflag.ml + aarch64_integer_crc.ml + aarch64_integer_conditional_select.ml + aarch64_integer_conditional_compare_register.ml + aarch64_integer_conditional_compare_immediate.ml + aarch64_integer_bitfield.ml + aarch64_integer_arithmetic_rev.ml + aarch64_integer_arithmetic_rbit.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml + aarch64_integer_arithmetic_mul_widening_64_128hi.ml + aarch64_integer_arithmetic_mul_widening_32_64.ml + aarch64_integer_arithmetic_mul_uniform_add_sub.ml + aarch64_integer_arithmetic_div.ml + aarch64_integer_arithmetic_cnt.ml + aarch64_integer_arithmetic_address_pc_rel.ml + aarch64_integer_arithmetic_add_sub_shiftedreg.ml + aarch64_integer_arithmetic_add_sub_immediate.ml + aarch64_integer_arithmetic_add_sub_extendedreg.ml + aarch64_integer_arithmetic_add_sub_carry.ml + aarch64_float_move_fp_select.ml + aarch64_float_move_fp_imm.ml + aarch64_float_convert_int.ml + aarch64_float_convert_fp.ml + aarch64_float_convert_fix.ml + aarch64_float_compare_uncond.ml + aarch64_float_compare_cond.ml + aarch64_float_arithmetic_unary.ml + aarch64_float_arithmetic_round_frint_32_64.ml + aarch64_float_arithmetic_round_frint.ml + aarch64_float_arithmetic_mul_product.ml + aarch64_float_arithmetic_mul_add_sub.ml + aarch64_float_arithmetic_max_min.ml + aarch64_float_arithmetic_div.ml + aarch64_float_arithmetic_add_sub.ml + aarch64_branch_unconditional_register.ml + aarch64_branch_unconditional_immediate.ml + aarch64_branch_unconditional_eret.ml + aarch64_branch_unconditional_dret.ml + aarch64_branch_conditional_test.ml + aarch64_branch_conditional_cond.ml + aarch64_branch_conditional_compare.ml + Offline_utils.ml +) + (deps gen-command) + (action (with-stdin-from gen-command (run asli)) + )) + + + (library + (name offlineASL_pc) + (public_name aslp_offline.pc_aarch64) + (flags + (:standard -w -27 -w -33 -cclib -lstdc++)) + (modules + offline + decode_tests + aarch64_vector_transfer_vector_table + aarch64_vector_transfer_vector_permute_zip + aarch64_vector_transfer_vector_permute_unzip + aarch64_vector_transfer_vector_permute_transpose + aarch64_vector_transfer_vector_insert + aarch64_vector_transfer_vector_extract + aarch64_vector_transfer_vector_cpy_dup_sisd + aarch64_vector_transfer_vector_cpy_dup_simd + aarch64_vector_transfer_integer_move_unsigned + aarch64_vector_transfer_integer_move_signed + aarch64_vector_transfer_integer_insert + aarch64_vector_transfer_integer_dup + aarch64_vector_shift_right_sisd + aarch64_vector_shift_right_simd + aarch64_vector_shift_right_narrow_uniform_sisd + aarch64_vector_shift_right_narrow_uniform_simd + aarch64_vector_shift_right_narrow_nonuniform_sisd + aarch64_vector_shift_right_narrow_nonuniform_simd + aarch64_vector_shift_right_narrow_logical + aarch64_vector_shift_right_insert_sisd + aarch64_vector_shift_right_insert_simd + aarch64_vector_shift_left_sisd + aarch64_vector_shift_left_simd + aarch64_vector_shift_left_sat_sisd + aarch64_vector_shift_left_sat_simd + aarch64_vector_shift_left_long + aarch64_vector_shift_left_insert_sisd + aarch64_vector_shift_left_insert_simd + aarch64_vector_shift_conv_int_sisd + aarch64_vector_shift_conv_int_simd + aarch64_vector_shift_conv_float_sisd + aarch64_vector_shift_conv_float_simd + aarch64_vector_reduce_int_max + aarch64_vector_reduce_fp_maxnm_sisd + aarch64_vector_reduce_fp_maxnm_simd + aarch64_vector_reduce_fp_max_sisd + aarch64_vector_reduce_fp_max_simd + aarch64_vector_reduce_fp_add_sisd + aarch64_vector_reduce_fp16_maxnm_sisd + aarch64_vector_reduce_fp16_maxnm_simd + aarch64_vector_reduce_fp16_max_sisd + aarch64_vector_reduce_fp16_max_simd + aarch64_vector_reduce_fp16_add_sisd + aarch64_vector_reduce_add_sisd + aarch64_vector_reduce_add_simd + aarch64_vector_reduce_add_long + aarch64_vector_logical + aarch64_vector_fp16_movi + aarch64_vector_cvt_bf16_vector + aarch64_vector_cvt_bf16_scalar + aarch64_vector_crypto_sm4_sm4enckey + aarch64_vector_crypto_sm4_sm4enc + aarch64_vector_crypto_sm3_sm3tt2b + aarch64_vector_crypto_sm3_sm3tt2a + aarch64_vector_crypto_sm3_sm3tt1b + aarch64_vector_crypto_sm3_sm3tt1a + aarch64_vector_crypto_sm3_sm3ss1 + aarch64_vector_crypto_sm3_sm3partw2 + aarch64_vector_crypto_sm3_sm3partw1 + aarch64_vector_crypto_sha512_sha512su1 + aarch64_vector_crypto_sha512_sha512su0 + aarch64_vector_crypto_sha512_sha512h2 + aarch64_vector_crypto_sha512_sha512h + aarch64_vector_crypto_sha3op_sha256_sched1 + aarch64_vector_crypto_sha3op_sha256_hash + aarch64_vector_crypto_sha3op_sha1_sched0 + aarch64_vector_crypto_sha3op_sha1_hash_parity + aarch64_vector_crypto_sha3op_sha1_hash_majority + aarch64_vector_crypto_sha3op_sha1_hash_choose + aarch64_vector_crypto_sha3_xar + aarch64_vector_crypto_sha3_rax1 + aarch64_vector_crypto_sha3_eor3 + aarch64_vector_crypto_sha3_bcax + aarch64_vector_crypto_sha2op_sha256_sched0 + aarch64_vector_crypto_sha2op_sha1_sched1 + aarch64_vector_crypto_sha2op_sha1_hash + aarch64_vector_crypto_aes_round + aarch64_vector_crypto_aes_mix + aarch64_vector_bfmmla + aarch64_vector_arithmetic_unary_special_sqrt_fp16 + aarch64_vector_arithmetic_unary_special_sqrt_est_int + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd + aarch64_vector_arithmetic_unary_special_sqrt + aarch64_vector_arithmetic_unary_special_recip_int + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd + aarch64_vector_arithmetic_unary_special_recip_fp16_simd + aarch64_vector_arithmetic_unary_special_recip_float_sisd + aarch64_vector_arithmetic_unary_special_recip_float_simd + aarch64_vector_arithmetic_unary_special_frecpx_fp16 + aarch64_vector_arithmetic_unary_special_frecpx + aarch64_vector_arithmetic_unary_shift + aarch64_vector_arithmetic_unary_rev + aarch64_vector_arithmetic_unary_rbit + aarch64_vector_arithmetic_unary_not + aarch64_vector_arithmetic_unary_fp16_round + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd + aarch64_vector_arithmetic_unary_fp16_conv_int_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_float_xtn_sisd + aarch64_vector_arithmetic_unary_float_xtn_simd + aarch64_vector_arithmetic_unary_float_widen + aarch64_vector_arithmetic_unary_float_round_frint_32_64 + aarch64_vector_arithmetic_unary_float_round + aarch64_vector_arithmetic_unary_float_narrow + aarch64_vector_arithmetic_unary_float_conv_int_sisd + aarch64_vector_arithmetic_unary_float_conv_int_simd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd + aarch64_vector_arithmetic_unary_extract_sqxtun_simd + aarch64_vector_arithmetic_unary_extract_sat_sisd + aarch64_vector_arithmetic_unary_extract_sat_simd + aarch64_vector_arithmetic_unary_extract_nosat + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd + aarch64_vector_arithmetic_unary_diff_neg_sat_simd + aarch64_vector_arithmetic_unary_diff_neg_int_sisd + aarch64_vector_arithmetic_unary_diff_neg_int_simd + aarch64_vector_arithmetic_unary_diff_neg_fp16 + aarch64_vector_arithmetic_unary_diff_neg_float + aarch64_vector_arithmetic_unary_cnt + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd + aarch64_vector_arithmetic_unary_clsz + aarch64_vector_arithmetic_unary_add_saturating_sisd + aarch64_vector_arithmetic_unary_add_saturating_simd + aarch64_vector_arithmetic_unary_add_pairwise + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd + aarch64_vector_arithmetic_binary_uniform_sub_int + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd + aarch64_vector_arithmetic_binary_uniform_shift_sisd + aarch64_vector_arithmetic_binary_uniform_shift_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd + aarch64_vector_arithmetic_binary_uniform_recps_sisd + aarch64_vector_arithmetic_binary_uniform_recps_simd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_product + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot + aarch64_vector_arithmetic_binary_uniform_mul_int_accum + aarch64_vector_arithmetic_binary_uniform_mul_fp_product + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_uniform_max_min_single + aarch64_vector_arithmetic_binary_uniform_max_min_pair + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor + aarch64_vector_arithmetic_binary_uniform_logical_and_orr + aarch64_vector_arithmetic_binary_uniform_div_fp16 + aarch64_vector_arithmetic_binary_uniform_div + aarch64_vector_arithmetic_binary_uniform_diff + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding + aarch64_vector_arithmetic_binary_uniform_add_fp_complex + aarch64_vector_arithmetic_binary_uniform_add_fp16 + aarch64_vector_arithmetic_binary_uniform_add_fp + aarch64_vector_arithmetic_binary_element_mul_long + aarch64_vector_arithmetic_binary_element_mul_int + aarch64_vector_arithmetic_binary_element_mul_high_sisd + aarch64_vector_arithmetic_binary_element_mul_high_simd + aarch64_vector_arithmetic_binary_element_mul_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_fp_simd + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_double_sisd + aarch64_vector_arithmetic_binary_element_mul_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower + aarch64_vector_arithmetic_binary_element_mul_acc_long + aarch64_vector_arithmetic_binary_element_mul_acc_int + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_complex + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp + aarch64_vector_arithmetic_binary_element_dotp + aarch64_vector_arithmetic_binary_element_bfdot + aarch64_vector_arithmetic_binary_disparate_mul_product + aarch64_vector_arithmetic_binary_disparate_mul_poly + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd + aarch64_vector_arithmetic_binary_disparate_mul_double_simd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd + aarch64_vector_arithmetic_binary_disparate_mul_accum + aarch64_vector_arithmetic_binary_disparate_diff + aarch64_vector_arithmetic_binary_disparate_add_sub_wide + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow + aarch64_vector_arithmetic_binary_disparate_add_sub_long + aarch64_udf + aarch64_system_sysops + aarch64_system_register_cpsr + aarch64_system_monitors + aarch64_system_exceptions_runtime_hvc + aarch64_system_exceptions_debug_halt + aarch64_system_exceptions_debug_breakpoint + aarch64_system_barriers_ssbb + aarch64_system_barriers_sb + aarch64_system_barriers_pssbb + aarch64_system_barriers_isb + aarch64_system_barriers_dsb + aarch64_system_barriers_dmb + aarch64_memory_vector_single_post_inc + aarch64_memory_vector_single_no_wb + aarch64_memory_vector_multiple_post_inc + aarch64_memory_vector_multiple_no_wb + aarch64_memory_single_simdfp_register + aarch64_memory_single_simdfp_immediate_unsigned + aarch64_memory_single_simdfp_immediate_signed_pre_idx + aarch64_memory_single_simdfp_immediate_signed_post_idx + aarch64_memory_single_simdfp_immediate_signed_offset_normal + aarch64_memory_single_general_register + aarch64_memory_single_general_immediate_unsigned + aarch64_memory_single_general_immediate_signed_pre_idx + aarch64_memory_single_general_immediate_signed_post_idx + aarch64_memory_single_general_immediate_signed_pac + aarch64_memory_single_general_immediate_signed_offset_unpriv + aarch64_memory_single_general_immediate_signed_offset_normal + aarch64_memory_single_general_immediate_signed_offset_lda_stl + aarch64_memory_pair_simdfp_pre_idx + aarch64_memory_pair_simdfp_post_idx + aarch64_memory_pair_simdfp_offset + aarch64_memory_pair_simdfp_no_alloc + aarch64_memory_pair_general_pre_idx + aarch64_memory_pair_general_post_idx + aarch64_memory_pair_general_offset + aarch64_memory_pair_general_no_alloc + aarch64_memory_ordered_rcpc + aarch64_memory_ordered + aarch64_memory_literal_simdfp + aarch64_memory_literal_general + aarch64_memory_exclusive_single + aarch64_memory_exclusive_pair + aarch64_memory_atomicops_swp + aarch64_memory_atomicops_ld + aarch64_memory_atomicops_cas_single + aarch64_memory_atomicops_cas_pair + aarch64_integer_tags_mcsubtag + aarch64_integer_tags_mcsettagpre + aarch64_integer_tags_mcsettagpost + aarch64_integer_tags_mcsettagpairpre + aarch64_integer_tags_mcsettagpairpost + aarch64_integer_tags_mcsettagpairandzerodatapre + aarch64_integer_tags_mcsettagpairandzerodatapost + aarch64_integer_tags_mcsettagpairandzerodata + aarch64_integer_tags_mcsettagpair + aarch64_integer_tags_mcsettagarray + aarch64_integer_tags_mcsettagandzerodatapre + aarch64_integer_tags_mcsettagandzerodatapost + aarch64_integer_tags_mcsettagandzerodata + aarch64_integer_tags_mcsettagandzeroarray + aarch64_integer_tags_mcsettaganddatapairpre + aarch64_integer_tags_mcsettaganddatapairpost + aarch64_integer_tags_mcsettaganddatapair + aarch64_integer_tags_mcsettag + aarch64_integer_tags_mcinserttagmask + aarch64_integer_tags_mcinsertrandomtag + aarch64_integer_tags_mcgettagarray + aarch64_integer_tags_mcgettag + aarch64_integer_tags_mcaddtag + aarch64_integer_shift_variable + aarch64_integer_pac_strip_hint + aarch64_integer_pac_pacib_hint + aarch64_integer_pac_pacib_dp_1src + aarch64_integer_pac_pacia_hint + aarch64_integer_pac_pacia_dp_1src + aarch64_integer_pac_pacdb_dp_1src + aarch64_integer_pac_pacda_dp_1src + aarch64_integer_pac_autib_hint + aarch64_integer_pac_autib_dp_1src + aarch64_integer_pac_autia_hint + aarch64_integer_pac_autia_dp_1src + aarch64_integer_pac_autdb_dp_1src + aarch64_integer_pac_autda_dp_1src + aarch64_integer_logical_shiftedreg + aarch64_integer_logical_immediate + aarch64_integer_ins_ext_insert_movewide + aarch64_integer_ins_ext_extract_immediate + aarch64_integer_flags_xaflag + aarch64_integer_flags_setf + aarch64_integer_flags_rmif + aarch64_integer_flags_cfinv + aarch64_integer_flags_axflag + aarch64_integer_crc + aarch64_integer_conditional_select + aarch64_integer_conditional_compare_register + aarch64_integer_conditional_compare_immediate + aarch64_integer_bitfield + aarch64_integer_arithmetic_rev + aarch64_integer_arithmetic_rbit + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress + aarch64_integer_arithmetic_mul_widening_64_128hi + aarch64_integer_arithmetic_mul_widening_32_64 + aarch64_integer_arithmetic_mul_uniform_add_sub + aarch64_integer_arithmetic_div + aarch64_integer_arithmetic_cnt + aarch64_integer_arithmetic_address_pc_rel + aarch64_integer_arithmetic_add_sub_shiftedreg + aarch64_integer_arithmetic_add_sub_immediate + aarch64_integer_arithmetic_add_sub_extendedreg + aarch64_integer_arithmetic_add_sub_carry + aarch64_float_move_fp_select + aarch64_float_move_fp_imm + aarch64_float_convert_int + aarch64_float_convert_fp + aarch64_float_convert_fix + aarch64_float_compare_uncond + aarch64_float_compare_cond + aarch64_float_arithmetic_unary + aarch64_float_arithmetic_round_frint_32_64 + aarch64_float_arithmetic_round_frint + aarch64_float_arithmetic_mul_product + aarch64_float_arithmetic_mul_add_sub + aarch64_float_arithmetic_max_min + aarch64_float_arithmetic_div + aarch64_float_arithmetic_add_sub + aarch64_branch_unconditional_register + aarch64_branch_unconditional_immediate + aarch64_branch_unconditional_eret + aarch64_branch_unconditional_dret + aarch64_branch_conditional_test + aarch64_branch_conditional_cond + aarch64_branch_conditional_compare + Offline_utils + ) + (libraries asli.libASL)) + + +(alias + (name default) + (deps (package aslp_offline) ../aslp_offline.install)) diff --git a/offlineASL-pc/gen-command b/offlineASL-pc/gen-command new file mode 100644 index 00000000..57faabe5 --- /dev/null +++ b/offlineASL-pc/gen-command @@ -0,0 +1 @@ +:gen A64 aarch64.+ ocaml true . diff --git a/offlineASL/dune b/offlineASL/dune index f5094fd9..82d21e0c 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -389,14 +389,13 @@ Offline_utils.ml ) (deps gen-command) - (action (chdir %{workspace_root} - (progn (with-stdin-from offlineASL/gen-command (run asli)))) + (action (with-stdin-from gen-command (run asli)) )) (library (name offlineASL) - (public_name aslp_offline.pc_aarch64) + (public_name aslp_offline.aarch64) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) (modules diff --git a/offlineASL/gen-command b/offlineASL/gen-command index bf67c811..322359ed 100644 --- a/offlineASL/gen-command +++ b/offlineASL/gen-command @@ -1 +1 @@ -:gen A64 aarch64.+ ocaml false offlineASL/ +:gen A64 aarch64.+ ocaml false . From 4bf7116fa967253e24e134734ad7668e1e6e1aa1 Mon Sep 17 00:00:00 2001 From: am Date: Thu, 16 Jan 2025 21:17:09 +1000 Subject: [PATCH 08/17] offline depend on stage0 - Moves Primops, Value and Symbolic into stage0 to support this - Some fixes for the previous commit --- bin/offline_coverage.ml | 2 +- bin/offline_sem.ml | 2 +- libASL/dune | 5 ++--- libASL/ocaml_backend.ml | 4 ++-- offlineASL-pc/dune | 2 +- offlineASL/dune | 2 +- offlineASL/template_offline_utils.ml | 2 +- 7 files changed, 9 insertions(+), 10 deletions(-) diff --git a/bin/offline_coverage.ml b/bin/offline_coverage.ml index 35e084d8..20272dec 100644 --- a/bin/offline_coverage.ml +++ b/bin/offline_coverage.ml @@ -12,7 +12,7 @@ let () = Printexc.register_printer let op_dis (op: int): stmt list opresult = let bv = Primops.prim_cvt_int_bits (Z.of_int 32) (Z.of_int op) in try - let stmts = OfflineASL.Offline.run ~pc:0 bv in + let stmts = OfflineASL.Offline.run bv in Result.Ok stmts with | e -> Result.Error (Op_DisFail e) diff --git a/bin/offline_sem.ml b/bin/offline_sem.ml index 9ac728f8..1439b206 100644 --- a/bin/offline_sem.ml +++ b/bin/offline_sem.ml @@ -5,7 +5,7 @@ open Asl_utils let run (opcode: string) (pc: int option) = let op = Z.of_string opcode in let bv = Primops.prim_cvt_int_bits (Z.of_int 32) op in - let stmts = OfflineASL.Offline.run ?pc bv in + let stmts = OfflineASL.Offline.run bv in List.iter (fun s -> Printf.printf "%s\n" (pp_stmt s)) stmts let opt_instr = ref [] diff --git a/libASL/dune b/libASL/dune index 7658e709..d4851b93 100644 --- a/libASL/dune +++ b/libASL/dune @@ -27,7 +27,7 @@ (name libASL_stage0) (public_name asli.libASL-stage0) (flags (:standard -w -27)) - (modules asl_ast asl_parser asl_parser_pp asl_utils asl_visitor visitor utils) + (modules asl_ast asl_parser asl_parser_pp asl_utils asl_visitor visitor utils value primops symbolic) (libraries pprint (re_export zarith))) (library @@ -37,8 +37,7 @@ (:standard -w -27 -cclib -lstdc++ -open LibASL_stage0)) (modules gen_backend cpu dis elf eval - lexer lexersupport loadASL monad primops rws symbolic tcheck testing transforms value - rASL_check + lexer lexersupport loadASL monad rws tcheck testing transforms rASL_check symbolic_lifter decoder_program call_graph req_analysis offline_transform dis_tc offline_opt ocaml_backend diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 30bbfe5b..f1430192 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -67,9 +67,9 @@ let write_preamble opens st = Printf.fprintf st.oc "\n" let write_epilogue use_pc fid st = - let conv_pc = "let pc = (mkBits (Z.of_int 64) (Z.of_int (Option.get pc))) in" in + let conv_pc = "let pc = (mkBits (Z.of_int 64) (Z.of_int pc)) in" in let dis_call = (match use_pc with - | true -> Printf.sprintf "if (Option.is_none pc) then (failwith \"Must provide PC\");\n %s\n %s enc pc" conv_pc + | true -> Printf.sprintf "%s\n %s enc pc" conv_pc | false -> Printf.sprintf "%s enc" ) (name_of_ident fid) in diff --git a/offlineASL-pc/dune b/offlineASL-pc/dune index 94591e5a..f2a341ef 100644 --- a/offlineASL-pc/dune +++ b/offlineASL-pc/dune @@ -788,7 +788,7 @@ aarch64_branch_conditional_compare Offline_utils ) - (libraries asli.libASL)) + (libraries asli.libASL-stage0)) (alias diff --git a/offlineASL/dune b/offlineASL/dune index 82d21e0c..76f11c26 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -788,7 +788,7 @@ aarch64_branch_conditional_compare Offline_utils ) - (libraries asli.libASL)) + (libraries asli.libASL-stage0)) (alias diff --git a/offlineASL/template_offline_utils.ml b/offlineASL/template_offline_utils.ml index d0755924..6411309b 100644 --- a/offlineASL/template_offline_utils.ml +++ b/offlineASL/template_offline_utils.ml @@ -1,4 +1,4 @@ -open LibASL +open LibASL_stage0 open Asl_ast open Primops From 966a50043beb50a1ffcd16a9249e7e4183c92685 Mon Sep 17 00:00:00 2001 From: am Date: Tue, 21 Jan 2025 22:27:47 +1000 Subject: [PATCH 09/17] update offline dune files --- libASL/ocaml_backend.ml | 21 +++++++-------- offlineASL-pc/dune | 53 +++++------------------------------- offlineASL/dune | 60 ++++++++--------------------------------- 3 files changed, 27 insertions(+), 107 deletions(-) diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index f1430192..9f320cc4 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -384,17 +384,13 @@ let write_new_dune_file use_pc files dir : unit = Printf.sprintf " %s.ml\n" k ) files in let oc = open_out (dir ^ "/dune") in - Printf.fprintf oc " - (rule (targets - %s - ) - (deps gen-command) - (action - (with-stdin-from gen-command (run asli)) - ))" - target_gen_files ; + Printf.fprintf oc "(rule + (targets\n%s) + (deps gen-command) + (action (with-stdin-from gen-command (run asli))) +)" target_gen_files ; Printf.fprintf oc "\n\n"; - let name = if use_pc then "offlineASL_pc" else "off" in + let name = if use_pc then "offlineASL_pc" else "offlineASL" in Printf.fprintf oc " (library (name %s) @@ -408,7 +404,8 @@ let write_new_dune_file use_pc files dir : unit = Printf.fprintf oc " %s\n" k ) (files); Printf.fprintf oc " ) - (libraries asli.libASL))" + (libraries asli.libASL-stage0))" ; + Printf.fprintf oc "\n(alias (name default) (deps (package aslp_offline) ../aslp_offline.install))" (* Write the dune build file *) @@ -426,7 +423,7 @@ let write_dune_file use_pc files dir = Printf.fprintf oc " %s\n" k ) files; Printf.fprintf oc " ) - (libraries asli.libASL))"; + (libraries asli.libASL-stage0))"; close_out oc let write_ibi dir = diff --git a/offlineASL-pc/dune b/offlineASL-pc/dune index f2a341ef..1400f464 100644 --- a/offlineASL-pc/dune +++ b/offlineASL-pc/dune @@ -1,4 +1,5 @@ -(rule (targets +(rule + (targets offline.ml decode_tests.ml aarch64_vector_transfer_vector_table.ml @@ -258,9 +259,6 @@ aarch64_system_exceptions_runtime_hvc.ml aarch64_system_exceptions_debug_halt.ml aarch64_system_exceptions_debug_breakpoint.ml - aarch64_system_barriers_ssbb.ml - aarch64_system_barriers_sb.ml - aarch64_system_barriers_pssbb.ml aarch64_system_barriers_isb.ml aarch64_system_barriers_dsb.ml aarch64_system_barriers_dmb.ml @@ -300,23 +298,8 @@ aarch64_memory_atomicops_cas_single.ml aarch64_memory_atomicops_cas_pair.ml aarch64_integer_tags_mcsubtag.ml - aarch64_integer_tags_mcsettagpre.ml - aarch64_integer_tags_mcsettagpost.ml - aarch64_integer_tags_mcsettagpairpre.ml - aarch64_integer_tags_mcsettagpairpost.ml - aarch64_integer_tags_mcsettagpairandzerodatapre.ml - aarch64_integer_tags_mcsettagpairandzerodatapost.ml - aarch64_integer_tags_mcsettagpairandzerodata.ml - aarch64_integer_tags_mcsettagpair.ml aarch64_integer_tags_mcsettagarray.ml - aarch64_integer_tags_mcsettagandzerodatapre.ml - aarch64_integer_tags_mcsettagandzerodatapost.ml - aarch64_integer_tags_mcsettagandzerodata.ml aarch64_integer_tags_mcsettagandzeroarray.ml - aarch64_integer_tags_mcsettaganddatapairpre.ml - aarch64_integer_tags_mcsettaganddatapairpost.ml - aarch64_integer_tags_mcsettaganddatapair.ml - aarch64_integer_tags_mcsettag.ml aarch64_integer_tags_mcinserttagmask.ml aarch64_integer_tags_mcinsertrandomtag.ml aarch64_integer_tags_mcgettagarray.ml @@ -387,10 +370,10 @@ aarch64_branch_conditional_cond.ml aarch64_branch_conditional_compare.ml Offline_utils.ml +) + (deps gen-command) + (action (with-stdin-from gen-command (run asli))) ) - (deps gen-command) - (action (with-stdin-from gen-command (run asli)) - )) (library @@ -398,7 +381,7 @@ (public_name aslp_offline.pc_aarch64) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules + (modules offline decode_tests aarch64_vector_transfer_vector_table @@ -658,9 +641,6 @@ aarch64_system_exceptions_runtime_hvc aarch64_system_exceptions_debug_halt aarch64_system_exceptions_debug_breakpoint - aarch64_system_barriers_ssbb - aarch64_system_barriers_sb - aarch64_system_barriers_pssbb aarch64_system_barriers_isb aarch64_system_barriers_dsb aarch64_system_barriers_dmb @@ -700,23 +680,8 @@ aarch64_memory_atomicops_cas_single aarch64_memory_atomicops_cas_pair aarch64_integer_tags_mcsubtag - aarch64_integer_tags_mcsettagpre - aarch64_integer_tags_mcsettagpost - aarch64_integer_tags_mcsettagpairpre - aarch64_integer_tags_mcsettagpairpost - aarch64_integer_tags_mcsettagpairandzerodatapre - aarch64_integer_tags_mcsettagpairandzerodatapost - aarch64_integer_tags_mcsettagpairandzerodata - aarch64_integer_tags_mcsettagpair aarch64_integer_tags_mcsettagarray - aarch64_integer_tags_mcsettagandzerodatapre - aarch64_integer_tags_mcsettagandzerodatapost - aarch64_integer_tags_mcsettagandzerodata aarch64_integer_tags_mcsettagandzeroarray - aarch64_integer_tags_mcsettaganddatapairpre - aarch64_integer_tags_mcsettaganddatapairpost - aarch64_integer_tags_mcsettaganddatapair - aarch64_integer_tags_mcsettag aarch64_integer_tags_mcinserttagmask aarch64_integer_tags_mcinsertrandomtag aarch64_integer_tags_mcgettagarray @@ -789,8 +754,4 @@ Offline_utils ) (libraries asli.libASL-stage0)) - - -(alias - (name default) - (deps (package aslp_offline) ../aslp_offline.install)) +(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) \ No newline at end of file diff --git a/offlineASL/dune b/offlineASL/dune index 76f11c26..408eb8b3 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,5 +1,6 @@ -(rule (targets - offline.ml + + (rule (targets + offline.ml decode_tests.ml aarch64_vector_transfer_vector_table.ml aarch64_vector_transfer_vector_permute_zip.ml @@ -258,9 +259,6 @@ aarch64_system_exceptions_runtime_hvc.ml aarch64_system_exceptions_debug_halt.ml aarch64_system_exceptions_debug_breakpoint.ml - aarch64_system_barriers_ssbb.ml - aarch64_system_barriers_sb.ml - aarch64_system_barriers_pssbb.ml aarch64_system_barriers_isb.ml aarch64_system_barriers_dsb.ml aarch64_system_barriers_dmb.ml @@ -300,23 +298,8 @@ aarch64_memory_atomicops_cas_single.ml aarch64_memory_atomicops_cas_pair.ml aarch64_integer_tags_mcsubtag.ml - aarch64_integer_tags_mcsettagpre.ml - aarch64_integer_tags_mcsettagpost.ml - aarch64_integer_tags_mcsettagpairpre.ml - aarch64_integer_tags_mcsettagpairpost.ml - aarch64_integer_tags_mcsettagpairandzerodatapre.ml - aarch64_integer_tags_mcsettagpairandzerodatapost.ml - aarch64_integer_tags_mcsettagpairandzerodata.ml - aarch64_integer_tags_mcsettagpair.ml aarch64_integer_tags_mcsettagarray.ml - aarch64_integer_tags_mcsettagandzerodatapre.ml - aarch64_integer_tags_mcsettagandzerodatapost.ml - aarch64_integer_tags_mcsettagandzerodata.ml aarch64_integer_tags_mcsettagandzeroarray.ml - aarch64_integer_tags_mcsettaganddatapairpre.ml - aarch64_integer_tags_mcsettaganddatapairpost.ml - aarch64_integer_tags_mcsettaganddatapair.ml - aarch64_integer_tags_mcsettag.ml aarch64_integer_tags_mcinserttagmask.ml aarch64_integer_tags_mcinsertrandomtag.ml aarch64_integer_tags_mcgettagarray.ml @@ -387,18 +370,20 @@ aarch64_branch_conditional_cond.ml aarch64_branch_conditional_compare.ml Offline_utils.ml -) + + ) (deps gen-command) - (action (with-stdin-from gen-command (run asli)) - )) + (action + (with-stdin-from gen-command (run asli)) + )) (library - (name offlineASL) + (name off) (public_name aslp_offline.aarch64) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules + (modules offline decode_tests aarch64_vector_transfer_vector_table @@ -658,9 +643,6 @@ aarch64_system_exceptions_runtime_hvc aarch64_system_exceptions_debug_halt aarch64_system_exceptions_debug_breakpoint - aarch64_system_barriers_ssbb - aarch64_system_barriers_sb - aarch64_system_barriers_pssbb aarch64_system_barriers_isb aarch64_system_barriers_dsb aarch64_system_barriers_dmb @@ -700,23 +682,8 @@ aarch64_memory_atomicops_cas_single aarch64_memory_atomicops_cas_pair aarch64_integer_tags_mcsubtag - aarch64_integer_tags_mcsettagpre - aarch64_integer_tags_mcsettagpost - aarch64_integer_tags_mcsettagpairpre - aarch64_integer_tags_mcsettagpairpost - aarch64_integer_tags_mcsettagpairandzerodatapre - aarch64_integer_tags_mcsettagpairandzerodatapost - aarch64_integer_tags_mcsettagpairandzerodata - aarch64_integer_tags_mcsettagpair aarch64_integer_tags_mcsettagarray - aarch64_integer_tags_mcsettagandzerodatapre - aarch64_integer_tags_mcsettagandzerodatapost - aarch64_integer_tags_mcsettagandzerodata aarch64_integer_tags_mcsettagandzeroarray - aarch64_integer_tags_mcsettaganddatapairpre - aarch64_integer_tags_mcsettaganddatapairpost - aarch64_integer_tags_mcsettaganddatapair - aarch64_integer_tags_mcsettag aarch64_integer_tags_mcinserttagmask aarch64_integer_tags_mcinsertrandomtag aarch64_integer_tags_mcgettagarray @@ -788,9 +755,4 @@ aarch64_branch_conditional_compare Offline_utils ) - (libraries asli.libASL-stage0)) - - -(alias - (name default) - (deps (package aslp_offline) ../aslp_offline.install)) + (libraries asli.libASL)) \ No newline at end of file From 394e7547c421c161a84717f8c584a65f2cdf4d4a Mon Sep 17 00:00:00 2001 From: am Date: Tue, 21 Jan 2025 23:12:39 +1000 Subject: [PATCH 10/17] fix bin/dune --- bin/dune | 4 ++-- bin/offline_sem.ml | 4 +++- libASL/ocaml_backend.ml | 11 ++++++++--- libASL/symbolic_lifter.ml | 2 ++ offlineASL-pc/dune | 3 ++- offlineASL/dune | 8 ++++---- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/bin/dune b/bin/dune index 18d0b112..35fc38b8 100644 --- a/bin/dune +++ b/bin/dune @@ -42,7 +42,7 @@ (modes exe) (modules offline_coverage) (flags (-cclib -lstdc++)) - (libraries asli.libASL offlineASL)) + (libraries asli.libASL aslp_offline.aarch64)) (executable (name offline_sem) @@ -51,4 +51,4 @@ (modes exe) (modules offline_sem) (flags (-cclib -lstdc++)) - (libraries asli.libASL offlineASL)) + (libraries asli.libASL aslp_offline.aarch64 aslp_offline.pc_aarch64)) diff --git a/bin/offline_sem.ml b/bin/offline_sem.ml index 1439b206..a8cfaf6f 100644 --- a/bin/offline_sem.ml +++ b/bin/offline_sem.ml @@ -5,7 +5,9 @@ open Asl_utils let run (opcode: string) (pc: int option) = let op = Z.of_string opcode in let bv = Primops.prim_cvt_int_bits (Z.of_int 32) op in - let stmts = OfflineASL.Offline.run bv in + let stmts = match pc with + | None -> OfflineASL.Offline.run bv + | Some x -> OfflineASL_pc.Offline.run ~pc:x bv in List.iter (fun s -> Printf.printf "%s\n" (pp_stmt s)) stmts let opt_instr = ref [] diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 9f320cc4..0fe710d4 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -383,9 +383,11 @@ let write_new_dune_file use_pc files dir : unit = let target_gen_files = String.concat "" @@ List.map (fun k -> Printf.sprintf " %s.ml\n" k ) files in - let oc = open_out (dir ^ "/dune") in + let oc = open_out (dir ^ "/dune.template") in Printf.fprintf oc "(rule - (targets\n%s) + (targets\n%s + dune.template + ) (deps gen-command) (action (with-stdin-from gen-command (run asli))) )" target_gen_files ; @@ -410,7 +412,7 @@ let write_new_dune_file use_pc files dir : unit = (* Write the dune build file *) let write_dune_file use_pc files dir = - let oc = open_out (dir ^ "/dune") in + let oc = open_out (dir ^ "/dune.template") in Printf.fprintf oc "; AUTO-GENERATED BY OCAML BACKEND (library (name offlineASL) @@ -438,7 +440,10 @@ let run config dfn dfnsig tests fns = let files = (write_test_file tests dir)::files in let decoder = write_decoder_file config.use_pc dfn dfnsig files dir in write_ibi dir ; + try write_new_dune_file config.use_pc (decoder::files@global_deps) dir + with + | Sys_error _ as e -> Printf.eprintf "failed to write dune file\n%s" (Printexc.to_string e); Printexc.print_backtrace stderr module OcamlBackend : Backend = struct let run ~(config:conf) dfn dfnsig tests fns = run config dfn dfnsig tests fns diff --git a/libASL/symbolic_lifter.ml b/libASL/symbolic_lifter.ml index d6ff5a88..ab19b67d 100644 --- a/libASL/symbolic_lifter.ml +++ b/libASL/symbolic_lifter.ml @@ -418,6 +418,7 @@ let run include_pc iset pat env : offline_result = let run_marshal include_pc iset pat env : offline_result = let fname = Printf.sprintf "marshalled-offline-lifter-%x" + (*FIXME: I don't think this is working as expected *) (Hashtbl.seeded_hash 1234 (Printf.sprintf "%b %s %s" include_pc iset pat)) in if (Sys.file_exists fname) @@ -431,5 +432,6 @@ let run_marshal include_pc iset pat env : offline_result = else let r: offline_result = run include_pc iset pat env in let oc = open_out_bin fname in + Printf.printf "Writing marshalled lifter (pc: %b iset: %s pat: %s): %s\n" include_pc iset pat fname; Marshal.to_channel oc r []; close_out oc; r diff --git a/offlineASL-pc/dune b/offlineASL-pc/dune index 1400f464..d7583814 100644 --- a/offlineASL-pc/dune +++ b/offlineASL-pc/dune @@ -1,6 +1,7 @@ (rule (targets offline.ml + dune.template decode_tests.ml aarch64_vector_transfer_vector_table.ml aarch64_vector_transfer_vector_permute_zip.ml @@ -754,4 +755,4 @@ Offline_utils ) (libraries asli.libASL-stage0)) -(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) \ No newline at end of file +(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) diff --git a/offlineASL/dune b/offlineASL/dune index 408eb8b3..7f95be6a 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,6 +1,7 @@ (rule (targets - offline.ml + offline.ml + dune.template decode_tests.ml aarch64_vector_transfer_vector_table.ml aarch64_vector_transfer_vector_permute_zip.ml @@ -370,7 +371,6 @@ aarch64_branch_conditional_cond.ml aarch64_branch_conditional_compare.ml Offline_utils.ml - ) (deps gen-command) (action @@ -379,7 +379,7 @@ (library - (name off) + (name offlineASL) (public_name aslp_offline.aarch64) (flags (:standard -w -27 -w -33 -cclib -lstdc++)) @@ -755,4 +755,4 @@ aarch64_branch_conditional_compare Offline_utils ) - (libraries asli.libASL)) \ No newline at end of file + (libraries asli.libASL)) From c24fe4e75f6d53512186cfdd21c1669d72a93f76 Mon Sep 17 00:00:00 2001 From: Alistair Michael Date: Wed, 22 Jan 2025 11:10:43 +1000 Subject: [PATCH 11/17] fix test action coverage --- .github/workflows/test.yml | 9 ++++++--- tests/coverage/dune | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e746ce1f..2c60f808 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,10 +52,13 @@ jobs: - uses: cachix/install-nix-action@v25 - run: echo 'preparing nix shell environment' - - run: dune build --profile release -j4 - - run: echo ':gen A64 aarch64_* ocaml false offlineASL' | OCAMLRUNPARAM=b dune exec asli + - run: dune build -p asli -j4 --profile=release - - run: dune build offlineASL -j4 + - run: dune install -p asli --profile=release + + - run: dune build -p aslp_offline -j4 + + - run: dune install -p aslp_offline - run: dune build @offline-coverage -j4 diff --git a/tests/coverage/dune b/tests/coverage/dune index 9de2105d..7596c293 100644 --- a/tests/coverage/dune +++ b/tests/coverage/dune @@ -13,7 +13,7 @@ (action (copy ./run.sh ./run))) (rule - (deps (package asli) ./encodings) + (deps (package aslp_offline) ./encodings) (action (copy ./off_run.sh ./off_run))) (rule (with-stdout-to cov_integer (run ./run "aarch64_integer.+"))) From a31041cfbf606eb7e31f13a6cdd1ffaf4cfc3206 Mon Sep 17 00:00:00 2001 From: Alistair Michael Date: Wed, 22 Jan 2025 11:26:58 +1000 Subject: [PATCH 12/17] add js lib --- bin/dune | 11 +++++++++++ bin/offline_js.ml | 22 ++++++++++++++++++++++ dune | 5 +++++ dune-project | 14 ++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 bin/offline_js.ml diff --git a/bin/dune b/bin/dune index 35fc38b8..4838b906 100644 --- a/bin/dune +++ b/bin/dune @@ -52,3 +52,14 @@ (modules offline_sem) (flags (-cclib -lstdc++)) (libraries asli.libASL aslp_offline.aarch64 aslp_offline.pc_aarch64)) + + +(executable + (name offline_js) + (modes js) + (modules offline_js) + (libraries asli.libASL-stage0 aslp_offline.aarch64 + zarith_stubs_js + ) + (preprocess (pps js_of_ocaml-ppx)) +) diff --git a/bin/offline_js.ml b/bin/offline_js.ml new file mode 100644 index 00000000..4b7960d0 --- /dev/null +++ b/bin/offline_js.ml @@ -0,0 +1,22 @@ +open LibASL_stage0 +open Asl_utils +open Asl_ast +open Js_of_ocaml + +let dis (opcode: string) : stmt list = + let op = Z.of_string opcode in + let bv = Primops.prim_cvt_int_bits (Z.of_int 32) op in + OfflineASL.Offline.run bv + + +(* +import("offline_js.bc.js"); +offlineLifter.dis(opcode); +*) + +let () = Js.export "offlineLifter" + begin object%js + method dis x = List.map (fun s -> pp_stmt s |> Js.string) (dis (Js.to_string x)) + end end + + diff --git a/dune b/dune index d6b07ad2..23590e8d 100644 --- a/dune +++ b/dune @@ -23,3 +23,8 @@ (alias (name default) (deps (package asli) asli.install)) + + +(alias + (name aslp_offline_jsoo) + (deps (package aslp_offline_jsoo ) bin/offline_js.bc.js)) diff --git a/dune-project b/dune-project index e54236f5..b5dfd9ef 100644 --- a/dune-project +++ b/dune-project @@ -41,6 +41,20 @@ ) ) +(package + (name aslp_offline_jsoo) + (synopsis "AArch64 Offline lifter javascript library") + (description "" ) + (depends + ("ocaml" (>= "4.14")) + aslp_offline + asli + js_of_ocaml + js_of_ocaml-ppx + zarith_stubs_js + ) +) + (license BSD-3-Clause) (authors "UQ-PAC") (maintainers "UQ-PAC") From 6326e83c7bcd491fb749beb5da243c5f16d09761 Mon Sep 17 00:00:00 2001 From: rina Date: Wed, 22 Jan 2025 13:46:05 +1000 Subject: [PATCH 13/17] ci: try to fake DUNE_INSTALL_PREFIX --- .github/workflows/test.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2c60f808..ba92534c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,7 +3,7 @@ name: Test partial eval on: push: branches: - - partial_eval + - partial_eval pull_request: types: [] workflow_dispatch: @@ -45,18 +45,27 @@ jobs: offline: runs-on: ubuntu-latest + env: + PREFIX: /tmp/prefix + DUNE_INSTALL_PREFIX: /tmp/prefix steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - - run: echo 'preparing nix shell environment' + + - run: | + echo 'preparing nix shell environment' + set -u + mkdir -p "$DUNE_INSTALL_PREFIX" + # echo "OCAMLPATH=$DUNE_INSTALL_PREFIX/lib:$OCAMLPATH" | tee -a "$GITHUB_ENV" + # ^ note: the nix shell would override this external variable - run: dune build -p asli -j4 --profile=release - run: dune install -p asli --profile=release - - run: dune build -p aslp_offline -j4 + - run: 'OCAMLPATH=$PREFIX/lib:$OCAMLPATH PATH=$PREFIX/bin:$PATH dune build -p aslp_offline -j4' - run: dune install -p aslp_offline From 64a7ca7780b73f8627212e83db550a40d3391965 Mon Sep 17 00:00:00 2001 From: rina Date: Mon, 3 Feb 2025 16:23:23 +1000 Subject: [PATCH 14/17] readme: add alias for building all offline things --- README.md | 9 +++++---- dune | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 22012d3b..adda570e 100644 --- a/README.md +++ b/README.md @@ -158,14 +158,15 @@ Then, use: dune build -p aslp_offline dune install -p aslp_offline ``` -Note: this uses the installed copy of ASLp to generate the offline lifter. -If you want to simultaneously build ASLp and use this version to generate the lifter, -use `dune build offlineASL`. - +Note: this uses the _installed_ copy of ASLp to generate the offline lifter. Basically, `-p` acts as if all packages other than the one listed do not exist in this dune project, forcing it to look elsewhere. This can be useful when building and installing packages individually. +If you want to simultaneously build ASLp and use this version to generate the lifter, +use `dune build @offline`. +Be aware that this might re-use a cached offline lifter, even if ASLp code has changed. +To clean the cached lifters, use `rm -v ./marshalled-offline-lifter-*`. ### Using ASL lexer diff --git a/dune b/dune index 23590e8d..d85c085d 100644 --- a/dune +++ b/dune @@ -28,3 +28,7 @@ (alias (name aslp_offline_jsoo) (deps (package aslp_offline_jsoo ) bin/offline_js.bc.js)) + +(alias + (name offline) + (deps (package aslp_offline) aslp_offline.install)) From 29ab7c1d914dbe7c8f30bb4bdd1c1ef6ac0f41dd Mon Sep 17 00:00:00 2001 From: rina Date: Mon, 3 Feb 2025 17:55:03 +1000 Subject: [PATCH 15/17] bootstrapping for offline dune files --- asli.opam | 4 +- aslp_offline.opam | 4 +- aslp_offline_jsoo.opam | 37 ++ dune-project | 2 +- libASL/ocaml_backend.ml | 28 +- offlineASL-pc/dune | 758 +--------------------------------- offlineASL-pc/dune.generated | 760 +++++++++++++++++++++++++++++++++++ offlineASL/dune | 758 +--------------------------------- offlineASL/dune.bootstrap | 22 + offlineASL/dune.generated | 760 +++++++++++++++++++++++++++++++++++ 10 files changed, 1605 insertions(+), 1528 deletions(-) create mode 100644 aslp_offline_jsoo.opam create mode 100644 offlineASL-pc/dune.generated create mode 100644 offlineASL/dune.bootstrap create mode 100644 offlineASL/dune.generated diff --git a/asli.opam b/asli.opam index f933b769..7a03414f 100644 --- a/asli.opam +++ b/asli.opam @@ -16,7 +16,7 @@ license: "BSD-3-Clause" homepage: "https://github.com/UQ-PAC/aslp" bug-reports: "https://github.com/UQ-PAC/aslp/issues" depends: [ - "dune" {>= "2.8"} + "dune" {>= "2.9"} "ocaml" {>= "4.14"} "menhir" {build} "ott" {build & >= "0.31"} @@ -41,9 +41,11 @@ build: [ name "-j" jobs + "--promote-install-files=false" "@install" "@runtest" {with-test} "@doc" {with-doc} ] + ["dune" "install" "-p" name "--create-install-files" name] ] dev-repo: "git+https://github.com/UQ-PAC/aslp.git" diff --git a/aslp_offline.opam b/aslp_offline.opam index 0c766804..5a665665 100644 --- a/aslp_offline.opam +++ b/aslp_offline.opam @@ -9,7 +9,7 @@ license: "BSD-3-Clause" homepage: "https://github.com/UQ-PAC/aslp" bug-reports: "https://github.com/UQ-PAC/aslp/issues" depends: [ - "dune" {>= "2.8"} + "dune" {>= "2.9"} "ocaml" {>= "4.14"} "asli" "odoc" {with-doc} @@ -23,9 +23,11 @@ build: [ name "-j" jobs + "--promote-install-files=false" "@install" "@runtest" {with-test} "@doc" {with-doc} ] + ["dune" "install" "-p" name "--create-install-files" name] ] dev-repo: "git+https://github.com/UQ-PAC/aslp.git" diff --git a/aslp_offline_jsoo.opam b/aslp_offline_jsoo.opam new file mode 100644 index 00000000..1f5f86dc --- /dev/null +++ b/aslp_offline_jsoo.opam @@ -0,0 +1,37 @@ +# This file is generated by dune, edit dune-project instead +opam-version: "2.0" +version: "0.2.0" +synopsis: "AArch64 Offline lifter javascript library" +description: "" +maintainer: ["UQ-PAC"] +authors: ["UQ-PAC"] +license: "BSD-3-Clause" +homepage: "https://github.com/UQ-PAC/aslp" +bug-reports: "https://github.com/UQ-PAC/aslp/issues" +depends: [ + "dune" {>= "2.9"} + "ocaml" {>= "4.14"} + "aslp_offline" + "asli" + "js_of_ocaml" + "js_of_ocaml-ppx" + "zarith_stubs_js" + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "--promote-install-files=false" + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] + ["dune" "install" "-p" name "--create-install-files" name] +] +dev-repo: "git+https://github.com/UQ-PAC/aslp.git" diff --git a/dune-project b/dune-project index b5dfd9ef..751e75d3 100644 --- a/dune-project +++ b/dune-project @@ -1,4 +1,4 @@ -(lang dune 2.8) +(lang dune 2.9) (name asli) (version 0.2.0) diff --git a/libASL/ocaml_backend.ml b/libASL/ocaml_backend.ml index 0fe710d4..282aa6e5 100644 --- a/libASL/ocaml_backend.ml +++ b/libASL/ocaml_backend.ml @@ -68,7 +68,7 @@ let write_preamble opens st = let write_epilogue use_pc fid st = let conv_pc = "let pc = (mkBits (Z.of_int 64) (Z.of_int pc)) in" in - let dis_call = (match use_pc with + let dis_call = (match use_pc with | true -> Printf.sprintf "%s\n %s enc pc" conv_pc | false -> Printf.sprintf "%s enc" ) (name_of_ident fid) @@ -341,7 +341,7 @@ let write_fn name (ret_tyo,_,targs,args,_,body) st = * Directory Setup ****************************************************************) -let init_st oc = { depth = 0; skip_seq = false; oc ; ref_vars = IdentSet.empty } +let init_st oc = { depth = 0; skip_seq = false; oc ; ref_vars = IdentSet.empty } let global_deps = ["Offline_utils"] let offline_utils_file = [%blob "../offlineASL/template_offline_utils.ml"] @@ -377,17 +377,18 @@ let write_decoder_file use_pc fn fnsig deps dir = write_fn fn fnsig st; write_epilogue use_pc fn st; close_out oc; - m + m -let write_new_dune_file use_pc files dir : unit = +let write_new_dune_file use_pc files dir : unit = let target_gen_files = String.concat "" @@ List.map (fun k -> Printf.sprintf " %s.ml\n" k ) files in - let oc = open_out (dir ^ "/dune.template") in - Printf.fprintf oc "(rule - (targets\n%s - dune.template - ) + let oc = open_out (dir ^ "/dune.generated.new") in + Printf.fprintf oc "; AUTO-GENERATED BY OCAML BACKEND\n"; + Printf.fprintf oc "(rule + (targets + dune.generated.new\n%s + ) (deps gen-command) (action (with-stdin-from gen-command (run asli))) )" target_gen_files ; @@ -411,8 +412,9 @@ let write_new_dune_file use_pc files dir : unit = (* Write the dune build file *) +(* XXX: this function is not used anymore? *) let write_dune_file use_pc files dir = - let oc = open_out (dir ^ "/dune.template") in + let oc = open_out (dir ^ "/dune.inc") in Printf.fprintf oc "; AUTO-GENERATED BY OCAML BACKEND (library (name offlineASL) @@ -428,7 +430,7 @@ let write_dune_file use_pc files dir = (libraries asli.libASL-stage0))"; close_out oc -let write_ibi dir = +let write_ibi dir = let oc = open_out (dir ^ "/Offline_utils.ml") in output_string oc offline_utils_file ; close_out oc @@ -440,9 +442,9 @@ let run config dfn dfnsig tests fns = let files = (write_test_file tests dir)::files in let decoder = write_decoder_file config.use_pc dfn dfnsig files dir in write_ibi dir ; - try + try write_new_dune_file config.use_pc (decoder::files@global_deps) dir - with + with | Sys_error _ as e -> Printf.eprintf "failed to write dune file\n%s" (Printexc.to_string e); Printexc.print_backtrace stderr module OcamlBackend : Backend = struct diff --git a/offlineASL-pc/dune b/offlineASL-pc/dune index d7583814..0d0c3424 100644 --- a/offlineASL-pc/dune +++ b/offlineASL-pc/dune @@ -1,758 +1,4 @@ -(rule - (targets - offline.ml - dune.template - decode_tests.ml - aarch64_vector_transfer_vector_table.ml - aarch64_vector_transfer_vector_permute_zip.ml - aarch64_vector_transfer_vector_permute_unzip.ml - aarch64_vector_transfer_vector_permute_transpose.ml - aarch64_vector_transfer_vector_insert.ml - aarch64_vector_transfer_vector_extract.ml - aarch64_vector_transfer_vector_cpy_dup_sisd.ml - aarch64_vector_transfer_vector_cpy_dup_simd.ml - aarch64_vector_transfer_integer_move_unsigned.ml - aarch64_vector_transfer_integer_move_signed.ml - aarch64_vector_transfer_integer_insert.ml - aarch64_vector_transfer_integer_dup.ml - aarch64_vector_shift_right_sisd.ml - aarch64_vector_shift_right_simd.ml - aarch64_vector_shift_right_narrow_uniform_sisd.ml - aarch64_vector_shift_right_narrow_uniform_simd.ml - aarch64_vector_shift_right_narrow_nonuniform_sisd.ml - aarch64_vector_shift_right_narrow_nonuniform_simd.ml - aarch64_vector_shift_right_narrow_logical.ml - aarch64_vector_shift_right_insert_sisd.ml - aarch64_vector_shift_right_insert_simd.ml - aarch64_vector_shift_left_sisd.ml - aarch64_vector_shift_left_simd.ml - aarch64_vector_shift_left_sat_sisd.ml - aarch64_vector_shift_left_sat_simd.ml - aarch64_vector_shift_left_long.ml - aarch64_vector_shift_left_insert_sisd.ml - aarch64_vector_shift_left_insert_simd.ml - aarch64_vector_shift_conv_int_sisd.ml - aarch64_vector_shift_conv_int_simd.ml - aarch64_vector_shift_conv_float_sisd.ml - aarch64_vector_shift_conv_float_simd.ml - aarch64_vector_reduce_int_max.ml - aarch64_vector_reduce_fp_maxnm_sisd.ml - aarch64_vector_reduce_fp_maxnm_simd.ml - aarch64_vector_reduce_fp_max_sisd.ml - aarch64_vector_reduce_fp_max_simd.ml - aarch64_vector_reduce_fp_add_sisd.ml - aarch64_vector_reduce_fp16_maxnm_sisd.ml - aarch64_vector_reduce_fp16_maxnm_simd.ml - aarch64_vector_reduce_fp16_max_sisd.ml - aarch64_vector_reduce_fp16_max_simd.ml - aarch64_vector_reduce_fp16_add_sisd.ml - aarch64_vector_reduce_add_sisd.ml - aarch64_vector_reduce_add_simd.ml - aarch64_vector_reduce_add_long.ml - aarch64_vector_logical.ml - aarch64_vector_fp16_movi.ml - aarch64_vector_cvt_bf16_vector.ml - aarch64_vector_cvt_bf16_scalar.ml - aarch64_vector_crypto_sm4_sm4enckey.ml - aarch64_vector_crypto_sm4_sm4enc.ml - aarch64_vector_crypto_sm3_sm3tt2b.ml - aarch64_vector_crypto_sm3_sm3tt2a.ml - aarch64_vector_crypto_sm3_sm3tt1b.ml - aarch64_vector_crypto_sm3_sm3tt1a.ml - aarch64_vector_crypto_sm3_sm3ss1.ml - aarch64_vector_crypto_sm3_sm3partw2.ml - aarch64_vector_crypto_sm3_sm3partw1.ml - aarch64_vector_crypto_sha512_sha512su1.ml - aarch64_vector_crypto_sha512_sha512su0.ml - aarch64_vector_crypto_sha512_sha512h2.ml - aarch64_vector_crypto_sha512_sha512h.ml - aarch64_vector_crypto_sha3op_sha256_sched1.ml - aarch64_vector_crypto_sha3op_sha256_hash.ml - aarch64_vector_crypto_sha3op_sha1_sched0.ml - aarch64_vector_crypto_sha3op_sha1_hash_parity.ml - aarch64_vector_crypto_sha3op_sha1_hash_majority.ml - aarch64_vector_crypto_sha3op_sha1_hash_choose.ml - aarch64_vector_crypto_sha3_xar.ml - aarch64_vector_crypto_sha3_rax1.ml - aarch64_vector_crypto_sha3_eor3.ml - aarch64_vector_crypto_sha3_bcax.ml - aarch64_vector_crypto_sha2op_sha256_sched0.ml - aarch64_vector_crypto_sha2op_sha1_sched1.ml - aarch64_vector_crypto_sha2op_sha1_hash.ml - aarch64_vector_crypto_aes_round.ml - aarch64_vector_crypto_aes_mix.ml - aarch64_vector_bfmmla.ml - aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml - aarch64_vector_arithmetic_unary_special_sqrt.ml - aarch64_vector_arithmetic_unary_special_recip_int.ml - aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml - aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml - aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml - aarch64_vector_arithmetic_unary_special_recip_float_simd.ml - aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml - aarch64_vector_arithmetic_unary_special_frecpx.ml - aarch64_vector_arithmetic_unary_shift.ml - aarch64_vector_arithmetic_unary_rev.ml - aarch64_vector_arithmetic_unary_rbit.ml - aarch64_vector_arithmetic_unary_not.ml - aarch64_vector_arithmetic_unary_fp16_round.ml - aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_float_xtn_sisd.ml - aarch64_vector_arithmetic_unary_float_xtn_simd.ml - aarch64_vector_arithmetic_unary_float_widen.ml - aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml - aarch64_vector_arithmetic_unary_float_round.ml - aarch64_vector_arithmetic_unary_float_narrow.ml - aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_int_simd.ml - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml - aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml - aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml - aarch64_vector_arithmetic_unary_extract_sat_sisd.ml - aarch64_vector_arithmetic_unary_extract_sat_simd.ml - aarch64_vector_arithmetic_unary_extract_nosat.ml - aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml - aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml - aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml - aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml - aarch64_vector_arithmetic_unary_diff_neg_fp16.ml - aarch64_vector_arithmetic_unary_diff_neg_float.ml - aarch64_vector_arithmetic_unary_cnt.ml - aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml - aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_clsz.ml - aarch64_vector_arithmetic_unary_add_saturating_sisd.ml - aarch64_vector_arithmetic_unary_add_saturating_simd.ml - aarch64_vector_arithmetic_unary_add_pairwise.ml - aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml - aarch64_vector_arithmetic_binary_uniform_sub_int.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml - aarch64_vector_arithmetic_binary_uniform_shift_simd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml - aarch64_vector_arithmetic_binary_uniform_recps_simd.ml - aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml - aarch64_vector_arithmetic_binary_uniform_max_min_single.ml - aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml - aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml - aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml - aarch64_vector_arithmetic_binary_uniform_div_fp16.ml - aarch64_vector_arithmetic_binary_uniform_div.ml - aarch64_vector_arithmetic_binary_uniform_diff.ml - aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml - aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml - aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml - aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml - aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml - aarch64_vector_arithmetic_binary_uniform_add_fp16.ml - aarch64_vector_arithmetic_binary_uniform_add_fp.ml - aarch64_vector_arithmetic_binary_element_mul_long.ml - aarch64_vector_arithmetic_binary_element_mul_int.ml - aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_high_simd.ml - aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml - aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml - aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_double_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml - aarch64_vector_arithmetic_binary_element_mul_acc_long.ml - aarch64_vector_arithmetic_binary_element_mul_acc_int.ml - aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml - aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml - aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml - aarch64_vector_arithmetic_binary_element_dotp.ml - aarch64_vector_arithmetic_binary_element_bfdot.ml - aarch64_vector_arithmetic_binary_disparate_mul_product.ml - aarch64_vector_arithmetic_binary_disparate_mul_poly.ml - aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml - aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml - aarch64_vector_arithmetic_binary_disparate_mul_accum.ml - aarch64_vector_arithmetic_binary_disparate_diff.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml - aarch64_udf.ml - aarch64_system_sysops.ml - aarch64_system_register_cpsr.ml - aarch64_system_monitors.ml - aarch64_system_exceptions_runtime_hvc.ml - aarch64_system_exceptions_debug_halt.ml - aarch64_system_exceptions_debug_breakpoint.ml - aarch64_system_barriers_isb.ml - aarch64_system_barriers_dsb.ml - aarch64_system_barriers_dmb.ml - aarch64_memory_vector_single_post_inc.ml - aarch64_memory_vector_single_no_wb.ml - aarch64_memory_vector_multiple_post_inc.ml - aarch64_memory_vector_multiple_no_wb.ml - aarch64_memory_single_simdfp_register.ml - aarch64_memory_single_simdfp_immediate_unsigned.ml - aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml - aarch64_memory_single_simdfp_immediate_signed_post_idx.ml - aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml - aarch64_memory_single_general_register.ml - aarch64_memory_single_general_immediate_unsigned.ml - aarch64_memory_single_general_immediate_signed_pre_idx.ml - aarch64_memory_single_general_immediate_signed_post_idx.ml - aarch64_memory_single_general_immediate_signed_pac.ml - aarch64_memory_single_general_immediate_signed_offset_unpriv.ml - aarch64_memory_single_general_immediate_signed_offset_normal.ml - aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml - aarch64_memory_pair_simdfp_pre_idx.ml - aarch64_memory_pair_simdfp_post_idx.ml - aarch64_memory_pair_simdfp_offset.ml - aarch64_memory_pair_simdfp_no_alloc.ml - aarch64_memory_pair_general_pre_idx.ml - aarch64_memory_pair_general_post_idx.ml - aarch64_memory_pair_general_offset.ml - aarch64_memory_pair_general_no_alloc.ml - aarch64_memory_ordered_rcpc.ml - aarch64_memory_ordered.ml - aarch64_memory_literal_simdfp.ml - aarch64_memory_literal_general.ml - aarch64_memory_exclusive_single.ml - aarch64_memory_exclusive_pair.ml - aarch64_memory_atomicops_swp.ml - aarch64_memory_atomicops_ld.ml - aarch64_memory_atomicops_cas_single.ml - aarch64_memory_atomicops_cas_pair.ml - aarch64_integer_tags_mcsubtag.ml - aarch64_integer_tags_mcsettagarray.ml - aarch64_integer_tags_mcsettagandzeroarray.ml - aarch64_integer_tags_mcinserttagmask.ml - aarch64_integer_tags_mcinsertrandomtag.ml - aarch64_integer_tags_mcgettagarray.ml - aarch64_integer_tags_mcgettag.ml - aarch64_integer_tags_mcaddtag.ml - aarch64_integer_shift_variable.ml - aarch64_integer_pac_strip_hint.ml - aarch64_integer_pac_pacib_hint.ml - aarch64_integer_pac_pacib_dp_1src.ml - aarch64_integer_pac_pacia_hint.ml - aarch64_integer_pac_pacia_dp_1src.ml - aarch64_integer_pac_pacdb_dp_1src.ml - aarch64_integer_pac_pacda_dp_1src.ml - aarch64_integer_pac_autib_hint.ml - aarch64_integer_pac_autib_dp_1src.ml - aarch64_integer_pac_autia_hint.ml - aarch64_integer_pac_autia_dp_1src.ml - aarch64_integer_pac_autdb_dp_1src.ml - aarch64_integer_pac_autda_dp_1src.ml - aarch64_integer_logical_shiftedreg.ml - aarch64_integer_logical_immediate.ml - aarch64_integer_ins_ext_insert_movewide.ml - aarch64_integer_ins_ext_extract_immediate.ml - aarch64_integer_flags_xaflag.ml - aarch64_integer_flags_setf.ml - aarch64_integer_flags_rmif.ml - aarch64_integer_flags_cfinv.ml - aarch64_integer_flags_axflag.ml - aarch64_integer_crc.ml - aarch64_integer_conditional_select.ml - aarch64_integer_conditional_compare_register.ml - aarch64_integer_conditional_compare_immediate.ml - aarch64_integer_bitfield.ml - aarch64_integer_arithmetic_rev.ml - aarch64_integer_arithmetic_rbit.ml - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml - aarch64_integer_arithmetic_mul_widening_64_128hi.ml - aarch64_integer_arithmetic_mul_widening_32_64.ml - aarch64_integer_arithmetic_mul_uniform_add_sub.ml - aarch64_integer_arithmetic_div.ml - aarch64_integer_arithmetic_cnt.ml - aarch64_integer_arithmetic_address_pc_rel.ml - aarch64_integer_arithmetic_add_sub_shiftedreg.ml - aarch64_integer_arithmetic_add_sub_immediate.ml - aarch64_integer_arithmetic_add_sub_extendedreg.ml - aarch64_integer_arithmetic_add_sub_carry.ml - aarch64_float_move_fp_select.ml - aarch64_float_move_fp_imm.ml - aarch64_float_convert_int.ml - aarch64_float_convert_fp.ml - aarch64_float_convert_fix.ml - aarch64_float_compare_uncond.ml - aarch64_float_compare_cond.ml - aarch64_float_arithmetic_unary.ml - aarch64_float_arithmetic_round_frint_32_64.ml - aarch64_float_arithmetic_round_frint.ml - aarch64_float_arithmetic_mul_product.ml - aarch64_float_arithmetic_mul_add_sub.ml - aarch64_float_arithmetic_max_min.ml - aarch64_float_arithmetic_div.ml - aarch64_float_arithmetic_add_sub.ml - aarch64_branch_unconditional_register.ml - aarch64_branch_unconditional_immediate.ml - aarch64_branch_unconditional_eret.ml - aarch64_branch_unconditional_dret.ml - aarch64_branch_conditional_test.ml - aarch64_branch_conditional_cond.ml - aarch64_branch_conditional_compare.ml - Offline_utils.ml -) - (deps gen-command) - (action (with-stdin-from gen-command (run asli))) -) +(include dune.generated) +(include ../offlineASL/dune.bootstrap) - (library - (name offlineASL_pc) - (public_name aslp_offline.pc_aarch64) - (flags - (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules - offline - decode_tests - aarch64_vector_transfer_vector_table - aarch64_vector_transfer_vector_permute_zip - aarch64_vector_transfer_vector_permute_unzip - aarch64_vector_transfer_vector_permute_transpose - aarch64_vector_transfer_vector_insert - aarch64_vector_transfer_vector_extract - aarch64_vector_transfer_vector_cpy_dup_sisd - aarch64_vector_transfer_vector_cpy_dup_simd - aarch64_vector_transfer_integer_move_unsigned - aarch64_vector_transfer_integer_move_signed - aarch64_vector_transfer_integer_insert - aarch64_vector_transfer_integer_dup - aarch64_vector_shift_right_sisd - aarch64_vector_shift_right_simd - aarch64_vector_shift_right_narrow_uniform_sisd - aarch64_vector_shift_right_narrow_uniform_simd - aarch64_vector_shift_right_narrow_nonuniform_sisd - aarch64_vector_shift_right_narrow_nonuniform_simd - aarch64_vector_shift_right_narrow_logical - aarch64_vector_shift_right_insert_sisd - aarch64_vector_shift_right_insert_simd - aarch64_vector_shift_left_sisd - aarch64_vector_shift_left_simd - aarch64_vector_shift_left_sat_sisd - aarch64_vector_shift_left_sat_simd - aarch64_vector_shift_left_long - aarch64_vector_shift_left_insert_sisd - aarch64_vector_shift_left_insert_simd - aarch64_vector_shift_conv_int_sisd - aarch64_vector_shift_conv_int_simd - aarch64_vector_shift_conv_float_sisd - aarch64_vector_shift_conv_float_simd - aarch64_vector_reduce_int_max - aarch64_vector_reduce_fp_maxnm_sisd - aarch64_vector_reduce_fp_maxnm_simd - aarch64_vector_reduce_fp_max_sisd - aarch64_vector_reduce_fp_max_simd - aarch64_vector_reduce_fp_add_sisd - aarch64_vector_reduce_fp16_maxnm_sisd - aarch64_vector_reduce_fp16_maxnm_simd - aarch64_vector_reduce_fp16_max_sisd - aarch64_vector_reduce_fp16_max_simd - aarch64_vector_reduce_fp16_add_sisd - aarch64_vector_reduce_add_sisd - aarch64_vector_reduce_add_simd - aarch64_vector_reduce_add_long - aarch64_vector_logical - aarch64_vector_fp16_movi - aarch64_vector_cvt_bf16_vector - aarch64_vector_cvt_bf16_scalar - aarch64_vector_crypto_sm4_sm4enckey - aarch64_vector_crypto_sm4_sm4enc - aarch64_vector_crypto_sm3_sm3tt2b - aarch64_vector_crypto_sm3_sm3tt2a - aarch64_vector_crypto_sm3_sm3tt1b - aarch64_vector_crypto_sm3_sm3tt1a - aarch64_vector_crypto_sm3_sm3ss1 - aarch64_vector_crypto_sm3_sm3partw2 - aarch64_vector_crypto_sm3_sm3partw1 - aarch64_vector_crypto_sha512_sha512su1 - aarch64_vector_crypto_sha512_sha512su0 - aarch64_vector_crypto_sha512_sha512h2 - aarch64_vector_crypto_sha512_sha512h - aarch64_vector_crypto_sha3op_sha256_sched1 - aarch64_vector_crypto_sha3op_sha256_hash - aarch64_vector_crypto_sha3op_sha1_sched0 - aarch64_vector_crypto_sha3op_sha1_hash_parity - aarch64_vector_crypto_sha3op_sha1_hash_majority - aarch64_vector_crypto_sha3op_sha1_hash_choose - aarch64_vector_crypto_sha3_xar - aarch64_vector_crypto_sha3_rax1 - aarch64_vector_crypto_sha3_eor3 - aarch64_vector_crypto_sha3_bcax - aarch64_vector_crypto_sha2op_sha256_sched0 - aarch64_vector_crypto_sha2op_sha1_sched1 - aarch64_vector_crypto_sha2op_sha1_hash - aarch64_vector_crypto_aes_round - aarch64_vector_crypto_aes_mix - aarch64_vector_bfmmla - aarch64_vector_arithmetic_unary_special_sqrt_fp16 - aarch64_vector_arithmetic_unary_special_sqrt_est_int - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd - aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd - aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd - aarch64_vector_arithmetic_unary_special_sqrt - aarch64_vector_arithmetic_unary_special_recip_int - aarch64_vector_arithmetic_unary_special_recip_fp16_sisd - aarch64_vector_arithmetic_unary_special_recip_fp16_simd - aarch64_vector_arithmetic_unary_special_recip_float_sisd - aarch64_vector_arithmetic_unary_special_recip_float_simd - aarch64_vector_arithmetic_unary_special_frecpx_fp16 - aarch64_vector_arithmetic_unary_special_frecpx - aarch64_vector_arithmetic_unary_shift - aarch64_vector_arithmetic_unary_rev - aarch64_vector_arithmetic_unary_rbit - aarch64_vector_arithmetic_unary_not - aarch64_vector_arithmetic_unary_fp16_round - aarch64_vector_arithmetic_unary_fp16_conv_int_sisd - aarch64_vector_arithmetic_unary_fp16_conv_int_simd - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd - aarch64_vector_arithmetic_unary_float_xtn_sisd - aarch64_vector_arithmetic_unary_float_xtn_simd - aarch64_vector_arithmetic_unary_float_widen - aarch64_vector_arithmetic_unary_float_round_frint_32_64 - aarch64_vector_arithmetic_unary_float_round - aarch64_vector_arithmetic_unary_float_narrow - aarch64_vector_arithmetic_unary_float_conv_int_sisd - aarch64_vector_arithmetic_unary_float_conv_int_simd - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd - aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd - aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd - aarch64_vector_arithmetic_unary_extract_sqxtun_sisd - aarch64_vector_arithmetic_unary_extract_sqxtun_simd - aarch64_vector_arithmetic_unary_extract_sat_sisd - aarch64_vector_arithmetic_unary_extract_sat_simd - aarch64_vector_arithmetic_unary_extract_nosat - aarch64_vector_arithmetic_unary_diff_neg_sat_sisd - aarch64_vector_arithmetic_unary_diff_neg_sat_simd - aarch64_vector_arithmetic_unary_diff_neg_int_sisd - aarch64_vector_arithmetic_unary_diff_neg_int_simd - aarch64_vector_arithmetic_unary_diff_neg_fp16 - aarch64_vector_arithmetic_unary_diff_neg_float - aarch64_vector_arithmetic_unary_cnt - aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_int_bulk_simd - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd - aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_float_bulk_simd - aarch64_vector_arithmetic_unary_clsz - aarch64_vector_arithmetic_unary_add_saturating_sisd - aarch64_vector_arithmetic_unary_add_saturating_simd - aarch64_vector_arithmetic_unary_add_pairwise - aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd - aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd - aarch64_vector_arithmetic_binary_uniform_sub_int - aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd - aarch64_vector_arithmetic_binary_uniform_sub_fp_simd - aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd - aarch64_vector_arithmetic_binary_uniform_shift_sisd - aarch64_vector_arithmetic_binary_uniform_shift_simd - aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd - aarch64_vector_arithmetic_binary_uniform_rsqrts_simd - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd - aarch64_vector_arithmetic_binary_uniform_recps_sisd - aarch64_vector_arithmetic_binary_uniform_recps_simd - aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_product - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_dotp - aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot - aarch64_vector_arithmetic_binary_uniform_mul_int_accum - aarch64_vector_arithmetic_binary_uniform_mul_fp_product - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower - aarch64_vector_arithmetic_binary_uniform_mul_fp_fused - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd - aarch64_vector_arithmetic_binary_uniform_mul_fp_complex - aarch64_vector_arithmetic_binary_uniform_mul_fp16_product - aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd - aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long - aarch64_vector_arithmetic_binary_uniform_max_min_single - aarch64_vector_arithmetic_binary_uniform_max_min_pair - aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 - aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla - aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor - aarch64_vector_arithmetic_binary_uniform_logical_and_orr - aarch64_vector_arithmetic_binary_uniform_div_fp16 - aarch64_vector_arithmetic_binary_uniform_div - aarch64_vector_arithmetic_binary_uniform_diff - aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_int_simd - aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair - aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd - aarch64_vector_arithmetic_binary_uniform_add_saturating_simd - aarch64_vector_arithmetic_binary_uniform_add_halving_truncating - aarch64_vector_arithmetic_binary_uniform_add_halving_rounding - aarch64_vector_arithmetic_binary_uniform_add_fp_complex - aarch64_vector_arithmetic_binary_uniform_add_fp16 - aarch64_vector_arithmetic_binary_uniform_add_fp - aarch64_vector_arithmetic_binary_element_mul_long - aarch64_vector_arithmetic_binary_element_mul_int - aarch64_vector_arithmetic_binary_element_mul_high_sisd - aarch64_vector_arithmetic_binary_element_mul_high_simd - aarch64_vector_arithmetic_binary_element_mul_fp_sisd - aarch64_vector_arithmetic_binary_element_mul_fp_simd - aarch64_vector_arithmetic_binary_element_mul_fp16_sisd - aarch64_vector_arithmetic_binary_element_mul_fp16_simd - aarch64_vector_arithmetic_binary_element_mul_double_sisd - aarch64_vector_arithmetic_binary_element_mul_double_simd - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower - aarch64_vector_arithmetic_binary_element_mul_acc_long - aarch64_vector_arithmetic_binary_element_mul_acc_int - aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_high_simd - aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd - aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_double_simd - aarch64_vector_arithmetic_binary_element_mul_acc_complex - aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long - aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp - aarch64_vector_arithmetic_binary_element_dotp - aarch64_vector_arithmetic_binary_element_bfdot - aarch64_vector_arithmetic_binary_disparate_mul_product - aarch64_vector_arithmetic_binary_disparate_mul_poly - aarch64_vector_arithmetic_binary_disparate_mul_double_sisd - aarch64_vector_arithmetic_binary_disparate_mul_double_simd - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd - aarch64_vector_arithmetic_binary_disparate_mul_accum - aarch64_vector_arithmetic_binary_disparate_diff - aarch64_vector_arithmetic_binary_disparate_add_sub_wide - aarch64_vector_arithmetic_binary_disparate_add_sub_narrow - aarch64_vector_arithmetic_binary_disparate_add_sub_long - aarch64_udf - aarch64_system_sysops - aarch64_system_register_cpsr - aarch64_system_monitors - aarch64_system_exceptions_runtime_hvc - aarch64_system_exceptions_debug_halt - aarch64_system_exceptions_debug_breakpoint - aarch64_system_barriers_isb - aarch64_system_barriers_dsb - aarch64_system_barriers_dmb - aarch64_memory_vector_single_post_inc - aarch64_memory_vector_single_no_wb - aarch64_memory_vector_multiple_post_inc - aarch64_memory_vector_multiple_no_wb - aarch64_memory_single_simdfp_register - aarch64_memory_single_simdfp_immediate_unsigned - aarch64_memory_single_simdfp_immediate_signed_pre_idx - aarch64_memory_single_simdfp_immediate_signed_post_idx - aarch64_memory_single_simdfp_immediate_signed_offset_normal - aarch64_memory_single_general_register - aarch64_memory_single_general_immediate_unsigned - aarch64_memory_single_general_immediate_signed_pre_idx - aarch64_memory_single_general_immediate_signed_post_idx - aarch64_memory_single_general_immediate_signed_pac - aarch64_memory_single_general_immediate_signed_offset_unpriv - aarch64_memory_single_general_immediate_signed_offset_normal - aarch64_memory_single_general_immediate_signed_offset_lda_stl - aarch64_memory_pair_simdfp_pre_idx - aarch64_memory_pair_simdfp_post_idx - aarch64_memory_pair_simdfp_offset - aarch64_memory_pair_simdfp_no_alloc - aarch64_memory_pair_general_pre_idx - aarch64_memory_pair_general_post_idx - aarch64_memory_pair_general_offset - aarch64_memory_pair_general_no_alloc - aarch64_memory_ordered_rcpc - aarch64_memory_ordered - aarch64_memory_literal_simdfp - aarch64_memory_literal_general - aarch64_memory_exclusive_single - aarch64_memory_exclusive_pair - aarch64_memory_atomicops_swp - aarch64_memory_atomicops_ld - aarch64_memory_atomicops_cas_single - aarch64_memory_atomicops_cas_pair - aarch64_integer_tags_mcsubtag - aarch64_integer_tags_mcsettagarray - aarch64_integer_tags_mcsettagandzeroarray - aarch64_integer_tags_mcinserttagmask - aarch64_integer_tags_mcinsertrandomtag - aarch64_integer_tags_mcgettagarray - aarch64_integer_tags_mcgettag - aarch64_integer_tags_mcaddtag - aarch64_integer_shift_variable - aarch64_integer_pac_strip_hint - aarch64_integer_pac_pacib_hint - aarch64_integer_pac_pacib_dp_1src - aarch64_integer_pac_pacia_hint - aarch64_integer_pac_pacia_dp_1src - aarch64_integer_pac_pacdb_dp_1src - aarch64_integer_pac_pacda_dp_1src - aarch64_integer_pac_autib_hint - aarch64_integer_pac_autib_dp_1src - aarch64_integer_pac_autia_hint - aarch64_integer_pac_autia_dp_1src - aarch64_integer_pac_autdb_dp_1src - aarch64_integer_pac_autda_dp_1src - aarch64_integer_logical_shiftedreg - aarch64_integer_logical_immediate - aarch64_integer_ins_ext_insert_movewide - aarch64_integer_ins_ext_extract_immediate - aarch64_integer_flags_xaflag - aarch64_integer_flags_setf - aarch64_integer_flags_rmif - aarch64_integer_flags_cfinv - aarch64_integer_flags_axflag - aarch64_integer_crc - aarch64_integer_conditional_select - aarch64_integer_conditional_compare_register - aarch64_integer_conditional_compare_immediate - aarch64_integer_bitfield - aarch64_integer_arithmetic_rev - aarch64_integer_arithmetic_rbit - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress - aarch64_integer_arithmetic_mul_widening_64_128hi - aarch64_integer_arithmetic_mul_widening_32_64 - aarch64_integer_arithmetic_mul_uniform_add_sub - aarch64_integer_arithmetic_div - aarch64_integer_arithmetic_cnt - aarch64_integer_arithmetic_address_pc_rel - aarch64_integer_arithmetic_add_sub_shiftedreg - aarch64_integer_arithmetic_add_sub_immediate - aarch64_integer_arithmetic_add_sub_extendedreg - aarch64_integer_arithmetic_add_sub_carry - aarch64_float_move_fp_select - aarch64_float_move_fp_imm - aarch64_float_convert_int - aarch64_float_convert_fp - aarch64_float_convert_fix - aarch64_float_compare_uncond - aarch64_float_compare_cond - aarch64_float_arithmetic_unary - aarch64_float_arithmetic_round_frint_32_64 - aarch64_float_arithmetic_round_frint - aarch64_float_arithmetic_mul_product - aarch64_float_arithmetic_mul_add_sub - aarch64_float_arithmetic_max_min - aarch64_float_arithmetic_div - aarch64_float_arithmetic_add_sub - aarch64_branch_unconditional_register - aarch64_branch_unconditional_immediate - aarch64_branch_unconditional_eret - aarch64_branch_unconditional_dret - aarch64_branch_conditional_test - aarch64_branch_conditional_cond - aarch64_branch_conditional_compare - Offline_utils - ) - (libraries asli.libASL-stage0)) -(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) diff --git a/offlineASL-pc/dune.generated b/offlineASL-pc/dune.generated new file mode 100644 index 00000000..eacac52a --- /dev/null +++ b/offlineASL-pc/dune.generated @@ -0,0 +1,760 @@ +; AUTO-GENERATED BY OCAML BACKEND +(rule + (targets + dune.generated.new + offline.ml + decode_tests.ml + aarch64_vector_transfer_vector_table.ml + aarch64_vector_transfer_vector_permute_zip.ml + aarch64_vector_transfer_vector_permute_unzip.ml + aarch64_vector_transfer_vector_permute_transpose.ml + aarch64_vector_transfer_vector_insert.ml + aarch64_vector_transfer_vector_extract.ml + aarch64_vector_transfer_vector_cpy_dup_sisd.ml + aarch64_vector_transfer_vector_cpy_dup_simd.ml + aarch64_vector_transfer_integer_move_unsigned.ml + aarch64_vector_transfer_integer_move_signed.ml + aarch64_vector_transfer_integer_insert.ml + aarch64_vector_transfer_integer_dup.ml + aarch64_vector_shift_right_sisd.ml + aarch64_vector_shift_right_simd.ml + aarch64_vector_shift_right_narrow_uniform_sisd.ml + aarch64_vector_shift_right_narrow_uniform_simd.ml + aarch64_vector_shift_right_narrow_nonuniform_sisd.ml + aarch64_vector_shift_right_narrow_nonuniform_simd.ml + aarch64_vector_shift_right_narrow_logical.ml + aarch64_vector_shift_right_insert_sisd.ml + aarch64_vector_shift_right_insert_simd.ml + aarch64_vector_shift_left_sisd.ml + aarch64_vector_shift_left_simd.ml + aarch64_vector_shift_left_sat_sisd.ml + aarch64_vector_shift_left_sat_simd.ml + aarch64_vector_shift_left_long.ml + aarch64_vector_shift_left_insert_sisd.ml + aarch64_vector_shift_left_insert_simd.ml + aarch64_vector_shift_conv_int_sisd.ml + aarch64_vector_shift_conv_int_simd.ml + aarch64_vector_shift_conv_float_sisd.ml + aarch64_vector_shift_conv_float_simd.ml + aarch64_vector_reduce_int_max.ml + aarch64_vector_reduce_fp_maxnm_sisd.ml + aarch64_vector_reduce_fp_maxnm_simd.ml + aarch64_vector_reduce_fp_max_sisd.ml + aarch64_vector_reduce_fp_max_simd.ml + aarch64_vector_reduce_fp_add_sisd.ml + aarch64_vector_reduce_fp16_maxnm_sisd.ml + aarch64_vector_reduce_fp16_maxnm_simd.ml + aarch64_vector_reduce_fp16_max_sisd.ml + aarch64_vector_reduce_fp16_max_simd.ml + aarch64_vector_reduce_fp16_add_sisd.ml + aarch64_vector_reduce_add_sisd.ml + aarch64_vector_reduce_add_simd.ml + aarch64_vector_reduce_add_long.ml + aarch64_vector_logical.ml + aarch64_vector_fp16_movi.ml + aarch64_vector_cvt_bf16_vector.ml + aarch64_vector_cvt_bf16_scalar.ml + aarch64_vector_crypto_sm4_sm4enckey.ml + aarch64_vector_crypto_sm4_sm4enc.ml + aarch64_vector_crypto_sm3_sm3tt2b.ml + aarch64_vector_crypto_sm3_sm3tt2a.ml + aarch64_vector_crypto_sm3_sm3tt1b.ml + aarch64_vector_crypto_sm3_sm3tt1a.ml + aarch64_vector_crypto_sm3_sm3ss1.ml + aarch64_vector_crypto_sm3_sm3partw2.ml + aarch64_vector_crypto_sm3_sm3partw1.ml + aarch64_vector_crypto_sha512_sha512su1.ml + aarch64_vector_crypto_sha512_sha512su0.ml + aarch64_vector_crypto_sha512_sha512h2.ml + aarch64_vector_crypto_sha512_sha512h.ml + aarch64_vector_crypto_sha3op_sha256_sched1.ml + aarch64_vector_crypto_sha3op_sha256_hash.ml + aarch64_vector_crypto_sha3op_sha1_sched0.ml + aarch64_vector_crypto_sha3op_sha1_hash_parity.ml + aarch64_vector_crypto_sha3op_sha1_hash_majority.ml + aarch64_vector_crypto_sha3op_sha1_hash_choose.ml + aarch64_vector_crypto_sha3_xar.ml + aarch64_vector_crypto_sha3_rax1.ml + aarch64_vector_crypto_sha3_eor3.ml + aarch64_vector_crypto_sha3_bcax.ml + aarch64_vector_crypto_sha2op_sha256_sched0.ml + aarch64_vector_crypto_sha2op_sha1_sched1.ml + aarch64_vector_crypto_sha2op_sha1_hash.ml + aarch64_vector_crypto_aes_round.ml + aarch64_vector_crypto_aes_mix.ml + aarch64_vector_bfmmla.ml + aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt.ml + aarch64_vector_arithmetic_unary_special_recip_int.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_float_simd.ml + aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml + aarch64_vector_arithmetic_unary_special_frecpx.ml + aarch64_vector_arithmetic_unary_shift.ml + aarch64_vector_arithmetic_unary_rev.ml + aarch64_vector_arithmetic_unary_rbit.ml + aarch64_vector_arithmetic_unary_not.ml + aarch64_vector_arithmetic_unary_fp16_round.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_float_xtn_sisd.ml + aarch64_vector_arithmetic_unary_float_xtn_simd.ml + aarch64_vector_arithmetic_unary_float_widen.ml + aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml + aarch64_vector_arithmetic_unary_float_round.ml + aarch64_vector_arithmetic_unary_float_narrow.ml + aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_int_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml + aarch64_vector_arithmetic_unary_extract_sat_sisd.ml + aarch64_vector_arithmetic_unary_extract_sat_simd.ml + aarch64_vector_arithmetic_unary_extract_nosat.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_fp16.ml + aarch64_vector_arithmetic_unary_diff_neg_float.ml + aarch64_vector_arithmetic_unary_cnt.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_clsz.ml + aarch64_vector_arithmetic_unary_add_saturating_sisd.ml + aarch64_vector_arithmetic_unary_add_saturating_simd.ml + aarch64_vector_arithmetic_unary_add_pairwise.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_int.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml + aarch64_vector_arithmetic_binary_uniform_shift_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_uniform_max_min_single.ml + aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml + aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml + aarch64_vector_arithmetic_binary_uniform_div_fp16.ml + aarch64_vector_arithmetic_binary_uniform_div.ml + aarch64_vector_arithmetic_binary_uniform_diff.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml + aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_add_fp16.ml + aarch64_vector_arithmetic_binary_uniform_add_fp.ml + aarch64_vector_arithmetic_binary_element_mul_long.ml + aarch64_vector_arithmetic_binary_element_mul_int.ml + aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml + aarch64_vector_arithmetic_binary_element_mul_acc_long.ml + aarch64_vector_arithmetic_binary_element_mul_acc_int.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_element_dotp.ml + aarch64_vector_arithmetic_binary_element_bfdot.ml + aarch64_vector_arithmetic_binary_disparate_mul_product.ml + aarch64_vector_arithmetic_binary_disparate_mul_poly.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_accum.ml + aarch64_vector_arithmetic_binary_disparate_diff.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml + aarch64_udf.ml + aarch64_system_sysops.ml + aarch64_system_register_cpsr.ml + aarch64_system_monitors.ml + aarch64_system_exceptions_runtime_hvc.ml + aarch64_system_exceptions_debug_halt.ml + aarch64_system_exceptions_debug_breakpoint.ml + aarch64_system_barriers_isb.ml + aarch64_system_barriers_dsb.ml + aarch64_system_barriers_dmb.ml + aarch64_memory_vector_single_post_inc.ml + aarch64_memory_vector_single_no_wb.ml + aarch64_memory_vector_multiple_post_inc.ml + aarch64_memory_vector_multiple_no_wb.ml + aarch64_memory_single_simdfp_register.ml + aarch64_memory_single_simdfp_immediate_unsigned.ml + aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml + aarch64_memory_single_simdfp_immediate_signed_post_idx.ml + aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml + aarch64_memory_single_general_register.ml + aarch64_memory_single_general_immediate_unsigned.ml + aarch64_memory_single_general_immediate_signed_pre_idx.ml + aarch64_memory_single_general_immediate_signed_post_idx.ml + aarch64_memory_single_general_immediate_signed_pac.ml + aarch64_memory_single_general_immediate_signed_offset_unpriv.ml + aarch64_memory_single_general_immediate_signed_offset_normal.ml + aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml + aarch64_memory_pair_simdfp_pre_idx.ml + aarch64_memory_pair_simdfp_post_idx.ml + aarch64_memory_pair_simdfp_offset.ml + aarch64_memory_pair_simdfp_no_alloc.ml + aarch64_memory_pair_general_pre_idx.ml + aarch64_memory_pair_general_post_idx.ml + aarch64_memory_pair_general_offset.ml + aarch64_memory_pair_general_no_alloc.ml + aarch64_memory_ordered_rcpc.ml + aarch64_memory_ordered.ml + aarch64_memory_literal_simdfp.ml + aarch64_memory_literal_general.ml + aarch64_memory_exclusive_single.ml + aarch64_memory_exclusive_pair.ml + aarch64_memory_atomicops_swp.ml + aarch64_memory_atomicops_ld.ml + aarch64_memory_atomicops_cas_single.ml + aarch64_memory_atomicops_cas_pair.ml + aarch64_integer_tags_mcsubtag.ml + aarch64_integer_tags_mcsettagarray.ml + aarch64_integer_tags_mcsettagandzeroarray.ml + aarch64_integer_tags_mcinserttagmask.ml + aarch64_integer_tags_mcinsertrandomtag.ml + aarch64_integer_tags_mcgettagarray.ml + aarch64_integer_tags_mcgettag.ml + aarch64_integer_tags_mcaddtag.ml + aarch64_integer_shift_variable.ml + aarch64_integer_pac_strip_hint.ml + aarch64_integer_pac_pacib_hint.ml + aarch64_integer_pac_pacib_dp_1src.ml + aarch64_integer_pac_pacia_hint.ml + aarch64_integer_pac_pacia_dp_1src.ml + aarch64_integer_pac_pacdb_dp_1src.ml + aarch64_integer_pac_pacda_dp_1src.ml + aarch64_integer_pac_autib_hint.ml + aarch64_integer_pac_autib_dp_1src.ml + aarch64_integer_pac_autia_hint.ml + aarch64_integer_pac_autia_dp_1src.ml + aarch64_integer_pac_autdb_dp_1src.ml + aarch64_integer_pac_autda_dp_1src.ml + aarch64_integer_logical_shiftedreg.ml + aarch64_integer_logical_immediate.ml + aarch64_integer_ins_ext_insert_movewide.ml + aarch64_integer_ins_ext_extract_immediate.ml + aarch64_integer_flags_xaflag.ml + aarch64_integer_flags_setf.ml + aarch64_integer_flags_rmif.ml + aarch64_integer_flags_cfinv.ml + aarch64_integer_flags_axflag.ml + aarch64_integer_crc.ml + aarch64_integer_conditional_select.ml + aarch64_integer_conditional_compare_register.ml + aarch64_integer_conditional_compare_immediate.ml + aarch64_integer_bitfield.ml + aarch64_integer_arithmetic_rev.ml + aarch64_integer_arithmetic_rbit.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml + aarch64_integer_arithmetic_mul_widening_64_128hi.ml + aarch64_integer_arithmetic_mul_widening_32_64.ml + aarch64_integer_arithmetic_mul_uniform_add_sub.ml + aarch64_integer_arithmetic_div.ml + aarch64_integer_arithmetic_cnt.ml + aarch64_integer_arithmetic_address_pc_rel.ml + aarch64_integer_arithmetic_add_sub_shiftedreg.ml + aarch64_integer_arithmetic_add_sub_immediate.ml + aarch64_integer_arithmetic_add_sub_extendedreg.ml + aarch64_integer_arithmetic_add_sub_carry.ml + aarch64_float_move_fp_select.ml + aarch64_float_move_fp_imm.ml + aarch64_float_convert_int.ml + aarch64_float_convert_fp.ml + aarch64_float_convert_fix.ml + aarch64_float_compare_uncond.ml + aarch64_float_compare_cond.ml + aarch64_float_arithmetic_unary.ml + aarch64_float_arithmetic_round_frint_32_64.ml + aarch64_float_arithmetic_round_frint.ml + aarch64_float_arithmetic_mul_product.ml + aarch64_float_arithmetic_mul_add_sub.ml + aarch64_float_arithmetic_max_min.ml + aarch64_float_arithmetic_div.ml + aarch64_float_arithmetic_add_sub.ml + aarch64_branch_unconditional_register.ml + aarch64_branch_unconditional_immediate.ml + aarch64_branch_unconditional_eret.ml + aarch64_branch_unconditional_dret.ml + aarch64_branch_conditional_test.ml + aarch64_branch_conditional_cond.ml + aarch64_branch_conditional_compare.ml + Offline_utils.ml + + ) + (deps gen-command) + (action (with-stdin-from gen-command (run asli))) +) + + + (library + (name offlineASL_pc) + (public_name aslp_offline.pc_aarch64) + (flags + (:standard -w -27 -w -33 -cclib -lstdc++)) + (modules + offline + decode_tests + aarch64_vector_transfer_vector_table + aarch64_vector_transfer_vector_permute_zip + aarch64_vector_transfer_vector_permute_unzip + aarch64_vector_transfer_vector_permute_transpose + aarch64_vector_transfer_vector_insert + aarch64_vector_transfer_vector_extract + aarch64_vector_transfer_vector_cpy_dup_sisd + aarch64_vector_transfer_vector_cpy_dup_simd + aarch64_vector_transfer_integer_move_unsigned + aarch64_vector_transfer_integer_move_signed + aarch64_vector_transfer_integer_insert + aarch64_vector_transfer_integer_dup + aarch64_vector_shift_right_sisd + aarch64_vector_shift_right_simd + aarch64_vector_shift_right_narrow_uniform_sisd + aarch64_vector_shift_right_narrow_uniform_simd + aarch64_vector_shift_right_narrow_nonuniform_sisd + aarch64_vector_shift_right_narrow_nonuniform_simd + aarch64_vector_shift_right_narrow_logical + aarch64_vector_shift_right_insert_sisd + aarch64_vector_shift_right_insert_simd + aarch64_vector_shift_left_sisd + aarch64_vector_shift_left_simd + aarch64_vector_shift_left_sat_sisd + aarch64_vector_shift_left_sat_simd + aarch64_vector_shift_left_long + aarch64_vector_shift_left_insert_sisd + aarch64_vector_shift_left_insert_simd + aarch64_vector_shift_conv_int_sisd + aarch64_vector_shift_conv_int_simd + aarch64_vector_shift_conv_float_sisd + aarch64_vector_shift_conv_float_simd + aarch64_vector_reduce_int_max + aarch64_vector_reduce_fp_maxnm_sisd + aarch64_vector_reduce_fp_maxnm_simd + aarch64_vector_reduce_fp_max_sisd + aarch64_vector_reduce_fp_max_simd + aarch64_vector_reduce_fp_add_sisd + aarch64_vector_reduce_fp16_maxnm_sisd + aarch64_vector_reduce_fp16_maxnm_simd + aarch64_vector_reduce_fp16_max_sisd + aarch64_vector_reduce_fp16_max_simd + aarch64_vector_reduce_fp16_add_sisd + aarch64_vector_reduce_add_sisd + aarch64_vector_reduce_add_simd + aarch64_vector_reduce_add_long + aarch64_vector_logical + aarch64_vector_fp16_movi + aarch64_vector_cvt_bf16_vector + aarch64_vector_cvt_bf16_scalar + aarch64_vector_crypto_sm4_sm4enckey + aarch64_vector_crypto_sm4_sm4enc + aarch64_vector_crypto_sm3_sm3tt2b + aarch64_vector_crypto_sm3_sm3tt2a + aarch64_vector_crypto_sm3_sm3tt1b + aarch64_vector_crypto_sm3_sm3tt1a + aarch64_vector_crypto_sm3_sm3ss1 + aarch64_vector_crypto_sm3_sm3partw2 + aarch64_vector_crypto_sm3_sm3partw1 + aarch64_vector_crypto_sha512_sha512su1 + aarch64_vector_crypto_sha512_sha512su0 + aarch64_vector_crypto_sha512_sha512h2 + aarch64_vector_crypto_sha512_sha512h + aarch64_vector_crypto_sha3op_sha256_sched1 + aarch64_vector_crypto_sha3op_sha256_hash + aarch64_vector_crypto_sha3op_sha1_sched0 + aarch64_vector_crypto_sha3op_sha1_hash_parity + aarch64_vector_crypto_sha3op_sha1_hash_majority + aarch64_vector_crypto_sha3op_sha1_hash_choose + aarch64_vector_crypto_sha3_xar + aarch64_vector_crypto_sha3_rax1 + aarch64_vector_crypto_sha3_eor3 + aarch64_vector_crypto_sha3_bcax + aarch64_vector_crypto_sha2op_sha256_sched0 + aarch64_vector_crypto_sha2op_sha1_sched1 + aarch64_vector_crypto_sha2op_sha1_hash + aarch64_vector_crypto_aes_round + aarch64_vector_crypto_aes_mix + aarch64_vector_bfmmla + aarch64_vector_arithmetic_unary_special_sqrt_fp16 + aarch64_vector_arithmetic_unary_special_sqrt_est_int + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd + aarch64_vector_arithmetic_unary_special_sqrt + aarch64_vector_arithmetic_unary_special_recip_int + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd + aarch64_vector_arithmetic_unary_special_recip_fp16_simd + aarch64_vector_arithmetic_unary_special_recip_float_sisd + aarch64_vector_arithmetic_unary_special_recip_float_simd + aarch64_vector_arithmetic_unary_special_frecpx_fp16 + aarch64_vector_arithmetic_unary_special_frecpx + aarch64_vector_arithmetic_unary_shift + aarch64_vector_arithmetic_unary_rev + aarch64_vector_arithmetic_unary_rbit + aarch64_vector_arithmetic_unary_not + aarch64_vector_arithmetic_unary_fp16_round + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd + aarch64_vector_arithmetic_unary_fp16_conv_int_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_float_xtn_sisd + aarch64_vector_arithmetic_unary_float_xtn_simd + aarch64_vector_arithmetic_unary_float_widen + aarch64_vector_arithmetic_unary_float_round_frint_32_64 + aarch64_vector_arithmetic_unary_float_round + aarch64_vector_arithmetic_unary_float_narrow + aarch64_vector_arithmetic_unary_float_conv_int_sisd + aarch64_vector_arithmetic_unary_float_conv_int_simd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd + aarch64_vector_arithmetic_unary_extract_sqxtun_simd + aarch64_vector_arithmetic_unary_extract_sat_sisd + aarch64_vector_arithmetic_unary_extract_sat_simd + aarch64_vector_arithmetic_unary_extract_nosat + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd + aarch64_vector_arithmetic_unary_diff_neg_sat_simd + aarch64_vector_arithmetic_unary_diff_neg_int_sisd + aarch64_vector_arithmetic_unary_diff_neg_int_simd + aarch64_vector_arithmetic_unary_diff_neg_fp16 + aarch64_vector_arithmetic_unary_diff_neg_float + aarch64_vector_arithmetic_unary_cnt + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd + aarch64_vector_arithmetic_unary_clsz + aarch64_vector_arithmetic_unary_add_saturating_sisd + aarch64_vector_arithmetic_unary_add_saturating_simd + aarch64_vector_arithmetic_unary_add_pairwise + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd + aarch64_vector_arithmetic_binary_uniform_sub_int + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd + aarch64_vector_arithmetic_binary_uniform_shift_sisd + aarch64_vector_arithmetic_binary_uniform_shift_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd + aarch64_vector_arithmetic_binary_uniform_recps_sisd + aarch64_vector_arithmetic_binary_uniform_recps_simd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_product + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot + aarch64_vector_arithmetic_binary_uniform_mul_int_accum + aarch64_vector_arithmetic_binary_uniform_mul_fp_product + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_uniform_max_min_single + aarch64_vector_arithmetic_binary_uniform_max_min_pair + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor + aarch64_vector_arithmetic_binary_uniform_logical_and_orr + aarch64_vector_arithmetic_binary_uniform_div_fp16 + aarch64_vector_arithmetic_binary_uniform_div + aarch64_vector_arithmetic_binary_uniform_diff + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding + aarch64_vector_arithmetic_binary_uniform_add_fp_complex + aarch64_vector_arithmetic_binary_uniform_add_fp16 + aarch64_vector_arithmetic_binary_uniform_add_fp + aarch64_vector_arithmetic_binary_element_mul_long + aarch64_vector_arithmetic_binary_element_mul_int + aarch64_vector_arithmetic_binary_element_mul_high_sisd + aarch64_vector_arithmetic_binary_element_mul_high_simd + aarch64_vector_arithmetic_binary_element_mul_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_fp_simd + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_double_sisd + aarch64_vector_arithmetic_binary_element_mul_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower + aarch64_vector_arithmetic_binary_element_mul_acc_long + aarch64_vector_arithmetic_binary_element_mul_acc_int + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_complex + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp + aarch64_vector_arithmetic_binary_element_dotp + aarch64_vector_arithmetic_binary_element_bfdot + aarch64_vector_arithmetic_binary_disparate_mul_product + aarch64_vector_arithmetic_binary_disparate_mul_poly + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd + aarch64_vector_arithmetic_binary_disparate_mul_double_simd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd + aarch64_vector_arithmetic_binary_disparate_mul_accum + aarch64_vector_arithmetic_binary_disparate_diff + aarch64_vector_arithmetic_binary_disparate_add_sub_wide + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow + aarch64_vector_arithmetic_binary_disparate_add_sub_long + aarch64_udf + aarch64_system_sysops + aarch64_system_register_cpsr + aarch64_system_monitors + aarch64_system_exceptions_runtime_hvc + aarch64_system_exceptions_debug_halt + aarch64_system_exceptions_debug_breakpoint + aarch64_system_barriers_isb + aarch64_system_barriers_dsb + aarch64_system_barriers_dmb + aarch64_memory_vector_single_post_inc + aarch64_memory_vector_single_no_wb + aarch64_memory_vector_multiple_post_inc + aarch64_memory_vector_multiple_no_wb + aarch64_memory_single_simdfp_register + aarch64_memory_single_simdfp_immediate_unsigned + aarch64_memory_single_simdfp_immediate_signed_pre_idx + aarch64_memory_single_simdfp_immediate_signed_post_idx + aarch64_memory_single_simdfp_immediate_signed_offset_normal + aarch64_memory_single_general_register + aarch64_memory_single_general_immediate_unsigned + aarch64_memory_single_general_immediate_signed_pre_idx + aarch64_memory_single_general_immediate_signed_post_idx + aarch64_memory_single_general_immediate_signed_pac + aarch64_memory_single_general_immediate_signed_offset_unpriv + aarch64_memory_single_general_immediate_signed_offset_normal + aarch64_memory_single_general_immediate_signed_offset_lda_stl + aarch64_memory_pair_simdfp_pre_idx + aarch64_memory_pair_simdfp_post_idx + aarch64_memory_pair_simdfp_offset + aarch64_memory_pair_simdfp_no_alloc + aarch64_memory_pair_general_pre_idx + aarch64_memory_pair_general_post_idx + aarch64_memory_pair_general_offset + aarch64_memory_pair_general_no_alloc + aarch64_memory_ordered_rcpc + aarch64_memory_ordered + aarch64_memory_literal_simdfp + aarch64_memory_literal_general + aarch64_memory_exclusive_single + aarch64_memory_exclusive_pair + aarch64_memory_atomicops_swp + aarch64_memory_atomicops_ld + aarch64_memory_atomicops_cas_single + aarch64_memory_atomicops_cas_pair + aarch64_integer_tags_mcsubtag + aarch64_integer_tags_mcsettagarray + aarch64_integer_tags_mcsettagandzeroarray + aarch64_integer_tags_mcinserttagmask + aarch64_integer_tags_mcinsertrandomtag + aarch64_integer_tags_mcgettagarray + aarch64_integer_tags_mcgettag + aarch64_integer_tags_mcaddtag + aarch64_integer_shift_variable + aarch64_integer_pac_strip_hint + aarch64_integer_pac_pacib_hint + aarch64_integer_pac_pacib_dp_1src + aarch64_integer_pac_pacia_hint + aarch64_integer_pac_pacia_dp_1src + aarch64_integer_pac_pacdb_dp_1src + aarch64_integer_pac_pacda_dp_1src + aarch64_integer_pac_autib_hint + aarch64_integer_pac_autib_dp_1src + aarch64_integer_pac_autia_hint + aarch64_integer_pac_autia_dp_1src + aarch64_integer_pac_autdb_dp_1src + aarch64_integer_pac_autda_dp_1src + aarch64_integer_logical_shiftedreg + aarch64_integer_logical_immediate + aarch64_integer_ins_ext_insert_movewide + aarch64_integer_ins_ext_extract_immediate + aarch64_integer_flags_xaflag + aarch64_integer_flags_setf + aarch64_integer_flags_rmif + aarch64_integer_flags_cfinv + aarch64_integer_flags_axflag + aarch64_integer_crc + aarch64_integer_conditional_select + aarch64_integer_conditional_compare_register + aarch64_integer_conditional_compare_immediate + aarch64_integer_bitfield + aarch64_integer_arithmetic_rev + aarch64_integer_arithmetic_rbit + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress + aarch64_integer_arithmetic_mul_widening_64_128hi + aarch64_integer_arithmetic_mul_widening_32_64 + aarch64_integer_arithmetic_mul_uniform_add_sub + aarch64_integer_arithmetic_div + aarch64_integer_arithmetic_cnt + aarch64_integer_arithmetic_address_pc_rel + aarch64_integer_arithmetic_add_sub_shiftedreg + aarch64_integer_arithmetic_add_sub_immediate + aarch64_integer_arithmetic_add_sub_extendedreg + aarch64_integer_arithmetic_add_sub_carry + aarch64_float_move_fp_select + aarch64_float_move_fp_imm + aarch64_float_convert_int + aarch64_float_convert_fp + aarch64_float_convert_fix + aarch64_float_compare_uncond + aarch64_float_compare_cond + aarch64_float_arithmetic_unary + aarch64_float_arithmetic_round_frint_32_64 + aarch64_float_arithmetic_round_frint + aarch64_float_arithmetic_mul_product + aarch64_float_arithmetic_mul_add_sub + aarch64_float_arithmetic_max_min + aarch64_float_arithmetic_div + aarch64_float_arithmetic_add_sub + aarch64_branch_unconditional_register + aarch64_branch_unconditional_immediate + aarch64_branch_unconditional_eret + aarch64_branch_unconditional_dret + aarch64_branch_conditional_test + aarch64_branch_conditional_cond + aarch64_branch_conditional_compare + Offline_utils + ) + (libraries asli.libASL-stage0)) +(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) \ No newline at end of file diff --git a/offlineASL/dune b/offlineASL/dune index 7f95be6a..f9e7d25c 100644 --- a/offlineASL/dune +++ b/offlineASL/dune @@ -1,758 +1,4 @@ +(include dune.generated) - (rule (targets - offline.ml - dune.template - decode_tests.ml - aarch64_vector_transfer_vector_table.ml - aarch64_vector_transfer_vector_permute_zip.ml - aarch64_vector_transfer_vector_permute_unzip.ml - aarch64_vector_transfer_vector_permute_transpose.ml - aarch64_vector_transfer_vector_insert.ml - aarch64_vector_transfer_vector_extract.ml - aarch64_vector_transfer_vector_cpy_dup_sisd.ml - aarch64_vector_transfer_vector_cpy_dup_simd.ml - aarch64_vector_transfer_integer_move_unsigned.ml - aarch64_vector_transfer_integer_move_signed.ml - aarch64_vector_transfer_integer_insert.ml - aarch64_vector_transfer_integer_dup.ml - aarch64_vector_shift_right_sisd.ml - aarch64_vector_shift_right_simd.ml - aarch64_vector_shift_right_narrow_uniform_sisd.ml - aarch64_vector_shift_right_narrow_uniform_simd.ml - aarch64_vector_shift_right_narrow_nonuniform_sisd.ml - aarch64_vector_shift_right_narrow_nonuniform_simd.ml - aarch64_vector_shift_right_narrow_logical.ml - aarch64_vector_shift_right_insert_sisd.ml - aarch64_vector_shift_right_insert_simd.ml - aarch64_vector_shift_left_sisd.ml - aarch64_vector_shift_left_simd.ml - aarch64_vector_shift_left_sat_sisd.ml - aarch64_vector_shift_left_sat_simd.ml - aarch64_vector_shift_left_long.ml - aarch64_vector_shift_left_insert_sisd.ml - aarch64_vector_shift_left_insert_simd.ml - aarch64_vector_shift_conv_int_sisd.ml - aarch64_vector_shift_conv_int_simd.ml - aarch64_vector_shift_conv_float_sisd.ml - aarch64_vector_shift_conv_float_simd.ml - aarch64_vector_reduce_int_max.ml - aarch64_vector_reduce_fp_maxnm_sisd.ml - aarch64_vector_reduce_fp_maxnm_simd.ml - aarch64_vector_reduce_fp_max_sisd.ml - aarch64_vector_reduce_fp_max_simd.ml - aarch64_vector_reduce_fp_add_sisd.ml - aarch64_vector_reduce_fp16_maxnm_sisd.ml - aarch64_vector_reduce_fp16_maxnm_simd.ml - aarch64_vector_reduce_fp16_max_sisd.ml - aarch64_vector_reduce_fp16_max_simd.ml - aarch64_vector_reduce_fp16_add_sisd.ml - aarch64_vector_reduce_add_sisd.ml - aarch64_vector_reduce_add_simd.ml - aarch64_vector_reduce_add_long.ml - aarch64_vector_logical.ml - aarch64_vector_fp16_movi.ml - aarch64_vector_cvt_bf16_vector.ml - aarch64_vector_cvt_bf16_scalar.ml - aarch64_vector_crypto_sm4_sm4enckey.ml - aarch64_vector_crypto_sm4_sm4enc.ml - aarch64_vector_crypto_sm3_sm3tt2b.ml - aarch64_vector_crypto_sm3_sm3tt2a.ml - aarch64_vector_crypto_sm3_sm3tt1b.ml - aarch64_vector_crypto_sm3_sm3tt1a.ml - aarch64_vector_crypto_sm3_sm3ss1.ml - aarch64_vector_crypto_sm3_sm3partw2.ml - aarch64_vector_crypto_sm3_sm3partw1.ml - aarch64_vector_crypto_sha512_sha512su1.ml - aarch64_vector_crypto_sha512_sha512su0.ml - aarch64_vector_crypto_sha512_sha512h2.ml - aarch64_vector_crypto_sha512_sha512h.ml - aarch64_vector_crypto_sha3op_sha256_sched1.ml - aarch64_vector_crypto_sha3op_sha256_hash.ml - aarch64_vector_crypto_sha3op_sha1_sched0.ml - aarch64_vector_crypto_sha3op_sha1_hash_parity.ml - aarch64_vector_crypto_sha3op_sha1_hash_majority.ml - aarch64_vector_crypto_sha3op_sha1_hash_choose.ml - aarch64_vector_crypto_sha3_xar.ml - aarch64_vector_crypto_sha3_rax1.ml - aarch64_vector_crypto_sha3_eor3.ml - aarch64_vector_crypto_sha3_bcax.ml - aarch64_vector_crypto_sha2op_sha256_sched0.ml - aarch64_vector_crypto_sha2op_sha1_sched1.ml - aarch64_vector_crypto_sha2op_sha1_hash.ml - aarch64_vector_crypto_aes_round.ml - aarch64_vector_crypto_aes_mix.ml - aarch64_vector_bfmmla.ml - aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml - aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml - aarch64_vector_arithmetic_unary_special_sqrt.ml - aarch64_vector_arithmetic_unary_special_recip_int.ml - aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml - aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml - aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml - aarch64_vector_arithmetic_unary_special_recip_float_simd.ml - aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml - aarch64_vector_arithmetic_unary_special_frecpx.ml - aarch64_vector_arithmetic_unary_shift.ml - aarch64_vector_arithmetic_unary_rev.ml - aarch64_vector_arithmetic_unary_rbit.ml - aarch64_vector_arithmetic_unary_not.ml - aarch64_vector_arithmetic_unary_fp16_round.ml - aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_float_xtn_sisd.ml - aarch64_vector_arithmetic_unary_float_xtn_simd.ml - aarch64_vector_arithmetic_unary_float_widen.ml - aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml - aarch64_vector_arithmetic_unary_float_round.ml - aarch64_vector_arithmetic_unary_float_narrow.ml - aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_int_simd.ml - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml - aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml - aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml - aarch64_vector_arithmetic_unary_extract_sat_sisd.ml - aarch64_vector_arithmetic_unary_extract_sat_simd.ml - aarch64_vector_arithmetic_unary_extract_nosat.ml - aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml - aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml - aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml - aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml - aarch64_vector_arithmetic_unary_diff_neg_fp16.ml - aarch64_vector_arithmetic_unary_diff_neg_float.ml - aarch64_vector_arithmetic_unary_cnt.ml - aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml - aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml - aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml - aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml - aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml - aarch64_vector_arithmetic_unary_clsz.ml - aarch64_vector_arithmetic_unary_add_saturating_sisd.ml - aarch64_vector_arithmetic_unary_add_saturating_simd.ml - aarch64_vector_arithmetic_unary_add_pairwise.ml - aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml - aarch64_vector_arithmetic_binary_uniform_sub_int.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml - aarch64_vector_arithmetic_binary_uniform_shift_simd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml - aarch64_vector_arithmetic_binary_uniform_recps_simd.ml - aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml - aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml - aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml - aarch64_vector_arithmetic_binary_uniform_max_min_single.ml - aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml - aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml - aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml - aarch64_vector_arithmetic_binary_uniform_div_fp16.ml - aarch64_vector_arithmetic_binary_uniform_div.ml - aarch64_vector_arithmetic_binary_uniform_diff.ml - aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml - aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml - aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml - aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml - aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml - aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml - aarch64_vector_arithmetic_binary_uniform_add_fp16.ml - aarch64_vector_arithmetic_binary_uniform_add_fp.ml - aarch64_vector_arithmetic_binary_element_mul_long.ml - aarch64_vector_arithmetic_binary_element_mul_int.ml - aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_high_simd.ml - aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml - aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml - aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_double_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml - aarch64_vector_arithmetic_binary_element_mul_acc_long.ml - aarch64_vector_arithmetic_binary_element_mul_acc_int.ml - aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml - aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml - aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml - aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml - aarch64_vector_arithmetic_binary_element_dotp.ml - aarch64_vector_arithmetic_binary_element_bfdot.ml - aarch64_vector_arithmetic_binary_disparate_mul_product.ml - aarch64_vector_arithmetic_binary_disparate_mul_poly.ml - aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml - aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml - aarch64_vector_arithmetic_binary_disparate_mul_accum.ml - aarch64_vector_arithmetic_binary_disparate_diff.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml - aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml - aarch64_udf.ml - aarch64_system_sysops.ml - aarch64_system_register_cpsr.ml - aarch64_system_monitors.ml - aarch64_system_exceptions_runtime_hvc.ml - aarch64_system_exceptions_debug_halt.ml - aarch64_system_exceptions_debug_breakpoint.ml - aarch64_system_barriers_isb.ml - aarch64_system_barriers_dsb.ml - aarch64_system_barriers_dmb.ml - aarch64_memory_vector_single_post_inc.ml - aarch64_memory_vector_single_no_wb.ml - aarch64_memory_vector_multiple_post_inc.ml - aarch64_memory_vector_multiple_no_wb.ml - aarch64_memory_single_simdfp_register.ml - aarch64_memory_single_simdfp_immediate_unsigned.ml - aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml - aarch64_memory_single_simdfp_immediate_signed_post_idx.ml - aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml - aarch64_memory_single_general_register.ml - aarch64_memory_single_general_immediate_unsigned.ml - aarch64_memory_single_general_immediate_signed_pre_idx.ml - aarch64_memory_single_general_immediate_signed_post_idx.ml - aarch64_memory_single_general_immediate_signed_pac.ml - aarch64_memory_single_general_immediate_signed_offset_unpriv.ml - aarch64_memory_single_general_immediate_signed_offset_normal.ml - aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml - aarch64_memory_pair_simdfp_pre_idx.ml - aarch64_memory_pair_simdfp_post_idx.ml - aarch64_memory_pair_simdfp_offset.ml - aarch64_memory_pair_simdfp_no_alloc.ml - aarch64_memory_pair_general_pre_idx.ml - aarch64_memory_pair_general_post_idx.ml - aarch64_memory_pair_general_offset.ml - aarch64_memory_pair_general_no_alloc.ml - aarch64_memory_ordered_rcpc.ml - aarch64_memory_ordered.ml - aarch64_memory_literal_simdfp.ml - aarch64_memory_literal_general.ml - aarch64_memory_exclusive_single.ml - aarch64_memory_exclusive_pair.ml - aarch64_memory_atomicops_swp.ml - aarch64_memory_atomicops_ld.ml - aarch64_memory_atomicops_cas_single.ml - aarch64_memory_atomicops_cas_pair.ml - aarch64_integer_tags_mcsubtag.ml - aarch64_integer_tags_mcsettagarray.ml - aarch64_integer_tags_mcsettagandzeroarray.ml - aarch64_integer_tags_mcinserttagmask.ml - aarch64_integer_tags_mcinsertrandomtag.ml - aarch64_integer_tags_mcgettagarray.ml - aarch64_integer_tags_mcgettag.ml - aarch64_integer_tags_mcaddtag.ml - aarch64_integer_shift_variable.ml - aarch64_integer_pac_strip_hint.ml - aarch64_integer_pac_pacib_hint.ml - aarch64_integer_pac_pacib_dp_1src.ml - aarch64_integer_pac_pacia_hint.ml - aarch64_integer_pac_pacia_dp_1src.ml - aarch64_integer_pac_pacdb_dp_1src.ml - aarch64_integer_pac_pacda_dp_1src.ml - aarch64_integer_pac_autib_hint.ml - aarch64_integer_pac_autib_dp_1src.ml - aarch64_integer_pac_autia_hint.ml - aarch64_integer_pac_autia_dp_1src.ml - aarch64_integer_pac_autdb_dp_1src.ml - aarch64_integer_pac_autda_dp_1src.ml - aarch64_integer_logical_shiftedreg.ml - aarch64_integer_logical_immediate.ml - aarch64_integer_ins_ext_insert_movewide.ml - aarch64_integer_ins_ext_extract_immediate.ml - aarch64_integer_flags_xaflag.ml - aarch64_integer_flags_setf.ml - aarch64_integer_flags_rmif.ml - aarch64_integer_flags_cfinv.ml - aarch64_integer_flags_axflag.ml - aarch64_integer_crc.ml - aarch64_integer_conditional_select.ml - aarch64_integer_conditional_compare_register.ml - aarch64_integer_conditional_compare_immediate.ml - aarch64_integer_bitfield.ml - aarch64_integer_arithmetic_rev.ml - aarch64_integer_arithmetic_rbit.ml - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml - aarch64_integer_arithmetic_mul_widening_64_128hi.ml - aarch64_integer_arithmetic_mul_widening_32_64.ml - aarch64_integer_arithmetic_mul_uniform_add_sub.ml - aarch64_integer_arithmetic_div.ml - aarch64_integer_arithmetic_cnt.ml - aarch64_integer_arithmetic_address_pc_rel.ml - aarch64_integer_arithmetic_add_sub_shiftedreg.ml - aarch64_integer_arithmetic_add_sub_immediate.ml - aarch64_integer_arithmetic_add_sub_extendedreg.ml - aarch64_integer_arithmetic_add_sub_carry.ml - aarch64_float_move_fp_select.ml - aarch64_float_move_fp_imm.ml - aarch64_float_convert_int.ml - aarch64_float_convert_fp.ml - aarch64_float_convert_fix.ml - aarch64_float_compare_uncond.ml - aarch64_float_compare_cond.ml - aarch64_float_arithmetic_unary.ml - aarch64_float_arithmetic_round_frint_32_64.ml - aarch64_float_arithmetic_round_frint.ml - aarch64_float_arithmetic_mul_product.ml - aarch64_float_arithmetic_mul_add_sub.ml - aarch64_float_arithmetic_max_min.ml - aarch64_float_arithmetic_div.ml - aarch64_float_arithmetic_add_sub.ml - aarch64_branch_unconditional_register.ml - aarch64_branch_unconditional_immediate.ml - aarch64_branch_unconditional_eret.ml - aarch64_branch_unconditional_dret.ml - aarch64_branch_conditional_test.ml - aarch64_branch_conditional_cond.ml - aarch64_branch_conditional_compare.ml - Offline_utils.ml - ) - (deps gen-command) - (action - (with-stdin-from gen-command (run asli)) - )) +(include dune.bootstrap) - - (library - (name offlineASL) - (public_name aslp_offline.aarch64) - (flags - (:standard -w -27 -w -33 -cclib -lstdc++)) - (modules - offline - decode_tests - aarch64_vector_transfer_vector_table - aarch64_vector_transfer_vector_permute_zip - aarch64_vector_transfer_vector_permute_unzip - aarch64_vector_transfer_vector_permute_transpose - aarch64_vector_transfer_vector_insert - aarch64_vector_transfer_vector_extract - aarch64_vector_transfer_vector_cpy_dup_sisd - aarch64_vector_transfer_vector_cpy_dup_simd - aarch64_vector_transfer_integer_move_unsigned - aarch64_vector_transfer_integer_move_signed - aarch64_vector_transfer_integer_insert - aarch64_vector_transfer_integer_dup - aarch64_vector_shift_right_sisd - aarch64_vector_shift_right_simd - aarch64_vector_shift_right_narrow_uniform_sisd - aarch64_vector_shift_right_narrow_uniform_simd - aarch64_vector_shift_right_narrow_nonuniform_sisd - aarch64_vector_shift_right_narrow_nonuniform_simd - aarch64_vector_shift_right_narrow_logical - aarch64_vector_shift_right_insert_sisd - aarch64_vector_shift_right_insert_simd - aarch64_vector_shift_left_sisd - aarch64_vector_shift_left_simd - aarch64_vector_shift_left_sat_sisd - aarch64_vector_shift_left_sat_simd - aarch64_vector_shift_left_long - aarch64_vector_shift_left_insert_sisd - aarch64_vector_shift_left_insert_simd - aarch64_vector_shift_conv_int_sisd - aarch64_vector_shift_conv_int_simd - aarch64_vector_shift_conv_float_sisd - aarch64_vector_shift_conv_float_simd - aarch64_vector_reduce_int_max - aarch64_vector_reduce_fp_maxnm_sisd - aarch64_vector_reduce_fp_maxnm_simd - aarch64_vector_reduce_fp_max_sisd - aarch64_vector_reduce_fp_max_simd - aarch64_vector_reduce_fp_add_sisd - aarch64_vector_reduce_fp16_maxnm_sisd - aarch64_vector_reduce_fp16_maxnm_simd - aarch64_vector_reduce_fp16_max_sisd - aarch64_vector_reduce_fp16_max_simd - aarch64_vector_reduce_fp16_add_sisd - aarch64_vector_reduce_add_sisd - aarch64_vector_reduce_add_simd - aarch64_vector_reduce_add_long - aarch64_vector_logical - aarch64_vector_fp16_movi - aarch64_vector_cvt_bf16_vector - aarch64_vector_cvt_bf16_scalar - aarch64_vector_crypto_sm4_sm4enckey - aarch64_vector_crypto_sm4_sm4enc - aarch64_vector_crypto_sm3_sm3tt2b - aarch64_vector_crypto_sm3_sm3tt2a - aarch64_vector_crypto_sm3_sm3tt1b - aarch64_vector_crypto_sm3_sm3tt1a - aarch64_vector_crypto_sm3_sm3ss1 - aarch64_vector_crypto_sm3_sm3partw2 - aarch64_vector_crypto_sm3_sm3partw1 - aarch64_vector_crypto_sha512_sha512su1 - aarch64_vector_crypto_sha512_sha512su0 - aarch64_vector_crypto_sha512_sha512h2 - aarch64_vector_crypto_sha512_sha512h - aarch64_vector_crypto_sha3op_sha256_sched1 - aarch64_vector_crypto_sha3op_sha256_hash - aarch64_vector_crypto_sha3op_sha1_sched0 - aarch64_vector_crypto_sha3op_sha1_hash_parity - aarch64_vector_crypto_sha3op_sha1_hash_majority - aarch64_vector_crypto_sha3op_sha1_hash_choose - aarch64_vector_crypto_sha3_xar - aarch64_vector_crypto_sha3_rax1 - aarch64_vector_crypto_sha3_eor3 - aarch64_vector_crypto_sha3_bcax - aarch64_vector_crypto_sha2op_sha256_sched0 - aarch64_vector_crypto_sha2op_sha1_sched1 - aarch64_vector_crypto_sha2op_sha1_hash - aarch64_vector_crypto_aes_round - aarch64_vector_crypto_aes_mix - aarch64_vector_bfmmla - aarch64_vector_arithmetic_unary_special_sqrt_fp16 - aarch64_vector_arithmetic_unary_special_sqrt_est_int - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd - aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd - aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd - aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd - aarch64_vector_arithmetic_unary_special_sqrt - aarch64_vector_arithmetic_unary_special_recip_int - aarch64_vector_arithmetic_unary_special_recip_fp16_sisd - aarch64_vector_arithmetic_unary_special_recip_fp16_simd - aarch64_vector_arithmetic_unary_special_recip_float_sisd - aarch64_vector_arithmetic_unary_special_recip_float_simd - aarch64_vector_arithmetic_unary_special_frecpx_fp16 - aarch64_vector_arithmetic_unary_special_frecpx - aarch64_vector_arithmetic_unary_shift - aarch64_vector_arithmetic_unary_rev - aarch64_vector_arithmetic_unary_rbit - aarch64_vector_arithmetic_unary_not - aarch64_vector_arithmetic_unary_fp16_round - aarch64_vector_arithmetic_unary_fp16_conv_int_sisd - aarch64_vector_arithmetic_unary_fp16_conv_int_simd - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd - aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd - aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd - aarch64_vector_arithmetic_unary_float_xtn_sisd - aarch64_vector_arithmetic_unary_float_xtn_simd - aarch64_vector_arithmetic_unary_float_widen - aarch64_vector_arithmetic_unary_float_round_frint_32_64 - aarch64_vector_arithmetic_unary_float_round - aarch64_vector_arithmetic_unary_float_narrow - aarch64_vector_arithmetic_unary_float_conv_int_sisd - aarch64_vector_arithmetic_unary_float_conv_int_simd - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd - aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd - aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd - aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd - aarch64_vector_arithmetic_unary_extract_sqxtun_sisd - aarch64_vector_arithmetic_unary_extract_sqxtun_simd - aarch64_vector_arithmetic_unary_extract_sat_sisd - aarch64_vector_arithmetic_unary_extract_sat_simd - aarch64_vector_arithmetic_unary_extract_nosat - aarch64_vector_arithmetic_unary_diff_neg_sat_sisd - aarch64_vector_arithmetic_unary_diff_neg_sat_simd - aarch64_vector_arithmetic_unary_diff_neg_int_sisd - aarch64_vector_arithmetic_unary_diff_neg_int_simd - aarch64_vector_arithmetic_unary_diff_neg_fp16 - aarch64_vector_arithmetic_unary_diff_neg_float - aarch64_vector_arithmetic_unary_cnt - aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_int_bulk_simd - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd - aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd - aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd - aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd - aarch64_vector_arithmetic_unary_cmp_float_bulk_simd - aarch64_vector_arithmetic_unary_clsz - aarch64_vector_arithmetic_unary_add_saturating_sisd - aarch64_vector_arithmetic_unary_add_saturating_simd - aarch64_vector_arithmetic_unary_add_pairwise - aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd - aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd - aarch64_vector_arithmetic_binary_uniform_sub_int - aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd - aarch64_vector_arithmetic_binary_uniform_sub_fp_simd - aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd - aarch64_vector_arithmetic_binary_uniform_shift_sisd - aarch64_vector_arithmetic_binary_uniform_shift_simd - aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd - aarch64_vector_arithmetic_binary_uniform_rsqrts_simd - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd - aarch64_vector_arithmetic_binary_uniform_recps_sisd - aarch64_vector_arithmetic_binary_uniform_recps_simd - aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_product - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd - aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd - aarch64_vector_arithmetic_binary_uniform_mul_int_dotp - aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot - aarch64_vector_arithmetic_binary_uniform_mul_int_accum - aarch64_vector_arithmetic_binary_uniform_mul_fp_product - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper - aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower - aarch64_vector_arithmetic_binary_uniform_mul_fp_fused - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd - aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd - aarch64_vector_arithmetic_binary_uniform_mul_fp_complex - aarch64_vector_arithmetic_binary_uniform_mul_fp16_product - aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd - aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd - aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long - aarch64_vector_arithmetic_binary_uniform_max_min_single - aarch64_vector_arithmetic_binary_uniform_max_min_pair - aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 - aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 - aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot - aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla - aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor - aarch64_vector_arithmetic_binary_uniform_logical_and_orr - aarch64_vector_arithmetic_binary_uniform_div_fp16 - aarch64_vector_arithmetic_binary_uniform_div - aarch64_vector_arithmetic_binary_uniform_diff - aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_int_simd - aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd - aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd - aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair - aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd - aarch64_vector_arithmetic_binary_uniform_add_saturating_simd - aarch64_vector_arithmetic_binary_uniform_add_halving_truncating - aarch64_vector_arithmetic_binary_uniform_add_halving_rounding - aarch64_vector_arithmetic_binary_uniform_add_fp_complex - aarch64_vector_arithmetic_binary_uniform_add_fp16 - aarch64_vector_arithmetic_binary_uniform_add_fp - aarch64_vector_arithmetic_binary_element_mul_long - aarch64_vector_arithmetic_binary_element_mul_int - aarch64_vector_arithmetic_binary_element_mul_high_sisd - aarch64_vector_arithmetic_binary_element_mul_high_simd - aarch64_vector_arithmetic_binary_element_mul_fp_sisd - aarch64_vector_arithmetic_binary_element_mul_fp_simd - aarch64_vector_arithmetic_binary_element_mul_fp16_sisd - aarch64_vector_arithmetic_binary_element_mul_fp16_simd - aarch64_vector_arithmetic_binary_element_mul_double_sisd - aarch64_vector_arithmetic_binary_element_mul_double_simd - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper - aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower - aarch64_vector_arithmetic_binary_element_mul_acc_long - aarch64_vector_arithmetic_binary_element_mul_acc_int - aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_high_simd - aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd - aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd - aarch64_vector_arithmetic_binary_element_mul_acc_double_simd - aarch64_vector_arithmetic_binary_element_mul_acc_complex - aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long - aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp - aarch64_vector_arithmetic_binary_element_dotp - aarch64_vector_arithmetic_binary_element_bfdot - aarch64_vector_arithmetic_binary_disparate_mul_product - aarch64_vector_arithmetic_binary_disparate_mul_poly - aarch64_vector_arithmetic_binary_disparate_mul_double_sisd - aarch64_vector_arithmetic_binary_disparate_mul_double_simd - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd - aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd - aarch64_vector_arithmetic_binary_disparate_mul_accum - aarch64_vector_arithmetic_binary_disparate_diff - aarch64_vector_arithmetic_binary_disparate_add_sub_wide - aarch64_vector_arithmetic_binary_disparate_add_sub_narrow - aarch64_vector_arithmetic_binary_disparate_add_sub_long - aarch64_udf - aarch64_system_sysops - aarch64_system_register_cpsr - aarch64_system_monitors - aarch64_system_exceptions_runtime_hvc - aarch64_system_exceptions_debug_halt - aarch64_system_exceptions_debug_breakpoint - aarch64_system_barriers_isb - aarch64_system_barriers_dsb - aarch64_system_barriers_dmb - aarch64_memory_vector_single_post_inc - aarch64_memory_vector_single_no_wb - aarch64_memory_vector_multiple_post_inc - aarch64_memory_vector_multiple_no_wb - aarch64_memory_single_simdfp_register - aarch64_memory_single_simdfp_immediate_unsigned - aarch64_memory_single_simdfp_immediate_signed_pre_idx - aarch64_memory_single_simdfp_immediate_signed_post_idx - aarch64_memory_single_simdfp_immediate_signed_offset_normal - aarch64_memory_single_general_register - aarch64_memory_single_general_immediate_unsigned - aarch64_memory_single_general_immediate_signed_pre_idx - aarch64_memory_single_general_immediate_signed_post_idx - aarch64_memory_single_general_immediate_signed_pac - aarch64_memory_single_general_immediate_signed_offset_unpriv - aarch64_memory_single_general_immediate_signed_offset_normal - aarch64_memory_single_general_immediate_signed_offset_lda_stl - aarch64_memory_pair_simdfp_pre_idx - aarch64_memory_pair_simdfp_post_idx - aarch64_memory_pair_simdfp_offset - aarch64_memory_pair_simdfp_no_alloc - aarch64_memory_pair_general_pre_idx - aarch64_memory_pair_general_post_idx - aarch64_memory_pair_general_offset - aarch64_memory_pair_general_no_alloc - aarch64_memory_ordered_rcpc - aarch64_memory_ordered - aarch64_memory_literal_simdfp - aarch64_memory_literal_general - aarch64_memory_exclusive_single - aarch64_memory_exclusive_pair - aarch64_memory_atomicops_swp - aarch64_memory_atomicops_ld - aarch64_memory_atomicops_cas_single - aarch64_memory_atomicops_cas_pair - aarch64_integer_tags_mcsubtag - aarch64_integer_tags_mcsettagarray - aarch64_integer_tags_mcsettagandzeroarray - aarch64_integer_tags_mcinserttagmask - aarch64_integer_tags_mcinsertrandomtag - aarch64_integer_tags_mcgettagarray - aarch64_integer_tags_mcgettag - aarch64_integer_tags_mcaddtag - aarch64_integer_shift_variable - aarch64_integer_pac_strip_hint - aarch64_integer_pac_pacib_hint - aarch64_integer_pac_pacib_dp_1src - aarch64_integer_pac_pacia_hint - aarch64_integer_pac_pacia_dp_1src - aarch64_integer_pac_pacdb_dp_1src - aarch64_integer_pac_pacda_dp_1src - aarch64_integer_pac_autib_hint - aarch64_integer_pac_autib_dp_1src - aarch64_integer_pac_autia_hint - aarch64_integer_pac_autia_dp_1src - aarch64_integer_pac_autdb_dp_1src - aarch64_integer_pac_autda_dp_1src - aarch64_integer_logical_shiftedreg - aarch64_integer_logical_immediate - aarch64_integer_ins_ext_insert_movewide - aarch64_integer_ins_ext_extract_immediate - aarch64_integer_flags_xaflag - aarch64_integer_flags_setf - aarch64_integer_flags_rmif - aarch64_integer_flags_cfinv - aarch64_integer_flags_axflag - aarch64_integer_crc - aarch64_integer_conditional_select - aarch64_integer_conditional_compare_register - aarch64_integer_conditional_compare_immediate - aarch64_integer_bitfield - aarch64_integer_arithmetic_rev - aarch64_integer_arithmetic_rbit - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags - aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress - aarch64_integer_arithmetic_mul_widening_64_128hi - aarch64_integer_arithmetic_mul_widening_32_64 - aarch64_integer_arithmetic_mul_uniform_add_sub - aarch64_integer_arithmetic_div - aarch64_integer_arithmetic_cnt - aarch64_integer_arithmetic_address_pc_rel - aarch64_integer_arithmetic_add_sub_shiftedreg - aarch64_integer_arithmetic_add_sub_immediate - aarch64_integer_arithmetic_add_sub_extendedreg - aarch64_integer_arithmetic_add_sub_carry - aarch64_float_move_fp_select - aarch64_float_move_fp_imm - aarch64_float_convert_int - aarch64_float_convert_fp - aarch64_float_convert_fix - aarch64_float_compare_uncond - aarch64_float_compare_cond - aarch64_float_arithmetic_unary - aarch64_float_arithmetic_round_frint_32_64 - aarch64_float_arithmetic_round_frint - aarch64_float_arithmetic_mul_product - aarch64_float_arithmetic_mul_add_sub - aarch64_float_arithmetic_max_min - aarch64_float_arithmetic_div - aarch64_float_arithmetic_add_sub - aarch64_branch_unconditional_register - aarch64_branch_unconditional_immediate - aarch64_branch_unconditional_eret - aarch64_branch_unconditional_dret - aarch64_branch_conditional_test - aarch64_branch_conditional_cond - aarch64_branch_conditional_compare - Offline_utils - ) - (libraries asli.libASL)) diff --git a/offlineASL/dune.bootstrap b/offlineASL/dune.bootstrap new file mode 100644 index 00000000..001b9e59 --- /dev/null +++ b/offlineASL/dune.bootstrap @@ -0,0 +1,22 @@ +; this manually-written file implements the bootstrapping for the offline lifter dune files. + +; to bootstrap without a dune.generated file: +; +; 1. cd offlineASL +; 2. make blank file so dune executes: touch dune.generated +; 3. write file which calls gen-command: ASLP_OFFLINE_BOOTSTRAP=true dune runtest offlineASL --auto-promote +; 4. update file with result from gen-command: dune runtest offlineASL --auto-promote + +(rule + (target dune.generated.new) + (action + (write-file %{target} " + (rule (targets %{target}) + (deps gen-command) + (action (with-stdin-from gen-command (run asli))))")) + (enabled_if %{env:ASLP_OFFLINE_BOOTSTRAP=false})) + +(rule + (alias runtest) + (package aslp_offline) + (action (diff dune.generated dune.generated.new))) diff --git a/offlineASL/dune.generated b/offlineASL/dune.generated new file mode 100644 index 00000000..3acb4cf8 --- /dev/null +++ b/offlineASL/dune.generated @@ -0,0 +1,760 @@ +; AUTO-GENERATED BY OCAML BACKEND +(rule + (targets + dune.generated.new + offline.ml + decode_tests.ml + aarch64_vector_transfer_vector_table.ml + aarch64_vector_transfer_vector_permute_zip.ml + aarch64_vector_transfer_vector_permute_unzip.ml + aarch64_vector_transfer_vector_permute_transpose.ml + aarch64_vector_transfer_vector_insert.ml + aarch64_vector_transfer_vector_extract.ml + aarch64_vector_transfer_vector_cpy_dup_sisd.ml + aarch64_vector_transfer_vector_cpy_dup_simd.ml + aarch64_vector_transfer_integer_move_unsigned.ml + aarch64_vector_transfer_integer_move_signed.ml + aarch64_vector_transfer_integer_insert.ml + aarch64_vector_transfer_integer_dup.ml + aarch64_vector_shift_right_sisd.ml + aarch64_vector_shift_right_simd.ml + aarch64_vector_shift_right_narrow_uniform_sisd.ml + aarch64_vector_shift_right_narrow_uniform_simd.ml + aarch64_vector_shift_right_narrow_nonuniform_sisd.ml + aarch64_vector_shift_right_narrow_nonuniform_simd.ml + aarch64_vector_shift_right_narrow_logical.ml + aarch64_vector_shift_right_insert_sisd.ml + aarch64_vector_shift_right_insert_simd.ml + aarch64_vector_shift_left_sisd.ml + aarch64_vector_shift_left_simd.ml + aarch64_vector_shift_left_sat_sisd.ml + aarch64_vector_shift_left_sat_simd.ml + aarch64_vector_shift_left_long.ml + aarch64_vector_shift_left_insert_sisd.ml + aarch64_vector_shift_left_insert_simd.ml + aarch64_vector_shift_conv_int_sisd.ml + aarch64_vector_shift_conv_int_simd.ml + aarch64_vector_shift_conv_float_sisd.ml + aarch64_vector_shift_conv_float_simd.ml + aarch64_vector_reduce_int_max.ml + aarch64_vector_reduce_fp_maxnm_sisd.ml + aarch64_vector_reduce_fp_maxnm_simd.ml + aarch64_vector_reduce_fp_max_sisd.ml + aarch64_vector_reduce_fp_max_simd.ml + aarch64_vector_reduce_fp_add_sisd.ml + aarch64_vector_reduce_fp16_maxnm_sisd.ml + aarch64_vector_reduce_fp16_maxnm_simd.ml + aarch64_vector_reduce_fp16_max_sisd.ml + aarch64_vector_reduce_fp16_max_simd.ml + aarch64_vector_reduce_fp16_add_sisd.ml + aarch64_vector_reduce_add_sisd.ml + aarch64_vector_reduce_add_simd.ml + aarch64_vector_reduce_add_long.ml + aarch64_vector_logical.ml + aarch64_vector_fp16_movi.ml + aarch64_vector_cvt_bf16_vector.ml + aarch64_vector_cvt_bf16_scalar.ml + aarch64_vector_crypto_sm4_sm4enckey.ml + aarch64_vector_crypto_sm4_sm4enc.ml + aarch64_vector_crypto_sm3_sm3tt2b.ml + aarch64_vector_crypto_sm3_sm3tt2a.ml + aarch64_vector_crypto_sm3_sm3tt1b.ml + aarch64_vector_crypto_sm3_sm3tt1a.ml + aarch64_vector_crypto_sm3_sm3ss1.ml + aarch64_vector_crypto_sm3_sm3partw2.ml + aarch64_vector_crypto_sm3_sm3partw1.ml + aarch64_vector_crypto_sha512_sha512su1.ml + aarch64_vector_crypto_sha512_sha512su0.ml + aarch64_vector_crypto_sha512_sha512h2.ml + aarch64_vector_crypto_sha512_sha512h.ml + aarch64_vector_crypto_sha3op_sha256_sched1.ml + aarch64_vector_crypto_sha3op_sha256_hash.ml + aarch64_vector_crypto_sha3op_sha1_sched0.ml + aarch64_vector_crypto_sha3op_sha1_hash_parity.ml + aarch64_vector_crypto_sha3op_sha1_hash_majority.ml + aarch64_vector_crypto_sha3op_sha1_hash_choose.ml + aarch64_vector_crypto_sha3_xar.ml + aarch64_vector_crypto_sha3_rax1.ml + aarch64_vector_crypto_sha3_eor3.ml + aarch64_vector_crypto_sha3_bcax.ml + aarch64_vector_crypto_sha2op_sha256_sched0.ml + aarch64_vector_crypto_sha2op_sha1_sched1.ml + aarch64_vector_crypto_sha2op_sha1_hash.ml + aarch64_vector_crypto_aes_round.ml + aarch64_vector_crypto_aes_mix.ml + aarch64_vector_bfmmla.ml + aarch64_vector_arithmetic_unary_special_sqrt_fp16.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_int.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd.ml + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd.ml + aarch64_vector_arithmetic_unary_special_sqrt.ml + aarch64_vector_arithmetic_unary_special_recip_int.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_fp16_simd.ml + aarch64_vector_arithmetic_unary_special_recip_float_sisd.ml + aarch64_vector_arithmetic_unary_special_recip_float_simd.ml + aarch64_vector_arithmetic_unary_special_frecpx_fp16.ml + aarch64_vector_arithmetic_unary_special_frecpx.ml + aarch64_vector_arithmetic_unary_shift.ml + aarch64_vector_arithmetic_unary_rev.ml + aarch64_vector_arithmetic_unary_rbit.ml + aarch64_vector_arithmetic_unary_not.ml + aarch64_vector_arithmetic_unary_fp16_round.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_int_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_float_xtn_sisd.ml + aarch64_vector_arithmetic_unary_float_xtn_simd.ml + aarch64_vector_arithmetic_unary_float_widen.ml + aarch64_vector_arithmetic_unary_float_round_frint_32_64.ml + aarch64_vector_arithmetic_unary_float_round.ml + aarch64_vector_arithmetic_unary_float_narrow.ml + aarch64_vector_arithmetic_unary_float_conv_int_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_int_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd.ml + aarch64_vector_arithmetic_unary_extract_sqxtun_simd.ml + aarch64_vector_arithmetic_unary_extract_sat_sisd.ml + aarch64_vector_arithmetic_unary_extract_sat_simd.ml + aarch64_vector_arithmetic_unary_extract_nosat.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_sat_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_sisd.ml + aarch64_vector_arithmetic_unary_diff_neg_int_simd.ml + aarch64_vector_arithmetic_unary_diff_neg_fp16.ml + aarch64_vector_arithmetic_unary_diff_neg_float.ml + aarch64_vector_arithmetic_unary_cnt.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd.ml + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd.ml + aarch64_vector_arithmetic_unary_clsz.ml + aarch64_vector_arithmetic_unary_add_saturating_sisd.ml + aarch64_vector_arithmetic_unary_add_saturating_simd.ml + aarch64_vector_arithmetic_unary_add_pairwise.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_int.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_shift_sisd.ml + aarch64_vector_arithmetic_binary_uniform_shift_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_simd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot.ml + aarch64_vector_arithmetic_binary_uniform_mul_int_accum.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd.ml + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd.ml + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_uniform_max_min_single.ml + aarch64_vector_arithmetic_binary_uniform_max_min_pair.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008.ml + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot.ml + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla.ml + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor.ml + aarch64_vector_arithmetic_binary_uniform_logical_and_orr.ml + aarch64_vector_arithmetic_binary_uniform_div_fp16.ml + aarch64_vector_arithmetic_binary_uniform_div.ml + aarch64_vector_arithmetic_binary_uniform_diff.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd.ml + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd.ml + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating.ml + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding.ml + aarch64_vector_arithmetic_binary_uniform_add_fp_complex.ml + aarch64_vector_arithmetic_binary_uniform_add_fp16.ml + aarch64_vector_arithmetic_binary_uniform_add_fp.ml + aarch64_vector_arithmetic_binary_element_mul_long.ml + aarch64_vector_arithmetic_binary_element_mul_int.ml + aarch64_vector_arithmetic_binary_element_mul_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper.ml + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower.ml + aarch64_vector_arithmetic_binary_element_mul_acc_long.ml + aarch64_vector_arithmetic_binary_element_mul_acc_int.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd.ml + aarch64_vector_arithmetic_binary_element_mul_acc_complex.ml + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long.ml + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp.ml + aarch64_vector_arithmetic_binary_element_dotp.ml + aarch64_vector_arithmetic_binary_element_bfdot.ml + aarch64_vector_arithmetic_binary_disparate_mul_product.ml + aarch64_vector_arithmetic_binary_disparate_mul_poly.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_double_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd.ml + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd.ml + aarch64_vector_arithmetic_binary_disparate_mul_accum.ml + aarch64_vector_arithmetic_binary_disparate_diff.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_wide.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow.ml + aarch64_vector_arithmetic_binary_disparate_add_sub_long.ml + aarch64_udf.ml + aarch64_system_sysops.ml + aarch64_system_register_cpsr.ml + aarch64_system_monitors.ml + aarch64_system_exceptions_runtime_hvc.ml + aarch64_system_exceptions_debug_halt.ml + aarch64_system_exceptions_debug_breakpoint.ml + aarch64_system_barriers_isb.ml + aarch64_system_barriers_dsb.ml + aarch64_system_barriers_dmb.ml + aarch64_memory_vector_single_post_inc.ml + aarch64_memory_vector_single_no_wb.ml + aarch64_memory_vector_multiple_post_inc.ml + aarch64_memory_vector_multiple_no_wb.ml + aarch64_memory_single_simdfp_register.ml + aarch64_memory_single_simdfp_immediate_unsigned.ml + aarch64_memory_single_simdfp_immediate_signed_pre_idx.ml + aarch64_memory_single_simdfp_immediate_signed_post_idx.ml + aarch64_memory_single_simdfp_immediate_signed_offset_normal.ml + aarch64_memory_single_general_register.ml + aarch64_memory_single_general_immediate_unsigned.ml + aarch64_memory_single_general_immediate_signed_pre_idx.ml + aarch64_memory_single_general_immediate_signed_post_idx.ml + aarch64_memory_single_general_immediate_signed_pac.ml + aarch64_memory_single_general_immediate_signed_offset_unpriv.ml + aarch64_memory_single_general_immediate_signed_offset_normal.ml + aarch64_memory_single_general_immediate_signed_offset_lda_stl.ml + aarch64_memory_pair_simdfp_pre_idx.ml + aarch64_memory_pair_simdfp_post_idx.ml + aarch64_memory_pair_simdfp_offset.ml + aarch64_memory_pair_simdfp_no_alloc.ml + aarch64_memory_pair_general_pre_idx.ml + aarch64_memory_pair_general_post_idx.ml + aarch64_memory_pair_general_offset.ml + aarch64_memory_pair_general_no_alloc.ml + aarch64_memory_ordered_rcpc.ml + aarch64_memory_ordered.ml + aarch64_memory_literal_simdfp.ml + aarch64_memory_literal_general.ml + aarch64_memory_exclusive_single.ml + aarch64_memory_exclusive_pair.ml + aarch64_memory_atomicops_swp.ml + aarch64_memory_atomicops_ld.ml + aarch64_memory_atomicops_cas_single.ml + aarch64_memory_atomicops_cas_pair.ml + aarch64_integer_tags_mcsubtag.ml + aarch64_integer_tags_mcsettagarray.ml + aarch64_integer_tags_mcsettagandzeroarray.ml + aarch64_integer_tags_mcinserttagmask.ml + aarch64_integer_tags_mcinsertrandomtag.ml + aarch64_integer_tags_mcgettagarray.ml + aarch64_integer_tags_mcgettag.ml + aarch64_integer_tags_mcaddtag.ml + aarch64_integer_shift_variable.ml + aarch64_integer_pac_strip_hint.ml + aarch64_integer_pac_pacib_hint.ml + aarch64_integer_pac_pacib_dp_1src.ml + aarch64_integer_pac_pacia_hint.ml + aarch64_integer_pac_pacia_dp_1src.ml + aarch64_integer_pac_pacdb_dp_1src.ml + aarch64_integer_pac_pacda_dp_1src.ml + aarch64_integer_pac_autib_hint.ml + aarch64_integer_pac_autib_dp_1src.ml + aarch64_integer_pac_autia_hint.ml + aarch64_integer_pac_autia_dp_1src.ml + aarch64_integer_pac_autdb_dp_1src.ml + aarch64_integer_pac_autda_dp_1src.ml + aarch64_integer_logical_shiftedreg.ml + aarch64_integer_logical_immediate.ml + aarch64_integer_ins_ext_insert_movewide.ml + aarch64_integer_ins_ext_extract_immediate.ml + aarch64_integer_flags_xaflag.ml + aarch64_integer_flags_setf.ml + aarch64_integer_flags_rmif.ml + aarch64_integer_flags_cfinv.ml + aarch64_integer_flags_axflag.ml + aarch64_integer_crc.ml + aarch64_integer_conditional_select.ml + aarch64_integer_conditional_compare_register.ml + aarch64_integer_conditional_compare_immediate.ml + aarch64_integer_bitfield.ml + aarch64_integer_arithmetic_rev.ml + aarch64_integer_arithmetic_rbit.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags.ml + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress.ml + aarch64_integer_arithmetic_mul_widening_64_128hi.ml + aarch64_integer_arithmetic_mul_widening_32_64.ml + aarch64_integer_arithmetic_mul_uniform_add_sub.ml + aarch64_integer_arithmetic_div.ml + aarch64_integer_arithmetic_cnt.ml + aarch64_integer_arithmetic_address_pc_rel.ml + aarch64_integer_arithmetic_add_sub_shiftedreg.ml + aarch64_integer_arithmetic_add_sub_immediate.ml + aarch64_integer_arithmetic_add_sub_extendedreg.ml + aarch64_integer_arithmetic_add_sub_carry.ml + aarch64_float_move_fp_select.ml + aarch64_float_move_fp_imm.ml + aarch64_float_convert_int.ml + aarch64_float_convert_fp.ml + aarch64_float_convert_fix.ml + aarch64_float_compare_uncond.ml + aarch64_float_compare_cond.ml + aarch64_float_arithmetic_unary.ml + aarch64_float_arithmetic_round_frint_32_64.ml + aarch64_float_arithmetic_round_frint.ml + aarch64_float_arithmetic_mul_product.ml + aarch64_float_arithmetic_mul_add_sub.ml + aarch64_float_arithmetic_max_min.ml + aarch64_float_arithmetic_div.ml + aarch64_float_arithmetic_add_sub.ml + aarch64_branch_unconditional_register.ml + aarch64_branch_unconditional_immediate.ml + aarch64_branch_unconditional_eret.ml + aarch64_branch_unconditional_dret.ml + aarch64_branch_conditional_test.ml + aarch64_branch_conditional_cond.ml + aarch64_branch_conditional_compare.ml + Offline_utils.ml + + ) + (deps gen-command) + (action (with-stdin-from gen-command (run asli))) +) + + + (library + (name offlineASL) + (public_name aslp_offline.aarch64) + (flags + (:standard -w -27 -w -33 -cclib -lstdc++)) + (modules + offline + decode_tests + aarch64_vector_transfer_vector_table + aarch64_vector_transfer_vector_permute_zip + aarch64_vector_transfer_vector_permute_unzip + aarch64_vector_transfer_vector_permute_transpose + aarch64_vector_transfer_vector_insert + aarch64_vector_transfer_vector_extract + aarch64_vector_transfer_vector_cpy_dup_sisd + aarch64_vector_transfer_vector_cpy_dup_simd + aarch64_vector_transfer_integer_move_unsigned + aarch64_vector_transfer_integer_move_signed + aarch64_vector_transfer_integer_insert + aarch64_vector_transfer_integer_dup + aarch64_vector_shift_right_sisd + aarch64_vector_shift_right_simd + aarch64_vector_shift_right_narrow_uniform_sisd + aarch64_vector_shift_right_narrow_uniform_simd + aarch64_vector_shift_right_narrow_nonuniform_sisd + aarch64_vector_shift_right_narrow_nonuniform_simd + aarch64_vector_shift_right_narrow_logical + aarch64_vector_shift_right_insert_sisd + aarch64_vector_shift_right_insert_simd + aarch64_vector_shift_left_sisd + aarch64_vector_shift_left_simd + aarch64_vector_shift_left_sat_sisd + aarch64_vector_shift_left_sat_simd + aarch64_vector_shift_left_long + aarch64_vector_shift_left_insert_sisd + aarch64_vector_shift_left_insert_simd + aarch64_vector_shift_conv_int_sisd + aarch64_vector_shift_conv_int_simd + aarch64_vector_shift_conv_float_sisd + aarch64_vector_shift_conv_float_simd + aarch64_vector_reduce_int_max + aarch64_vector_reduce_fp_maxnm_sisd + aarch64_vector_reduce_fp_maxnm_simd + aarch64_vector_reduce_fp_max_sisd + aarch64_vector_reduce_fp_max_simd + aarch64_vector_reduce_fp_add_sisd + aarch64_vector_reduce_fp16_maxnm_sisd + aarch64_vector_reduce_fp16_maxnm_simd + aarch64_vector_reduce_fp16_max_sisd + aarch64_vector_reduce_fp16_max_simd + aarch64_vector_reduce_fp16_add_sisd + aarch64_vector_reduce_add_sisd + aarch64_vector_reduce_add_simd + aarch64_vector_reduce_add_long + aarch64_vector_logical + aarch64_vector_fp16_movi + aarch64_vector_cvt_bf16_vector + aarch64_vector_cvt_bf16_scalar + aarch64_vector_crypto_sm4_sm4enckey + aarch64_vector_crypto_sm4_sm4enc + aarch64_vector_crypto_sm3_sm3tt2b + aarch64_vector_crypto_sm3_sm3tt2a + aarch64_vector_crypto_sm3_sm3tt1b + aarch64_vector_crypto_sm3_sm3tt1a + aarch64_vector_crypto_sm3_sm3ss1 + aarch64_vector_crypto_sm3_sm3partw2 + aarch64_vector_crypto_sm3_sm3partw1 + aarch64_vector_crypto_sha512_sha512su1 + aarch64_vector_crypto_sha512_sha512su0 + aarch64_vector_crypto_sha512_sha512h2 + aarch64_vector_crypto_sha512_sha512h + aarch64_vector_crypto_sha3op_sha256_sched1 + aarch64_vector_crypto_sha3op_sha256_hash + aarch64_vector_crypto_sha3op_sha1_sched0 + aarch64_vector_crypto_sha3op_sha1_hash_parity + aarch64_vector_crypto_sha3op_sha1_hash_majority + aarch64_vector_crypto_sha3op_sha1_hash_choose + aarch64_vector_crypto_sha3_xar + aarch64_vector_crypto_sha3_rax1 + aarch64_vector_crypto_sha3_eor3 + aarch64_vector_crypto_sha3_bcax + aarch64_vector_crypto_sha2op_sha256_sched0 + aarch64_vector_crypto_sha2op_sha1_sched1 + aarch64_vector_crypto_sha2op_sha1_hash + aarch64_vector_crypto_aes_round + aarch64_vector_crypto_aes_mix + aarch64_vector_bfmmla + aarch64_vector_arithmetic_unary_special_sqrt_fp16 + aarch64_vector_arithmetic_unary_special_sqrt_est_int + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_fp16_simd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_sisd + aarch64_vector_arithmetic_unary_special_sqrt_est_float_simd + aarch64_vector_arithmetic_unary_special_sqrt + aarch64_vector_arithmetic_unary_special_recip_int + aarch64_vector_arithmetic_unary_special_recip_fp16_sisd + aarch64_vector_arithmetic_unary_special_recip_fp16_simd + aarch64_vector_arithmetic_unary_special_recip_float_sisd + aarch64_vector_arithmetic_unary_special_recip_float_simd + aarch64_vector_arithmetic_unary_special_frecpx_fp16 + aarch64_vector_arithmetic_unary_special_frecpx + aarch64_vector_arithmetic_unary_shift + aarch64_vector_arithmetic_unary_rev + aarch64_vector_arithmetic_unary_rbit + aarch64_vector_arithmetic_unary_not + aarch64_vector_arithmetic_unary_fp16_round + aarch64_vector_arithmetic_unary_fp16_conv_int_sisd + aarch64_vector_arithmetic_unary_fp16_conv_int_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_fp16_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_float_xtn_sisd + aarch64_vector_arithmetic_unary_float_xtn_simd + aarch64_vector_arithmetic_unary_float_widen + aarch64_vector_arithmetic_unary_float_round_frint_32_64 + aarch64_vector_arithmetic_unary_float_round + aarch64_vector_arithmetic_unary_float_narrow + aarch64_vector_arithmetic_unary_float_conv_int_sisd + aarch64_vector_arithmetic_unary_float_conv_int_simd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_sisd + aarch64_vector_arithmetic_unary_float_conv_float_tieaway_simd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_sisd + aarch64_vector_arithmetic_unary_float_conv_float_bulk_simd + aarch64_vector_arithmetic_unary_extract_sqxtun_sisd + aarch64_vector_arithmetic_unary_extract_sqxtun_simd + aarch64_vector_arithmetic_unary_extract_sat_sisd + aarch64_vector_arithmetic_unary_extract_sat_simd + aarch64_vector_arithmetic_unary_extract_nosat + aarch64_vector_arithmetic_unary_diff_neg_sat_sisd + aarch64_vector_arithmetic_unary_diff_neg_sat_simd + aarch64_vector_arithmetic_unary_diff_neg_int_sisd + aarch64_vector_arithmetic_unary_diff_neg_int_simd + aarch64_vector_arithmetic_unary_diff_neg_fp16 + aarch64_vector_arithmetic_unary_diff_neg_float + aarch64_vector_arithmetic_unary_cnt + aarch64_vector_arithmetic_unary_cmp_int_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_int_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_int_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_int_bulk_simd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_fp16_bulk_simd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_sisd + aarch64_vector_arithmetic_unary_cmp_float_lessthan_simd + aarch64_vector_arithmetic_unary_cmp_float_bulk_sisd + aarch64_vector_arithmetic_unary_cmp_float_bulk_simd + aarch64_vector_arithmetic_unary_clsz + aarch64_vector_arithmetic_unary_add_saturating_sisd + aarch64_vector_arithmetic_unary_add_saturating_simd + aarch64_vector_arithmetic_unary_add_pairwise + aarch64_vector_arithmetic_binary_uniform_sub_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_sub_saturating_simd + aarch64_vector_arithmetic_binary_uniform_sub_int + aarch64_vector_arithmetic_binary_uniform_sub_fp_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp_simd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_sub_fp16_simd + aarch64_vector_arithmetic_binary_uniform_shift_sisd + aarch64_vector_arithmetic_binary_uniform_shift_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_simd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_rsqrts_fp16_simd + aarch64_vector_arithmetic_binary_uniform_recps_sisd + aarch64_vector_arithmetic_binary_uniform_recps_simd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_recps_fp16_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_product + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_sisd + aarch64_vector_arithmetic_binary_uniform_mul_int_doubling_accum_simd + aarch64_vector_arithmetic_binary_uniform_mul_int_dotp + aarch64_vector_arithmetic_binary_uniform_mul_int_bfdot + aarch64_vector_arithmetic_binary_uniform_mul_int_accum + aarch64_vector_arithmetic_binary_uniform_mul_fp_product + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_upper + aarch64_vector_arithmetic_binary_uniform_mul_fp_mul_norounding_lower + aarch64_vector_arithmetic_binary_uniform_mul_fp_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_fp_complex + aarch64_vector_arithmetic_binary_uniform_mul_fp16_product + aarch64_vector_arithmetic_binary_uniform_mul_fp16_fused + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_sisd + aarch64_vector_arithmetic_binary_uniform_mul_fp16_extended_simd + aarch64_vector_arithmetic_binary_uniform_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_uniform_max_min_single + aarch64_vector_arithmetic_binary_uniform_max_min_pair + aarch64_vector_arithmetic_binary_uniform_max_min_fp_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp_1985 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_2008 + aarch64_vector_arithmetic_binary_uniform_max_min_fp16_1985 + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_usdot + aarch64_vector_arithmetic_binary_uniform_mat_mul_int_mla + aarch64_vector_arithmetic_binary_uniform_logical_bsl_eor + aarch64_vector_arithmetic_binary_uniform_logical_and_orr + aarch64_vector_arithmetic_binary_uniform_div_fp16 + aarch64_vector_arithmetic_binary_uniform_div + aarch64_vector_arithmetic_binary_uniform_diff + aarch64_vector_arithmetic_binary_uniform_cmp_int_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_int_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp_simd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_fp16_simd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_sisd + aarch64_vector_arithmetic_binary_uniform_cmp_bitwise_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_sisd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_single_simd + aarch64_vector_arithmetic_binary_uniform_add_wrapping_pair + aarch64_vector_arithmetic_binary_uniform_add_saturating_sisd + aarch64_vector_arithmetic_binary_uniform_add_saturating_simd + aarch64_vector_arithmetic_binary_uniform_add_halving_truncating + aarch64_vector_arithmetic_binary_uniform_add_halving_rounding + aarch64_vector_arithmetic_binary_uniform_add_fp_complex + aarch64_vector_arithmetic_binary_uniform_add_fp16 + aarch64_vector_arithmetic_binary_uniform_add_fp + aarch64_vector_arithmetic_binary_element_mul_long + aarch64_vector_arithmetic_binary_element_mul_int + aarch64_vector_arithmetic_binary_element_mul_high_sisd + aarch64_vector_arithmetic_binary_element_mul_high_simd + aarch64_vector_arithmetic_binary_element_mul_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_fp_simd + aarch64_vector_arithmetic_binary_element_mul_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_double_sisd + aarch64_vector_arithmetic_binary_element_mul_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_upper + aarch64_vector_arithmetic_binary_element_mul_acc_mul_norounding_i_lower + aarch64_vector_arithmetic_binary_element_mul_acc_long + aarch64_vector_arithmetic_binary_element_mul_acc_int + aarch64_vector_arithmetic_binary_element_mul_acc_high_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_high_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp_simd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_fp16_simd + aarch64_vector_arithmetic_binary_element_mul_acc_double_sisd + aarch64_vector_arithmetic_binary_element_mul_acc_double_simd + aarch64_vector_arithmetic_binary_element_mul_acc_complex + aarch64_vector_arithmetic_binary_element_mul_acc_bf16_long + aarch64_vector_arithmetic_binary_element_mat_mul_int_dotp + aarch64_vector_arithmetic_binary_element_dotp + aarch64_vector_arithmetic_binary_element_bfdot + aarch64_vector_arithmetic_binary_disparate_mul_product + aarch64_vector_arithmetic_binary_disparate_mul_poly + aarch64_vector_arithmetic_binary_disparate_mul_double_sisd + aarch64_vector_arithmetic_binary_disparate_mul_double_simd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_sisd + aarch64_vector_arithmetic_binary_disparate_mul_dmacc_simd + aarch64_vector_arithmetic_binary_disparate_mul_accum + aarch64_vector_arithmetic_binary_disparate_diff + aarch64_vector_arithmetic_binary_disparate_add_sub_wide + aarch64_vector_arithmetic_binary_disparate_add_sub_narrow + aarch64_vector_arithmetic_binary_disparate_add_sub_long + aarch64_udf + aarch64_system_sysops + aarch64_system_register_cpsr + aarch64_system_monitors + aarch64_system_exceptions_runtime_hvc + aarch64_system_exceptions_debug_halt + aarch64_system_exceptions_debug_breakpoint + aarch64_system_barriers_isb + aarch64_system_barriers_dsb + aarch64_system_barriers_dmb + aarch64_memory_vector_single_post_inc + aarch64_memory_vector_single_no_wb + aarch64_memory_vector_multiple_post_inc + aarch64_memory_vector_multiple_no_wb + aarch64_memory_single_simdfp_register + aarch64_memory_single_simdfp_immediate_unsigned + aarch64_memory_single_simdfp_immediate_signed_pre_idx + aarch64_memory_single_simdfp_immediate_signed_post_idx + aarch64_memory_single_simdfp_immediate_signed_offset_normal + aarch64_memory_single_general_register + aarch64_memory_single_general_immediate_unsigned + aarch64_memory_single_general_immediate_signed_pre_idx + aarch64_memory_single_general_immediate_signed_post_idx + aarch64_memory_single_general_immediate_signed_pac + aarch64_memory_single_general_immediate_signed_offset_unpriv + aarch64_memory_single_general_immediate_signed_offset_normal + aarch64_memory_single_general_immediate_signed_offset_lda_stl + aarch64_memory_pair_simdfp_pre_idx + aarch64_memory_pair_simdfp_post_idx + aarch64_memory_pair_simdfp_offset + aarch64_memory_pair_simdfp_no_alloc + aarch64_memory_pair_general_pre_idx + aarch64_memory_pair_general_post_idx + aarch64_memory_pair_general_offset + aarch64_memory_pair_general_no_alloc + aarch64_memory_ordered_rcpc + aarch64_memory_ordered + aarch64_memory_literal_simdfp + aarch64_memory_literal_general + aarch64_memory_exclusive_single + aarch64_memory_exclusive_pair + aarch64_memory_atomicops_swp + aarch64_memory_atomicops_ld + aarch64_memory_atomicops_cas_single + aarch64_memory_atomicops_cas_pair + aarch64_integer_tags_mcsubtag + aarch64_integer_tags_mcsettagarray + aarch64_integer_tags_mcsettagandzeroarray + aarch64_integer_tags_mcinserttagmask + aarch64_integer_tags_mcinsertrandomtag + aarch64_integer_tags_mcgettagarray + aarch64_integer_tags_mcgettag + aarch64_integer_tags_mcaddtag + aarch64_integer_shift_variable + aarch64_integer_pac_strip_hint + aarch64_integer_pac_pacib_hint + aarch64_integer_pac_pacib_dp_1src + aarch64_integer_pac_pacia_hint + aarch64_integer_pac_pacia_dp_1src + aarch64_integer_pac_pacdb_dp_1src + aarch64_integer_pac_pacda_dp_1src + aarch64_integer_pac_autib_hint + aarch64_integer_pac_autib_dp_1src + aarch64_integer_pac_autia_hint + aarch64_integer_pac_autia_dp_1src + aarch64_integer_pac_autdb_dp_1src + aarch64_integer_pac_autda_dp_1src + aarch64_integer_logical_shiftedreg + aarch64_integer_logical_immediate + aarch64_integer_ins_ext_insert_movewide + aarch64_integer_ins_ext_extract_immediate + aarch64_integer_flags_xaflag + aarch64_integer_flags_setf + aarch64_integer_flags_rmif + aarch64_integer_flags_cfinv + aarch64_integer_flags_axflag + aarch64_integer_crc + aarch64_integer_conditional_select + aarch64_integer_conditional_compare_register + aarch64_integer_conditional_compare_immediate + aarch64_integer_bitfield + aarch64_integer_arithmetic_rev + aarch64_integer_arithmetic_rbit + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddresssetflags + aarch64_integer_arithmetic_pointer_mcsubtracttaggedaddress + aarch64_integer_arithmetic_mul_widening_64_128hi + aarch64_integer_arithmetic_mul_widening_32_64 + aarch64_integer_arithmetic_mul_uniform_add_sub + aarch64_integer_arithmetic_div + aarch64_integer_arithmetic_cnt + aarch64_integer_arithmetic_address_pc_rel + aarch64_integer_arithmetic_add_sub_shiftedreg + aarch64_integer_arithmetic_add_sub_immediate + aarch64_integer_arithmetic_add_sub_extendedreg + aarch64_integer_arithmetic_add_sub_carry + aarch64_float_move_fp_select + aarch64_float_move_fp_imm + aarch64_float_convert_int + aarch64_float_convert_fp + aarch64_float_convert_fix + aarch64_float_compare_uncond + aarch64_float_compare_cond + aarch64_float_arithmetic_unary + aarch64_float_arithmetic_round_frint_32_64 + aarch64_float_arithmetic_round_frint + aarch64_float_arithmetic_mul_product + aarch64_float_arithmetic_mul_add_sub + aarch64_float_arithmetic_max_min + aarch64_float_arithmetic_div + aarch64_float_arithmetic_add_sub + aarch64_branch_unconditional_register + aarch64_branch_unconditional_immediate + aarch64_branch_unconditional_eret + aarch64_branch_unconditional_dret + aarch64_branch_conditional_test + aarch64_branch_conditional_cond + aarch64_branch_conditional_compare + Offline_utils + ) + (libraries asli.libASL-stage0)) +(alias (name default) (deps (package aslp_offline) ../aslp_offline.install)) \ No newline at end of file From ac14c63245a12c63e8e4efef4d635a97d11402d6 Mon Sep 17 00:00:00 2001 From: rina Date: Mon, 3 Feb 2025 18:12:57 +1000 Subject: [PATCH 16/17] tests: add package restrictions --- tests/aslt/dune | 2 ++ tests/dune | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/aslt/dune b/tests/aslt/dune index d7064bc8..6d39c012 100644 --- a/tests/aslt/dune +++ b/tests/aslt/dune @@ -15,8 +15,10 @@ (cram (applies_to *) + (package asli) (deps (package asli) (glob_files *.txt))) (cram (applies_to * \ test_dis) + (package asli) (deps ./antlr.jar ./Semantics.g4)) diff --git a/tests/dune b/tests/dune index 9ebb56a6..20e6557e 100644 --- a/tests/dune +++ b/tests/dune @@ -2,11 +2,13 @@ (modes exe) (flags (-cclib -lstdc++)) (modules test_asl) - (libraries alcotest asli.libASL)) + (libraries alcotest asli.libASL) + (package asli)) (test (name bdd_ops) (modes exe) (flags (-cclib -lstdc++)) -(modules bdd_ops) - (libraries alcotest asli.libASL)) + (modules bdd_ops) + (libraries alcotest asli.libASL) + (package asli)) From ab49d446f9e381a598f9f8ed190f5beefcb6fb46 Mon Sep 17 00:00:00 2001 From: Alistair Michael Date: Tue, 4 Feb 2025 12:16:19 +1000 Subject: [PATCH 17/17] reword readme --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index adda570e..d89aa97f 100644 --- a/README.md +++ b/README.md @@ -151,8 +151,12 @@ Once complete, you can verify the package is installed by running `ocamlfind que #### ASLp Offline OCaml lifter -To build the offline lifter, which depends on the main ASLp package, first install the ASLp -package as above. +If you want to simultaneously build ASLp and use this version to generate the lifter, +use `dune build @offline`. +Be aware that this might re-use a cached offline lifter, even if ASLp code has changed. +To clean the cached lifters, use `rm -v ./_build/default/*/marshalled-offline-lifter-*`. + +To build the offline lifter using previously compiled asli (e.g. as installed through `opam pin` as above), Then, use: ```bash dune build -p aslp_offline @@ -163,12 +167,6 @@ Basically, `-p` acts as if all packages other than the one listed do not exist in this dune project, forcing it to look elsewhere. This can be useful when building and installing packages individually. -If you want to simultaneously build ASLp and use this version to generate the lifter, -use `dune build @offline`. -Be aware that this might re-use a cached offline lifter, even if ASLp code has changed. -To clean the cached lifters, use `rm -v ./marshalled-offline-lifter-*`. - - ### Using ASL lexer This displays a list of tokens in an ASL file including the indent