> Bit 0 controls this, and recall that IBM uses big-bit numbering, so "8".
> This stores the low part of r[23] in the high part of r1. > You need to select the high part of r[23]. good catch, these are both fixed will update patch shortly. Thanks for the review - David Miller On Wed, Feb 23, 2022 at 2:41 PM Richard Henderson <richard.hender...@linaro.org> wrote: > > On 2/17/22 13:17, David Miller wrote: > > +/* SELECT HIGH */ > > + C(0xb9c0, SELFHR, RRF_a, MIE3, r3, r2, new, r1_32h, loc, 0) > > This stores the low part of r[23] in the high part of r1. > You need to select the high part of r[23]. > > > static DisasJumpType op_popcnt(DisasContext *s, DisasOps *o) > > { > > - gen_helper_popcnt(o->out, o->in2); > > + const uint8_t m3 = get_field(s, m3); > > + > > + if ((m3 & 1) && s390_has_feat(S390_FEAT_MISC_INSTRUCTION_EXT3)) { > > Bit 0 controls this, and recall that IBM uses big-bit numbering, so "8". > > > r~