Changeset 66334 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Mar 29, 2017 2:26:23 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114268
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r66331 r66334 448 448 'byte': [ 256, ], ##< next opcode byte selects the instruction (default). 449 449 '/r': [ 8, ], ##< modrm.reg selects the instruction. 450 'memreg /r':[ 16, ], ##< modrm.reg and (modrm.mod == 3) selects the instruction. 450 451 'mod /r': [ 32, ], ##< modrm.reg and modrm.mod selects the instruction. 451 452 '!11 /r': [ 8, ], ##< modrm.reg selects the instruction with modrm.mod != 0y11. … … 494 495 if self.sSelector == 'mod /r': 495 496 return (bOpcode >> 3) & 0x1f; 497 498 if self.sSelector == 'memreg /r': 499 return ((bOpcode >> 3) & 0x7) | (int((bOpcode >> 6) == 3) << 3); 496 500 497 501 if self.sSelector == '!11 /r': … … 1207 1211 'grp13': InstructionMap('grp13', asLeadOpcodes = ['0x0f', '0x72',], sSelector = 'mod /r'), 1208 1212 'grp14': InstructionMap('grp14', asLeadOpcodes = ['0x0f', '0x73',], sSelector = 'mod /r'), 1209 'grp15': InstructionMap('grp15', asLeadOpcodes = ['0x0f', '0xae',], sSelector = 'm od/r'),1213 'grp15': InstructionMap('grp15', asLeadOpcodes = ['0x0f', '0xae',], sSelector = 'memreg /r'), 1210 1214 'grp16': InstructionMap('grp16', asLeadOpcodes = ['0x0f', '0x18',], sSelector = 'mod /r'), 1211 1215 'grpA17': InstructionMap('grpA17', asLeadOpcodes = ['0x0f', '0x78',], sSelector = '/r'), # AMD: EXTRQ weirdness -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66332 r66334 6555 6555 6556 6556 6557 /** Opcode 0x0f 0xb9. */ 6557 /** 6558 * @opcode 0xb9 6559 * @opinvalid intel-modrm 6560 * @optest op1=1 op2=2 -> 6561 * @oponlytest 6562 */ 6558 6563 FNIEMOP_DEF(iemOp_Grp10) 6559 6564 { 6560 Log(("iemOp_Grp10 -> #UD\n")); 6561 return IEMOP_RAISE_INVALID_OPCODE(); 6565 /* 6566 * AMD does not decode beyond the 0xb9 whereas intel does the modr/m bit 6567 * too. See bs3-cpu-decoder-1.c32. So, we can forward to iemOp_InvalidNeedRM. 6568 */ 6569 /** @todo fix bs3-cpu-generated-1 to deal with this on AMD! */ 6570 Log(("iemOp_Grp10 aka UD1 -> #UD\n")); 6571 IEMOP_MNEMONIC2EX(ud1, "ud1", RM, UD1, ud1, Gb, Eb, DISOPTYPE_INVALID, IEMOPHINT_IGNORES_OP_SIZE); /* just picked Gb,Eb here. */ 6572 return FNIEMOP_CALL(iemOp_InvalidNeedRM); 6562 6573 } 6563 6574
Note:
See TracChangeset
for help on using the changeset viewer.