gen_op_attribs.py -> op_attribs_generated.h.inc
gen_helper_protos.py -> helper_protos_generated.h.inc
gen_tcg_funcs.py -> tcg_funcs_generated.c.inc
- gen_tcg_func_table.py -> tcg_func_table_generated.c.inc
gen_helper_funcs.py -> helper_funcs_generated.c.inc
gen_idef_parser_funcs.py -> idef_parser_input.h
gen_analyze_funcs.py -> analyze_funcs_generated.c.inc
+++ /dev/null
-#!/usr/bin/env python3
-
-##
-## Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, see <http://www.gnu.org/licenses/>.
-##
-
-import sys
-import re
-import string
-import hex_common
-import argparse
-
-
-def main():
- parser = argparse.ArgumentParser(
- "Emit opaque macro calls with instruction semantics"
- )
- parser.add_argument("semantics", help="semantics file")
- parser.add_argument("out", help="output file")
- args = parser.parse_args()
- hex_common.read_semantics_file(args.semantics)
- hex_common.calculate_attribs()
- tagregs = hex_common.get_tagregs()
- tagimms = hex_common.get_tagimms()
-
- with open(args.out, "w") as f:
- f.write("#ifndef HEXAGON_FUNC_TABLE_H\n")
- f.write("#define HEXAGON_FUNC_TABLE_H\n\n")
-
- f.write("const SemanticInsn opcode_genptr[XX_LAST_OPCODE] = {\n")
- for tag in hex_common.tags:
- ## Skip the priv instructions
- if "A_PRIV" in hex_common.attribdict[tag]:
- continue
- ## Skip the guest instructions
- if "A_GUEST" in hex_common.attribdict[tag]:
- continue
- ## Skip the diag instructions
- if tag == "Y6_diag":
- continue
- if tag == "Y6_diag0":
- continue
- if tag == "Y6_diag1":
- continue
-
- f.write(f" [{tag}] = generate_{tag},\n")
- f.write("};\n\n")
-
- f.write("#endif /* HEXAGON_FUNC_TABLE_H */\n")
-
-
-if __name__ == "__main__":
- main()
#
# Step 2
# We use Python scripts to generate the following files
-# tcg_func_table_generated.c.inc
# printinsn_generated.h.inc
# op_attribs_generated.h.inc
# opcodes_def_generated.h.inc
#
-tcg_func_table_generated = custom_target(
- 'tcg_func_table_generated.c.inc',
- output: 'tcg_func_table_generated.c.inc',
- depends: [semantics_generated],
- depend_files: [hex_common_py],
- command: [python, files('gen_tcg_func_table.py'), semantics_generated, '@OUTPUT@'],
-)
-hexagon_ss.add(tcg_func_table_generated)
-
printinsn_generated = custom_target(
'printinsn_generated.h.inc',
output: 'printinsn_generated.h.inc',