On Mon, Apr 29, 2024 at 5:58 AM Kito Cheng <kito.ch...@gmail.com> wrote:
>
> OK for trunk, and my understanding is that flag isn't really used in
> code gen yet, so it's not necessary to port to GCC 14 branch?

Pushed to master.

Since the riscv_zi_subext masks of the affected extensions are applied
to higher bits of riscv_zicmo_subext (beyond Zicbom, Zicbop, Zicboz),
this triggers indeed no issue in GCC 14 (because the TARGET_ZI* macros
are not used). Therefore, no backport to GCC 14.

Thanks!

>
> On Mon, Apr 29, 2024 at 7:05 AM Christoph Müllner
> <christoph.muell...@vrull.eu> wrote:
> >
> > The extension parsing table entries for a range of Zic* extensions
> > does not match the mask definition in riscv.opt.
> > This results in broken TARGET_ZIC* macros, because the values of
> > riscv_zi_subext and riscv_zicmo_subext are set wrong.
> >
> > This patch fixes this by moving Zic64b into riscv_zicmo_subext
> > and all other affected Zic* extensions to riscv_zi_subext.
> >
> > gcc/ChangeLog:
> >
> >         * common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif,
> >         zicclsm, and ziccrse into riscv_zi_subext.
> >         * config/riscv/riscv.opt: Define MASK_ZIC64B for
> >         riscv_ziccmo_subext.
> >
> > Signed-off-by: Christoph Müllner <christoph.muell...@vrull.eu>
> > ---
> >  gcc/common/config/riscv/riscv-common.cc | 8 ++++----
> >  gcc/config/riscv/riscv.opt              | 4 ++--
> >  2 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/gcc/common/config/riscv/riscv-common.cc 
> > b/gcc/common/config/riscv/riscv-common.cc
> > index 43b7549e3ec..8cc0e727737 100644
> > --- a/gcc/common/config/riscv/riscv-common.cc
> > +++ b/gcc/common/config/riscv/riscv-common.cc
> > @@ -1638,15 +1638,15 @@ static const riscv_ext_flag_table_t 
> > riscv_ext_flag_table[] =
> >
> >    {"zihintntl", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTNTL},
> >    {"zihintpause", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTPAUSE},
> > +  {"ziccamoa", &gcc_options::x_riscv_zi_subext, MASK_ZICCAMOA},
> > +  {"ziccif", &gcc_options::x_riscv_zi_subext, MASK_ZICCIF},
> > +  {"zicclsm", &gcc_options::x_riscv_zi_subext, MASK_ZICCLSM},
> > +  {"ziccrse", &gcc_options::x_riscv_zi_subext, MASK_ZICCRSE},
> >
> >    {"zicboz", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOZ},
> >    {"zicbom", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOM},
> >    {"zicbop", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOP},
> >    {"zic64b", &gcc_options::x_riscv_zicmo_subext, MASK_ZIC64B},
> > -  {"ziccamoa", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCAMOA},
> > -  {"ziccif", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCIF},
> > -  {"zicclsm", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCLSM},
> > -  {"ziccrse", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCRSE},
> >
> >    {"zve32x",   &gcc_options::x_target_flags, MASK_VECTOR},
> >    {"zve32f",   &gcc_options::x_target_flags, MASK_VECTOR},
> > diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt
> > index b14888e9816..ee824756381 100644
> > --- a/gcc/config/riscv/riscv.opt
> > +++ b/gcc/config/riscv/riscv.opt
> > @@ -237,8 +237,6 @@ Mask(ZIHINTPAUSE) Var(riscv_zi_subext)
> >
> >  Mask(ZICOND)      Var(riscv_zi_subext)
> >
> > -Mask(ZIC64B)      Var(riscv_zi_subext)
> > -
> >  Mask(ZICCAMOA)    Var(riscv_zi_subext)
> >
> >  Mask(ZICCIF)      Var(riscv_zi_subext)
> > @@ -390,6 +388,8 @@ Mask(ZICBOM) Var(riscv_zicmo_subext)
> >
> >  Mask(ZICBOP) Var(riscv_zicmo_subext)
> >
> > +Mask(ZIC64B) Var(riscv_zicmo_subext)
> > +
> >  TargetVariable
> >  int riscv_zf_subext
> >
> > --
> > 2.44.0
> >

Reply via email to