From: <ltaylorsimpson@gmail.com>
To: "'Brian Cain'" <brian.cain@oss.qualcomm.com>, <qemu-devel@nongnu.org>
Cc: <richard.henderson@linaro.org>, <philmd@linaro.org>,
<matheus.bernardino@oss.qualcomm.com>, <ale@rev.ng>,
<anjo@rev.ng>, <marco.liebel@oss.qualcomm.com>,
<alex.bennee@linaro.org>, <quic_mburton@quicinc.com>,
<sidneym@quicinc.com>
Subject: RE: [PATCH v3 3/5] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof
Date: Tue, 15 Apr 2025 17:31:10 -0600 [thread overview]
Message-ID: <06ee01dbae5e$7a761740$6f6245c0$@gmail.com> (raw)
In-Reply-To: <12956419-d35e-46cb-985a-5ea06d2d4154@oss.qualcomm.com>
> -----Original Message-----
> From: Brian Cain <brian.cain@oss.qualcomm.com>
> Sent: Tuesday, April 15, 2025 12:22 PM
> To: ltaylorsimpson@gmail.com; qemu-devel@nongnu.org
> Cc: richard.henderson@linaro.org; philmd@linaro.org;
> matheus.bernardino@oss.qualcomm.com; ale@rev.ng; anjo@rev.ng;
> marco.liebel@oss.qualcomm.com; alex.bennee@linaro.org;
> quic_mburton@quicinc.com; sidneym@quicinc.com
> Subject: Re: [PATCH v3 3/5] target/hexagon: Add missing A_CALL attr,
> hintjumpr to multi_cof
>
>
> On 4/14/2025 12:04 PM, ltaylorsimpson@gmail.com wrote:
> >
> >> -----Original Message-----
> >> From: Brian Cain <brian.cain@oss.qualcomm.com>
> >> Sent: Monday, April 7, 2025 1:27 PM
> >> To: qemu-devel@nongnu.org
> >> Cc: brian.cain@oss.qualcomm.com; richard.henderson@linaro.org;
> >> philmd@linaro.org; matheus.bernardino@oss.qualcomm.com;
> ale@rev.ng;
> >> anjo@rev.ng; marco.liebel@oss.qualcomm.com;
> ltaylorsimpson@gmail.com;
> >> alex.bennee@linaro.org; quic_mburton@quicinc.com;
> sidneym@quicinc.com
> >> Subject: [PATCH v3 3/5] target/hexagon: Add missing A_CALL attr,
> >> hintjumpr to multi_cof
> >>
> >> Signed-off-by: Brian Cain <brian.cain@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]
Let's take a step back here. The goal is to eliminate the pkt_has_multi_cof parameter from helpers that don't need it, right?
So, the first step is to change a check for A_COF to a check for A_JUMP or A_CALL. Here are the opcodes where this distinction matters
J2_endloop* These have fGEN_TCG overrides so there is no helper function.
J2_pause Ditto
J2_rte Ditto
J4_hintjumpr This is a nop in QEMU, and there is an idef-parser emit_J4_hintjumpr function that doesn't generate any TCG.
When idef-parser is off, you get a helper call, but you could easily override this with an empty fGEN_TCG.
J2_trap[01] These have helper functions, so we want to return false because the helpers don't need this argument.
So the bottom line is you can add an A_TRAP attribute attached to the fTRAP macro and then this function can be
return "A_COF" in attribdict[tag] and "A_TRAP" not in attribdict[tag]
HTH,
Taylor
next prev parent reply other threads:[~2025-04-15 23:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-07 19:27 [PATCH v3 0/5] misc hexagon patches Brian Cain
2025-04-07 19:27 ` [PATCH v3 1/5] target/hexagon: handle .new values Brian Cain
2025-04-14 16:47 ` ltaylorsimpson
2025-04-07 19:27 ` [PATCH v3 2/5] target/hexagon: Fix badva reference, delete CAUSE Brian Cain
2025-04-14 16:53 ` ltaylorsimpson
2025-04-07 19:27 ` [PATCH v3 3/5] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Brian Cain
2025-04-14 17:04 ` ltaylorsimpson
2025-04-15 18:22 ` Brian Cain
2025-04-15 23:31 ` ltaylorsimpson [this message]
2025-04-07 19:27 ` [PATCH v3 4/5] target/hexagon: s/pkt_has_store/pkt_has_scalar_store Brian Cain
2025-04-14 17:06 ` ltaylorsimpson
2025-04-07 19:27 ` [PATCH v3 5/5] target/hexagon: Remove unreachable Brian Cain
2025-04-14 17:19 ` ltaylorsimpson
2025-04-07 19:37 ` [PATCH v3 0/5] misc hexagon patches Matheus Tavares Bernardino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='06ee01dbae5e$7a761740$6f6245c0$@gmail.com' \
--to=ltaylorsimpson@gmail.com \
--cc=ale@rev.ng \
--cc=alex.bennee@linaro.org \
--cc=anjo@rev.ng \
--cc=brian.cain@oss.qualcomm.com \
--cc=marco.liebel@oss.qualcomm.com \
--cc=matheus.bernardino@oss.qualcomm.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quic_mburton@quicinc.com \
--cc=richard.henderson@linaro.org \
--cc=sidneym@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).