On 4/14/2025 12:04 PM, ltaylorsimp...@gmail.com wrote:

-----Original Message-----
From: Brian Cain <brian.c...@oss.qualcomm.com>
Sent: Monday, April 7, 2025 1:27 PM
To: qemu-devel@nongnu.org
Cc: brian.c...@oss.qualcomm.com; richard.hender...@linaro.org;
phi...@linaro.org; matheus.bernard...@oss.qualcomm.com; a...@rev.ng;
a...@rev.ng; marco.lie...@oss.qualcomm.com; ltaylorsimp...@gmail.com;
alex.ben...@linaro.org; quic_mbur...@quicinc.com;
sidn...@quicinc.com
Subject: [PATCH v3 3/5] target/hexagon: Add missing A_CALL attr, hintjumpr
to multi_cof

Signed-off-by: Brian Cain <brian.c...@oss.qualcomm.com>
---
  target/hexagon/hex_common.py | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/target/hexagon/hex_common.py
b/target/hexagon/hex_common.py index 6803908718..a2dcb0aa2e 100755
--- a/target/hexagon/hex_common.py
+++ b/target/hexagon/hex_common.py
@@ -247,8 +247,11 @@ def need_next_PC(tag):


  def need_pkt_has_multi_cof(tag):
-    return "A_COF" in attribdict[tag]
-
+    return (
+        "A_JUMP" in attribdict[tag]
+        or "A_CALL" in attribdict[tag]
+        or "J2_rte" == tag
+    ) and tag != "J2_hintjumpr"
It would be better to make this decision with instruction attributes only 
rather than a mix of attributes and specific tags.  If needed, add another 
add_qemu_macro_attrib call to hex_common.calculate_attribs.

Having said that, the correct tag for hintjumpr is J*4*_hintjumpr.


Good catch, thanks for finding it.  And I suppose we can change it to `"A_HINTJR" not in attribdict[tag]` instead.


So, now more like this:

     add_qemu_macro_attrib('fREAD_SP', 'A_IMPLICIT_READS_SP')
+    add_qemu_macro_attrib('fCLEAR_RTE_EX', 'A_RTE')

     # Recurse down macros, find attributes from sub-macros
     macroValues = list(macros.values())
@@ -291,8 +292,8 @@ def need_pkt_has_multi_cof(tag):
     return (
         "A_JUMP" in attribdict[tag]
         or "A_CALL" in attribdict[tag]
-        or "J2_rte" == tag
-    ) and tag != "J2_hintjumpr"
+        or "A_RTE" in attribdict[tag]
+    ) and "A_HINTJR" not in attribdict[tag]



Taylor



Reply via email to