Changeset 84477 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
- Timestamp:
- May 24, 2020 6:18:55 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 138194
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r82968 r84477 2216 2216 { 2217 2217 IEMOP_MNEMONIC(mov_Rd_Td, "mov Rd,Td"); 2218 /** @todo works on 386 and 486. */ 2219 /* The RM byte is not considered, see testcase. */ 2220 return IEMOP_RAISE_INVALID_OPCODE(); 2218 IEMOP_HLP_MIN_386(); 2219 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 2220 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 2221 if (RT_LIKELY(IEM_GET_TARGET_CPU(pVCpu) >= IEMTARGETCPU_PENTIUM)) 2222 return IEMOP_RAISE_INVALID_OPCODE(); 2223 return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_mov_Rd_Td, 2224 (X86_MODRM_RM_MASK & bRm) | pVCpu->iem.s.uRexB, 2225 ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)); 2221 2226 } 2222 2227 … … 2226 2231 { 2227 2232 IEMOP_MNEMONIC(mov_Td_Rd, "mov Td,Rd"); 2228 /** @todo works on 386 and 486. */ 2229 /* The RM byte is not considered, see testcase. */ 2230 return IEMOP_RAISE_INVALID_OPCODE(); 2233 IEMOP_HLP_MIN_386(); 2234 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 2235 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 2236 if (RT_LIKELY(IEM_GET_TARGET_CPU(pVCpu) >= IEMTARGETCPU_PENTIUM)) 2237 return IEMOP_RAISE_INVALID_OPCODE(); 2238 return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_mov_Td_Rd, 2239 ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK), 2240 (X86_MODRM_RM_MASK & bRm) | pVCpu->iem.s.uRexB); 2231 2241 } 2232 2242
Note:
See TracChangeset
for help on using the changeset viewer.