Changeset 66313 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
- Timestamp:
- Mar 28, 2017 7:28:08 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114242
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66311 r66313 1293 1293 /** 1294 1294 * @opcode 0x12 1295 * @opcodesub 11 mr/reg 1295 1296 * @oppfx none 1296 1297 * @opcpuid sse … … 1299 1300 * @optest op1=1 op2=2 -> op1=2 1300 1301 * @optest op1=0 op2=-42 -> op1=-42 1301 * @oponlytest1302 1302 */ 1303 1303 IEMOP_MNEMONIC2(RM_REG, MOVHLPS, movhlps, Vq, UqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); … … 1320 1320 * @opdone 1321 1321 * @opcode 0x12 1322 * @opcodesub !11 mr/reg 1322 1323 * @oppfx none 1323 1324 * @opcpuid sse … … 1327 1328 * @optest op1=0 op2=-42 -> op1=-42 1328 1329 * @opfunction iemOp_vmovlps_Vq_Hq_Mq__vmovhlps 1329 * @oponlytest1330 1330 */ 1331 1331 IEMOP_MNEMONIC2(RM_MEM, MOVLPS, movlps, Vq, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); … … 1350 1350 1351 1351 1352 /** 1353 * @opcode 0x12 1354 * @opcodesub !11 mr/reg 1355 * @oppfx 0x66 1356 * @opcpuid sse2 1357 * @opgroup og_sse2_pcksclr_datamove 1358 * @opxcpttype 5 1359 * @optest op1=1 op2=2 -> op1=2 1360 * @optest op1=0 op2=-42 -> op1=-42 1361 */ 1352 1362 FNIEMOP_DEF(iemOp_vmovlpd_Vq_Hq_Mq) 1353 1363 { 1354 1364 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1355 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) 1356 { 1357 /** 1358 * @todo figure this out! 1359 * opcode 0x12 1360 * todo 11 /reg 1361 * oppfx 0x66 1362 * openc ModR/M 1363 * opcpuid sse2 1364 * opgroup og_sse_simdfp_datamove 1365 * opunused immediate 1366 * optest op1=1 op2=2 -> op1=2 1367 * oponlytest 1368 */ 1369 return IEMOP_RAISE_INVALID_OPCODE(); 1370 } 1371 else 1372 { 1373 /** 1374 * @opdone 1375 * @opcode 0x12 1376 * @oppfx 0x66 1377 * @opcpuid sse2 1378 * @opgroup og_sse2_pcksclr_datamove 1379 * @opxcpttype 5 1380 * @optest op1=1 op2=2 -> op1=2 1381 * @optest op1=0 op2=-42 -> op1=-42 1382 * @opfunction iemOp_vmovlpd_Vq_Hq_Mq 1383 * @oponlytest 1384 */ 1365 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 1366 { 1385 1367 IEMOP_MNEMONIC2(RM_MEM, MOVLPD, movlpd, Vq, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1386 1368 … … 1399 1381 IEM_MC_ADVANCE_RIP(); 1400 1382 IEM_MC_END(); 1401 } 1402 return VINF_SUCCESS; 1383 return VINF_SUCCESS; 1384 } 1385 1386 /** 1387 * @opdone 1388 * @opmnemonic ud660f12m3 1389 * @opcode 0x12 1390 * @opcodesub 11 mr/reg 1391 * @oppfx 0x66 1392 * @opunused immediate 1393 * @opcpuid sse 1394 * @optest -> 1395 */ 1396 return IEMOP_RAISE_INVALID_OPCODE(); 1403 1397 } 1404 1398
Note:
See TracChangeset
for help on using the changeset viewer.