Source code for m2isar.backends.etiss.pickle_writer

# SPDX-License-Identifier: Apache-2.0
#
# This file is part of the M2-ISA-R project: https://github.com/tum-ei-eda/M2-ISA-R
#
# Copyright (C) 2022
# Chair of Electrical Design Automation
# Technical University of Munich

"""Dump generated instruction and function code to a pickle file."""

import pickle

from . import BlockEndType, instruction_generator
from .writer import setup


[docs] def main(): models, logger, output_base_path, spec_name, _, args = setup() functions = {} instructions = {} for core_name, core in models.items(): logger.info("processing model %s", core_name) functions[core_name] = dict(instruction_generator.generate_functions(core, args.static_scalars)) instructions[core_name] = {(code, mask): (instr_name, ext_name, templ_str) for instr_name, (code, mask), ext_name, templ_str in instruction_generator.generate_instructions(core, args.static_scalars, BlockEndType[args.block_end_on.upper()])} output_path = output_base_path / spec_name output_path.mkdir(exist_ok=True, parents=True) with open(output_path / f'{spec_name}.pickle', 'wb') as f: pickle.dump(functions, f) pickle.dump(instructions, f)
if __name__ == "__main__": main()