From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Taylor Simpson <ltaylorsimpson@gmail.com>, qemu-devel@nongnu.org
Cc: brian.cain@oss.qualcomm.com, quic_mathbern@quicinc.com,
sidneym@quicinc.com, quic_mliebel@quicinc.com,
richard.henderson@linaro.org, ale@rev.ng, anjo@rev.ng
Subject: Re: [PATCH] Hexagon (target/hexagon) Remove gen_tcg_func_table.py
Date: Wed, 16 Apr 2025 08:18:13 +0200 [thread overview]
Message-ID: <c7588131-2c4f-4a66-8107-cba4df904278@linaro.org> (raw)
In-Reply-To: <20250415235542.71703-1-ltaylorsimpson@gmail.com>
Hi Taylor,
On 16/4/25 01:55, Taylor Simpson wrote:
> This can easily be done in C with opcodes_def_generated.h.inc
>
> Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
> ---
> target/hexagon/genptr.c | 6 ++-
> target/hexagon/README | 1 -
> target/hexagon/gen_tcg_func_table.py | 66 ----------------------------
> target/hexagon/meson.build | 10 -----
> 4 files changed, 5 insertions(+), 78 deletions(-)
> delete mode 100755 target/hexagon/gen_tcg_func_table.py
>
> diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c
> index 2c5e15cfcf..330170ab44 100644
> --- a/target/hexagon/genptr.c
> +++ b/target/hexagon/genptr.c
> @@ -1453,4 +1453,8 @@ void gen_add_sat_i64(DisasContext *ctx, TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b)
> }
>
> #include "tcg_funcs_generated.c.inc"
> -#include "tcg_func_table_generated.c.inc"
> +const SemanticInsn opcode_genptr[XX_LAST_OPCODE] = {
> +#define OPCODE(X) [X] = generate_##X
> +#include "opcodes_def_generated.h.inc"
> +#undef OPCODE
> +};
> diff --git a/target/hexagon/README b/target/hexagon/README
> index ca617e3364..5af298e3ed 100644
> --- a/target/hexagon/README
> +++ b/target/hexagon/README
> @@ -47,7 +47,6 @@ header files in <BUILD_DIR>/target/hexagon
> 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
> diff --git a/target/hexagon/gen_tcg_func_table.py b/target/hexagon/gen_tcg_func_table.py
> deleted file mode 100755
> index 299a39b1aa..0000000000
> --- a/target/hexagon/gen_tcg_func_table.py
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -#!/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
What about all these skipped tags? IIUC gen_opcodes_def.py doesn't skip
them. If it isn't necessary to skip, please mention it in the commit
description for clarity.
Regards,
Phil.
> -
> - f.write(f" [{tag}] = generate_{tag},\n")
> - f.write("};\n\n")
> -
> - f.write("#endif /* HEXAGON_FUNC_TABLE_H */\n")
> -
> -
> -if __name__ == "__main__":
> - main()
> diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
> index bb4ebaae81..b28aeddb85 100644
> --- a/target/hexagon/meson.build
> +++ b/target/hexagon/meson.build
> @@ -41,20 +41,10 @@ hexagon_ss.add(semantics_generated)
> #
> # 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',
next prev parent reply other threads:[~2025-04-16 6:19 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-15 23:55 [PATCH] Hexagon (target/hexagon) Remove gen_tcg_func_table.py Taylor Simpson
2025-04-16 6:18 ` Philippe Mathieu-Daudé [this message]
2025-04-16 14:45 ` ltaylorsimpson
2025-04-16 14:58 ` ltaylorsimpson
2025-04-17 7:09 ` Philippe Mathieu-Daudé
2025-04-17 15:55 ` Brian Cain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c7588131-2c4f-4a66-8107-cba4df904278@linaro.org \
--to=philmd@linaro.org \
--cc=ale@rev.ng \
--cc=anjo@rev.ng \
--cc=brian.cain@oss.qualcomm.com \
--cc=ltaylorsimpson@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=quic_mathbern@quicinc.com \
--cc=quic_mliebel@quicinc.com \
--cc=richard.henderson@linaro.org \
--cc=sidneym@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).