not computed correctly. It would point to an insn in
the middle of the the pattern that identifies a special opcode.
That didn't hurt much but was confusing. Now fixed.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2187
/* Handle special instruction that follows that preamble. */
if (0) vex_printf("special function handling...\n");
- bytes += S390_SPECIAL_OP_PREAMBLE_SIZE;
- status = s390_decode_special_and_irgen(bytes);
- insn_length = S390_SPECIAL_OP_SIZE;
+
+ insn_length = S390_SPECIAL_OP_PREAMBLE_SIZE + S390_SPECIAL_OP_SIZE;
+ guest_IA_next_instr = guest_IA_curr_instr + insn_length;
+
+ status =
+ s390_decode_special_and_irgen(bytes + S390_SPECIAL_OP_PREAMBLE_SIZE);
} else {
/* Handle normal instructions. */
switch (insn_length) {