qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: patch s390x/tcg: Implement Miscellaneous-Instruction-Extensions Faci


From: David Miller
Subject: Re: patch s390x/tcg: Implement Miscellaneous-Instruction-Extensions Facility 3 for the s390x
Date: Wed, 9 Feb 2022 12:23:53 -0500

diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index c0a89e2787..a0601c38e4 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -3792,7 +3792,18 @@ static DisasJumpType op_pku(DisasContext *s, DisasOps *o)

 static DisasJumpType op_popcnt(DisasContext *s, DisasOps *o)
 {
-    gen_helper_popcnt(o->out, o->in2);
+    int m3 = get_field(s, m3);
+
+    if (m3) {
+        if ((m3 & ~1) || !s390_has_feat(S390_FEAT_MISC_INSTRUCTION_EXT3)) {
+            gen_program_exception(s, PGM_SPECIFICATION);
+            return DISAS_NORETURN;
+        }
+        tcg_gen_ctpop_i64(o->out, o->out);
+    }
+    else {
+        gen_helper_popcnt(o->out, o->in2);
+    }
     return DISAS_NEXT;
 }


On Wed, Feb 9, 2022 at 8:55 AM David Hildenbrand <david@redhat.com> wrote:
>
> >> +/* SELECT */
> >> +    C(0xb9f0, SELR,    RRF_a, MIE3, r2, r3, new, r1_32, sel, 0)
> >> +    C(0xb9e3, SELGR,   RRF_a, MIE3, r2, r3, r1, 0, sel, 0)
> >> +/* SELECT HIGH */
> >> +    C(0xb9c0, SELFHR,  RRF_a, MIE3, r2, r3, new, r1_32h, sel, 0)
> >> +
> >>   /* SET ACCESS */
> >>       C(0xb24e, SAR,     RRE,   Z,   0, r2_o, 0, 0, sar, 0)
> >>   /* SET ADDRESSING MODE */
> >
> >
> > I quickly verified that the mnemonics and binary instructions match.
> >
> > One thing that might be missing:
> > I could not find the POPCOUNT changes mentioned in SA22-7832-12
> >
> > --snip--
> > In addition, POPULATION COUNT includes a control
> > in an M 3 field for counting the number of one bits in
> > each byte or the entire 64-bit register.
> > --snip--
> >
> > Can you have a look?
> >
>
> I most probably won't find time to have a look this week (reading the
> PoP to catch corner cases takes time), but I'll add it on my todo list
> for next week.
>
> We should most probably split off the tests into a separate patch and
> add some meat to the patch description ;)
>
> Thanks!
>
> --
> Thanks,
>
> David / dhildenb
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]