|  | # Copyright lowRISC contributors. | 
|  | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | load("@rules_python//python:defs.bzl", "py_library") | 
|  |  | 
|  | package(default_visibility = ["//visibility:public"]) | 
|  |  | 
|  | py_library( | 
|  | name = "bit_ranges", | 
|  | srcs = ["bit_ranges.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "bool_literal", | 
|  | srcs = ["bool_literal.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "cache", | 
|  | srcs = ["cache.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "check", | 
|  | srcs = ["check.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "constants", | 
|  | srcs = ["constants.py"], | 
|  | deps = [ | 
|  | ":insn_yaml", | 
|  | ":operand", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "control_flow", | 
|  | srcs = ["control_flow.py"], | 
|  | deps = [ | 
|  | ":decode", | 
|  | ":insn_yaml", | 
|  | ":section", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "decode", | 
|  | srcs = ["decode.py"], | 
|  | deps = [ | 
|  | ":elf", | 
|  | ":insn_yaml", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "elf", | 
|  | srcs = ["elf.py"], | 
|  | deps = [ | 
|  | ":mem_layout", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "encoding", | 
|  | srcs = ["encoding.py"], | 
|  | deps = [ | 
|  | ":bool_literal", | 
|  | ":encoding_scheme", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "encoding_scheme", | 
|  | srcs = ["encoding_scheme.py"], | 
|  | deps = [ | 
|  | ":bit_ranges", | 
|  | ":bool_literal", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "information_flow", | 
|  | srcs = ["information_flow.py"], | 
|  | deps = [ | 
|  | ":operand", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "information_flow_analysis", | 
|  | srcs = ["information_flow_analysis.py"], | 
|  | deps = [ | 
|  | ":cache", | 
|  | ":constants", | 
|  | ":control_flow", | 
|  | ":decode", | 
|  | ":information_flow", | 
|  | ":insn_yaml", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "insn_yaml", | 
|  | srcs = ["insn_yaml.py"], | 
|  | deps = [ | 
|  | ":encoding", | 
|  | ":encoding_scheme", | 
|  | ":information_flow", | 
|  | ":lsu_desc", | 
|  | ":operand", | 
|  | ":syntax", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "instruction_count_range", | 
|  | srcs = ["instruction_count_range.py"], | 
|  | deps = [ | 
|  | ":control_flow", | 
|  | ":decode", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "lsu_desc", | 
|  | srcs = ["lsu_desc.py"], | 
|  | deps = [ | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "mem_layout", | 
|  | srcs = ["mem_layout.py"], | 
|  | deps = [ | 
|  | ":otbn_reggen", | 
|  | "//util/reggen:reg_block", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "operand", | 
|  | srcs = ["operand.py"], | 
|  | deps = [ | 
|  | ":encoding", | 
|  | ":encoding_scheme", | 
|  | "//util/serialize:parse_helpers", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "otbn_reggen", | 
|  | srcs = ["otbn_reggen.py"], | 
|  | data = ["//hw/ip/otbn/data:all_files"], | 
|  | deps = [ | 
|  | "//util/reggen:ip_block", | 
|  | "//util/reggen:reg_block", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "reg_dump", | 
|  | srcs = ["reg_dump.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "section", | 
|  | srcs = ["section.py"], | 
|  | deps = [ | 
|  | ":decode", | 
|  | ":insn_yaml", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "syntax", | 
|  | srcs = ["syntax.py"], | 
|  | deps = [ | 
|  | ":operand", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "toolchain", | 
|  | srcs = ["toolchain.py"], | 
|  | ) |