Revision 7418027e

b/target-i386/translate.c
5293 5293
        break;
5294 5294

  
5295 5295
    case 0x91 ... 0x97: /* xchg R, EAX */
5296
    do_xchg_reg_eax:
5296 5297
        ot = dflag + OT_WORD;
5297 5298
        reg = (b & 7) | REX_B(s);
5298 5299
        rm = R_EAX;
......
6663 6664
        /************************/
6664 6665
        /* misc */
6665 6666
    case 0x90: /* nop */
6666
        /* XXX: xchg + rex handling */
6667 6667
        /* XXX: correct lock test for all insn */
6668
        if (prefixes & PREFIX_LOCK)
6668
        if (prefixes & PREFIX_LOCK) {
6669 6669
            goto illegal_op;
6670
        }
6671
        /* If REX_B is set, then this is xchg eax, r8d, not a nop.  */
6672
        if (REX_B(s)) {
6673
            goto do_xchg_reg_eax;
6674
        }
6670 6675
        if (prefixes & PREFIX_REPZ) {
6671 6676
            gen_svm_check_intercept(s, pc_start, SVM_EXIT_PAUSE);
6672 6677
        }

Also available in: Unified diff