Hexagon (target/hexagon) Make generators object oriented - gen_idef_parser_funcs

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>
This commit is contained in:
Taylor Simpson 2023-12-10 15:07:08 -07:00 committed by Brian Cain
parent a3295f5436
commit 1f03e9a94e

View File

@ -46,6 +46,7 @@ def main():
hex_common.read_semantics_file(sys.argv[1]) hex_common.read_semantics_file(sys.argv[1])
hex_common.read_attribs_file(sys.argv[2]) hex_common.read_attribs_file(sys.argv[2])
hex_common.calculate_attribs() hex_common.calculate_attribs()
hex_common.init_registers()
tagregs = hex_common.get_tagregs() tagregs = hex_common.get_tagregs()
tagimms = hex_common.get_tagimms() tagimms = hex_common.get_tagimms()
@ -132,22 +133,9 @@ def main():
arguments = [] arguments = []
for regtype, regid in regs: for regtype, regid in regs:
prefix = "in " if hex_common.is_read(regid) else "" reg = hex_common.get_register(tag, regtype, regid)
prefix = "in " if reg.is_read() else ""
is_pair = hex_common.is_pair(regid) arguments.append(f"{prefix}{reg.reg_tcg()}")
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)
for immlett, bits, immshift in imms: for immlett, bits, immshift in imms:
arguments.append(hex_common.imm_name(immlett)) arguments.append(hex_common.imm_name(immlett))