Resent as a v6 with this change and a bug-fix for orc.b.
This now again passes all of SPEC 2017 w/ a compiler that makes good use of
the Zb[abcs] instructions, including orc.b for string-functions.

On Wed, 25 Aug 2021 at 15:40, Richard Henderson <
[email protected]> wrote:

> On 8/23/21 11:42 AM, Philipp Tomsich wrote:
> > +static bool trans_clmul(DisasContext *ctx, arg_clmul *a)
> > +{
> > +    REQUIRE_ZBC(ctx);
> > +    return gen_arith(ctx, a, gen_helper_clmul);
> > +}
> > +
> > +
> > +static bool trans_clmulh(DisasContext *ctx, arg_clmulr *a)
> > +{
> > +    REQUIRE_ZBC(ctx);
> > +    return gen_arith(ctx, a, gen_clmulh);
> > +}
> > +
> > +static bool trans_clmulr(DisasContext *ctx, arg_clmulh *a)
> > +{
> > +    REQUIRE_ZBC(ctx);
> > +    return gen_arith(ctx, a, gen_helper_clmulr);
> > +}
> > diff --git a/target/riscv/translate.c b/target/riscv/translate.c
> > index fc22ae82d0..32a067dcd2 100644
> > --- a/target/riscv/translate.c
> > +++ b/target/riscv/translate.c
> > @@ -739,6 +739,12 @@ static void gen_add_uw(TCGv ret, TCGv arg1, TCGv
> arg2)
> >       tcg_gen_add_tl(ret, arg1, arg2);
> >   }
> >
> > +static void gen_clmulh(TCGv dst, TCGv src1, TCGv src2)
> > +{
> > +     gen_helper_clmulr(dst, src1, src2);
> > +     tcg_gen_shri_tl(dst, dst, 1);
> > +}
> > +
>
> Put this immediately before its use in trans_rvb.c.inc.  I have patches to
> clean up the
> rest of the instances that still remain in translate.c.
>
> With that,
> Reviewed-by: Richard Henderson <[email protected]>
>
> r~
>

Reply via email to