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~

Reply via email to