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~