diff options
| author | Taylor Simpson <ltaylorsimpson@gmail.com> | 2024-03-06 20:23:22 -0700 |
|---|---|---|
| committer | Brian Cain <bcain@quicinc.com> | 2024-05-05 16:22:07 -0700 |
| commit | 4614b8f36a319ca77c004b8c5002e68d9ae25061 (patch) | |
| tree | 0e03241dba99cbe2570fb56af5bbcf7314078ed1 /target/hexagon/gen_trans_funcs.py | |
| parent | 325a64af065d855a022696f5e4180f2813b439c8 (diff) | |
| download | focaccia-qemu-4614b8f36a319ca77c004b8c5002e68d9ae25061.tar.gz focaccia-qemu-4614b8f36a319ca77c004b8c5002e68d9ae25061.zip | |
Hexagon (target/hexagon) Mark has_pred_dest in trans functions
Check that the value matches opcode_wregs Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com> Reviewed-by: Brian Cain <bcain@quicinc.com> Message-Id: <20240307032327.4799-5-ltaylorsimpson@gmail.com> Signed-off-by: Brian Cain <bcain@quicinc.com>
Diffstat (limited to 'target/hexagon/gen_trans_funcs.py')
| -rwxr-xr-x | target/hexagon/gen_trans_funcs.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/target/hexagon/gen_trans_funcs.py b/target/hexagon/gen_trans_funcs.py index 1201172dda..9f86b4edbd 100755 --- a/target/hexagon/gen_trans_funcs.py +++ b/target/hexagon/gen_trans_funcs.py @@ -70,6 +70,7 @@ def mark_which_imm_extended(f, tag): ## insn->regno[2] = args->Rt; ## insn->new_read_idx = -1; ## insn->dest_idx = 0; +## insn->has_pred_dest = false; ## return true; ## } ## @@ -88,6 +89,7 @@ def gen_trans_funcs(f): new_read_idx = -1 dest_idx = -1 + has_pred_dest = "false" for regno, (reg_type, reg_id, *_) in enumerate(regs): reg = hex_common.get_register(tag, reg_type, reg_id) f.write(code_fmt(f"""\ @@ -98,6 +100,8 @@ def gen_trans_funcs(f): # dest_idx should be the first destination, so check for -1 if reg.is_written() and dest_idx == -1: dest_idx = regno + if reg_type == "P" and reg.is_written() and not reg.is_read(): + has_pred_dest = "true" if len(imms) != 0: mark_which_imm_extended(f, tag) @@ -121,6 +125,7 @@ def gen_trans_funcs(f): f.write(code_fmt(f"""\ insn->new_read_idx = {new_read_idx}; insn->dest_idx = {dest_idx}; + insn->has_pred_dest = {has_pred_dest}; """)) f.write(textwrap.dedent(f"""\ return true; |