[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/15] Hexagon (target/hexagon) Make generators object oriented -
|
From: |
Brian Cain |
|
Subject: |
[PULL 07/15] Hexagon (target/hexagon) Make generators object oriented - gen_idef_parser_funcs |
|
Date: |
Sun, 21 Jan 2024 22:34:53 -0800 |
From: Taylor Simpson <ltaylorsimpson@gmail.com>
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-6-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>
---
target/hexagon/gen_idef_parser_funcs.py | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/target/hexagon/gen_idef_parser_funcs.py
b/target/hexagon/gen_idef_parser_funcs.py
index f4518e653f..550a48cb7b 100644
--- a/target/hexagon/gen_idef_parser_funcs.py
+++ b/target/hexagon/gen_idef_parser_funcs.py
@@ -46,6 +46,7 @@ def main():
hex_common.read_semantics_file(sys.argv[1])
hex_common.read_attribs_file(sys.argv[2])
hex_common.calculate_attribs()
+ hex_common.init_registers()
tagregs = hex_common.get_tagregs()
tagimms = hex_common.get_tagimms()
@@ -132,22 +133,9 @@ def main():
arguments = []
for regtype, regid in regs:
- prefix = "in " if hex_common.is_read(regid) else ""
-
- is_pair = hex_common.is_pair(regid)
- is_single_old = hex_common.is_single(regid) and
hex_common.is_old_val(
- regtype, regid, tag
- )
- is_single_new = hex_common.is_single(regid) and
hex_common.is_new_val(
- regtype, regid, tag
- )
-
- if is_pair or is_single_old:
- arguments.append(f"{prefix}{regtype}{regid}V")
- elif is_single_new:
- arguments.append(f"{prefix}{regtype}{regid}N")
- else:
- hex_common.bad_register(regtype, regid)
+ reg = hex_common.get_register(tag, regtype, regid)
+ prefix = "in " if reg.is_read() else ""
+ arguments.append(f"{prefix}{reg.reg_tcg()}")
for immlett, bits, immshift in imms:
arguments.append(hex_common.imm_name(immlett))
--
2.25.1
- [PULL 00/15] target-hexagon queue, hexagon docker, Brian Cain, 2024/01/22
- [PULL 05/15] Hexagon (target/hexagon) Make generators object oriented - gen_helper_protos, Brian Cain, 2024/01/22
- [PULL 03/15] Hexagon (target/hexagon) Clean up handling of modifier registers, Brian Cain, 2024/01/22
- [PULL 07/15] Hexagon (target/hexagon) Make generators object oriented - gen_idef_parser_funcs,
Brian Cain <=
- [PULL 02/15] Hexagon (target/hexagon) Fix shadow variable when idef-parser is off, Brian Cain, 2024/01/22
- [PULL 08/15] Hexagon (target/hexagon) Make generators object oriented - gen_op_regs, Brian Cain, 2024/01/22
- [PULL 13/15] Hexagon (target/hexagon) Use QEMU decodetree (16-bit instructions), Brian Cain, 2024/01/22
- [PULL 09/15] Hexagon (target/hexagon) Make generators object oriented - gen_analyze_funcs, Brian Cain, 2024/01/22
- [PULL 15/15] target/hexagon: reduce scope of def_regnum, remove dead assignment, Brian Cain, 2024/01/22
- [PULL 01/15] tests/docker: Hexagon toolchain update, Brian Cain, 2024/01/22
- [PULL 10/15] Hexagon (target/hexagon) Remove unused WRITES_PRED_REG attribute, Brian Cain, 2024/01/22
- [PULL 14/15] Hexagon (target/hexagon) Remove old dectree.py, Brian Cain, 2024/01/22
- [PULL 12/15] Hexagon (target/hexagon) Use QEMU decodetree (32-bit instructions), Brian Cain, 2024/01/22
- [PULL 04/15] Hexagon (target/hexagon) Make generators object oriented - gen_tcg_funcs, Brian Cain, 2024/01/22