Changeset 66160 in vbox
- Timestamp:
- Mar 17, 2017 10:42:52 PM (8 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h
r66159 r66160 67 67 FNIEMOP_DEF(iemOp_add_Eb_Gb) 68 68 { 69 IEMOP_MNEMONIC2(MR, ADD, add, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );69 IEMOP_MNEMONIC2(MR, ADD, add, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 70 70 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_add); 71 71 } … … 83 83 FNIEMOP_DEF(iemOp_add_Ev_Gv) 84 84 { 85 IEMOP_MNEMONIC2(MR, ADD, add, Ev, Gv, DISOPTYPE_HARMLESS, 0);85 IEMOP_MNEMONIC2(MR, ADD, add, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 86 86 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_add); 87 87 } … … 181 181 FNIEMOP_DEF(iemOp_or_Eb_Gb) 182 182 { 183 IEMOP_MNEMONIC2(MR, OR, or, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );183 IEMOP_MNEMONIC2(MR, OR, or, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 184 184 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 185 185 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_or); … … 202 202 FNIEMOP_DEF(iemOp_or_Ev_Gv) 203 203 { 204 IEMOP_MNEMONIC2(MR, OR, or, Ev, Gv, DISOPTYPE_HARMLESS, 0);204 IEMOP_MNEMONIC2(MR, OR, or, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 205 205 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 206 206 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_or); … … 218 218 FNIEMOP_DEF(iemOp_or_Gb_Eb) 219 219 { 220 IEMOP_MNEMONIC2(RM, OR, or, Gb, Eb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );220 IEMOP_MNEMONIC2(RM, OR, or, Gb, Eb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 221 221 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 222 222 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_or); … … 345 345 FNIEMOP_DEF(iemOp_adc_Eb_Gb) 346 346 { 347 IEMOP_MNEMONIC2(MR, ADC, adc, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );347 IEMOP_MNEMONIC2(MR, ADC, adc, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 348 348 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_adc); 349 349 } … … 363 363 FNIEMOP_DEF(iemOp_adc_Ev_Gv) 364 364 { 365 IEMOP_MNEMONIC2(MR, ADC, adc, Ev, Gv, DISOPTYPE_HARMLESS, 0);365 IEMOP_MNEMONIC2(MR, ADC, adc, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 366 366 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_adc); 367 367 } … … 458 458 FNIEMOP_DEF(iemOp_sbb_Eb_Gb) 459 459 { 460 IEMOP_MNEMONIC2(MR, SBB, sbb, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );460 IEMOP_MNEMONIC2(MR, SBB, sbb, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 461 461 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_sbb); 462 462 } … … 471 471 FNIEMOP_DEF(iemOp_sbb_Ev_Gv) 472 472 { 473 IEMOP_MNEMONIC2(MR, SBB, sbb, Ev, Gv, DISOPTYPE_HARMLESS, 0);473 IEMOP_MNEMONIC2(MR, SBB, sbb, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 474 474 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_sbb); 475 475 } … … 562 562 FNIEMOP_DEF(iemOp_and_Eb_Gb) 563 563 { 564 IEMOP_MNEMONIC2(MR, AND, and, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );564 IEMOP_MNEMONIC2(MR, AND, and, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 565 565 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 566 566 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_and); … … 577 577 FNIEMOP_DEF(iemOp_and_Ev_Gv) 578 578 { 579 IEMOP_MNEMONIC2(MR, AND, and, Ev, Gv, DISOPTYPE_HARMLESS, 0);579 IEMOP_MNEMONIC2(MR, AND, and, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 580 580 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 581 581 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_and); … … 686 686 FNIEMOP_DEF(iemOp_sub_Eb_Gb) 687 687 { 688 IEMOP_MNEMONIC2(MR, SUB, sub, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );688 IEMOP_MNEMONIC2(MR, SUB, sub, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 689 689 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_sub); 690 690 } … … 698 698 FNIEMOP_DEF(iemOp_sub_Ev_Gv) 699 699 { 700 IEMOP_MNEMONIC2(MR, SUB, sub, Ev, Gv, DISOPTYPE_HARMLESS, 0);700 IEMOP_MNEMONIC2(MR, SUB, sub, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 701 701 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_sub); 702 702 } … … 796 796 FNIEMOP_DEF(iemOp_xor_Eb_Gb) 797 797 { 798 IEMOP_MNEMONIC2(MR, XOR, xor, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE );798 IEMOP_MNEMONIC2(MR, XOR, xor, Eb, Gb, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE | IEMOPHINT_LOCK_ALLOWED); 799 799 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 800 800 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_xor); … … 811 811 FNIEMOP_DEF(iemOp_xor_Ev_Gv) 812 812 { 813 IEMOP_MNEMONIC2(MR, XOR, xor, Ev, Gv, DISOPTYPE_HARMLESS, 0);813 IEMOP_MNEMONIC2(MR, XOR, xor, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED); 814 814 IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF); 815 815 return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_xor); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r66159 r66160 344 344 'fpu': 'DISOPTYPE_FPU', ##< FPU instruction. Not implemented yet! 345 345 'ignores_op_size': '', ##< Ignores both operand size prefixes. 346 'lock_allowed': '', ##< Lock prefix allowed. 346 347 }; 347 348 -
trunk/src/VBox/VMM/include/IEMInternal.h
r65876 r66160 887 887 /** Both the operand size prefixes are ignored. */ 888 888 #define IEMOPHINT_IGNORES_OP_SIZE RT_BIT_32(10) 889 /** Allowed with the lock prefix. */ 890 #define IEMOPHINT_LOCK_ALLOWED RT_BIT_32(11) 889 891 /** Hint to IEMAllInstructionPython.py that this macro should be skipped. */ 890 892 #define IEMOPHINT_SKIP_PYTHON RT_BIT_32(31)
Note:
See TracChangeset
for help on using the changeset viewer.