summary refs log tree commit diff stats
path: root/target/hexagon/gen_idef_parser_funcs.py
diff options
context:
space:
mode:
authorAnton Johansson <anjo@rev.ng>2024-12-06 17:01:02 +0100
committerBrian Cain <brian.cain@oss.qualcomm.com>2024-12-12 21:43:52 -0600
commite295796726131ff9c07a53afe2642c53229e6ca3 (patch)
tree682d88709c99c0e14349abaa1d013e8da8819cba /target/hexagon/gen_idef_parser_funcs.py
parentf0db9f5759372d56d65cfb2d05b03285789468bf (diff)
downloadfocaccia-qemu-e295796726131ff9c07a53afe2642c53229e6ca3.tar.gz
focaccia-qemu-e295796726131ff9c07a53afe2642c53229e6ca3.zip
target/hexagon: Use argparse in all python scripts
QOL commit, all the various gen_* python scripts take a large set
arguments where order is implicit.  Using argparse we also get decent
error messages if a field is missing or too many are added.

Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
Diffstat (limited to 'target/hexagon/gen_idef_parser_funcs.py')
-rw-r--r--target/hexagon/gen_idef_parser_funcs.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/target/hexagon/gen_idef_parser_funcs.py b/target/hexagon/gen_idef_parser_funcs.py
index 72f11c68ca..2f6e826f76 100644
--- a/target/hexagon/gen_idef_parser_funcs.py
+++ b/target/hexagon/gen_idef_parser_funcs.py
@@ -20,6 +20,7 @@
 import sys
 import re
 import string
+import argparse
 from io import StringIO
 
 import hex_common
@@ -43,13 +44,19 @@ import hex_common
 ## them are inputs ("in" prefix), while some others are outputs.
 ##
 def main():
-    hex_common.read_semantics_file(sys.argv[1])
+    parser = argparse.ArgumentParser(
+        "Emit instruction implementations that can be fed to idef-parser"
+    )
+    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()
     hex_common.init_registers()
     tagregs = hex_common.get_tagregs()
     tagimms = hex_common.get_tagimms()
 
-    with open(sys.argv[-1], "w") as f:
+    with open(args.out, "w") as f:
         f.write('#include "macros.h.inc"\n\n')
 
         for tag in hex_common.tags: