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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.