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