> -----Original Message----- > From: Taylor Simpson <[email protected]> > Sent: Tuesday, February 13, 2024 10:27 PM > To: [email protected] > Cc: Brian Cain <[email protected]>; Matheus Bernardino (QUIC) > <[email protected]>; Sid Manning <[email protected]>; Marco > Liebel (QUIC) <[email protected]>; [email protected]; > [email protected]; [email protected]; [email protected]; [email protected] > Subject: [PATCH v3 1/3] Hexagon (target/hexagon) Pass P0 explicitly to helpers > that need it > > WARNING: This email originated from outside of Qualcomm. Please be wary of > any links or attachments, and do not enable macros. > > Rather than reading P0 from the env, pass it explicitly > > Signed-off-by: Taylor Simpson <[email protected]> > Reviewed-by: Anton Johansson <[email protected]> > Tested-by: Anton Johansson <[email protected]> > ---
Reviewed-by: Brian Cain <[email protected]> > target/hexagon/macros.h | 4 ++-- > target/hexagon/hex_common.py | 12 +++++++++++- > 2 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h > index 1376d6ccc1..aedc863fab 100644 > --- a/target/hexagon/macros.h > +++ b/target/hexagon/macros.h > @@ -1,5 +1,5 @@ > /* > - * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights > Reserved. > + * Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights > Reserved. > * > * This program is free software; you can redistribute it and/or modify > * it under the terms of the GNU General Public License as published by > @@ -358,7 +358,7 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val, > int shift) > #endif > #define fREAD_PC() (PC) > > -#define fREAD_P0() (env->pred[0]) > +#define fREAD_P0() (P0) > > #define fCHECK_PCALIGN(A) > > diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py > index 195620c7ec..14dcf261b4 100755 > --- a/target/hexagon/hex_common.py > +++ b/target/hexagon/hex_common.py > @@ -1,7 +1,7 @@ > #!/usr/bin/env python3 > > ## > -## Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights > Reserved. > +## Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights > Reserved. > ## > ## This program is free software; you can redistribute it and/or modify > ## it under the terms of the GNU General Public License as published by > @@ -197,6 +197,10 @@ def get_tagimms(): > return dict(zip(tags, list(map(compute_tag_immediates, tags)))) > > > +def need_p0(tag): > + return "A_IMPLICIT_READS_P0" in attribdict[tag] > + > + > def need_slot(tag): > if ( > "A_CVI_SCATTER" not in attribdict[tag] > @@ -1118,6 +1122,12 @@ def helper_args(tag, regs, imms): > "tcg_constant_tl(ctx->next_PC)", > "target_ulong next_PC" > )) > + if need_p0(tag): > + args.append(HelperArg( > + "i32", > + "hex_pred[0]", > + "uint32_t P0" > + )) > if need_slot(tag): > args.append(HelperArg( > "i32", > -- > 2.34.1
