Changeset 66323 in vbox for trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
- Timestamp:
- Mar 29, 2017 8:03:19 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66317 r66323 470 470 /* [BS3CG1DST_XMM14_HI] = */ 8, 471 471 /* [BS3CG1DST_XMM15_HI] = */ 8, 472 /* [BS3CG1DST_XMM0_LO_ZX] = */ 8, 473 /* [BS3CG1DST_XMM1_LO_ZX] = */ 8, 474 /* [BS3CG1DST_XMM2_LO_ZX] = */ 8, 475 /* [BS3CG1DST_XMM3_LO_ZX] = */ 8, 476 /* [BS3CG1DST_XMM4_LO_ZX] = */ 8, 477 /* [BS3CG1DST_XMM5_LO_ZX] = */ 8, 478 /* [BS3CG1DST_XMM6_LO_ZX] = */ 8, 479 /* [BS3CG1DST_XMM7_LO_ZX] = */ 8, 480 /* [BS3CG1DST_XMM8_LO_ZX] = */ 8, 481 /* [BS3CG1DST_XMM9_LO_ZX] = */ 8, 482 /* [BS3CG1DST_XMM10_LO_ZX] = */ 8, 483 /* [BS3CG1DST_XMM11_LO_ZX] = */ 8, 484 /* [BS3CG1DST_XMM12_LO_ZX] = */ 8, 485 /* [BS3CG1DST_XMM13_LO_ZX] = */ 8, 486 /* [BS3CG1DST_XMM14_LO_ZX] = */ 8, 487 /* [BS3CG1DST_XMM15_LO_ZX] = */ 8, 472 488 /* [BS3CG1DST_XMM0_DW0] = */ 4, 473 489 /* [BS3CG1DST_XMM1_DW0] = */ 4, … … 683 699 /* [BS3CG1DST_XMM14_HI] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]) + sizeof(uint64_t), 684 700 /* [BS3CG1DST_XMM15_HI] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]) + sizeof(uint64_t), 701 /* [BS3CG1DST_XMM0_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[0]), 702 /* [BS3CG1DST_XMM1_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[1]), 703 /* [BS3CG1DST_XMM2_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[2]), 704 /* [BS3CG1DST_XMM3_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[3]), 705 /* [BS3CG1DST_XMM4_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[4]), 706 /* [BS3CG1DST_XMM5_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[5]), 707 /* [BS3CG1DST_XMM6_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[6]), 708 /* [BS3CG1DST_XMM7_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[7]), 709 /* [BS3CG1DST_XMM8_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[8]), 710 /* [BS3CG1DST_XMM9_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[9]), 711 /* [BS3CG1DST_XMM10_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[10]), 712 /* [BS3CG1DST_XMM11_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[11]), 713 /* [BS3CG1DST_XMM12_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[12]), 714 /* [BS3CG1DST_XMM13_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[13]), 715 /* [BS3CG1DST_XMM14_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]), 716 /* [BS3CG1DST_XMM15_LO_ZX] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]), 685 717 /* [BS3CG1DST_XMM0_DW0] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[0]), 686 718 /* [BS3CG1DST_XMM1_DW0] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[1]), … … 723 755 #ifdef BS3CG1_DEBUG_CTX_MOD 724 756 /** Destination field names. */ 725 static const struct { char sz[1 0]; } g_aszBs3Cg1DstFields[] =757 static const struct { char sz[12]; } g_aszBs3Cg1DstFields[] = 726 758 { 727 759 { "INVALID" }, … … 896 928 { "XMM14_HI" }, 897 929 { "XMM15_HI" }, 930 { "XMM0_LO_ZX" }, 931 { "XMM1_LO_ZX" }, 932 { "XMM2_LO_ZX" }, 933 { "XMM3_LO_ZX" }, 934 { "XMM4_LO_ZX" }, 935 { "XMM5_LO_ZX" }, 936 { "XMM6_LO_ZX" }, 937 { "XMM7_LO_ZX" }, 938 { "XMM8_LO_ZX" }, 939 { "XMM9_LO_ZX" }, 940 { "XMM10_LO_ZX" }, 941 { "XMM11_LO_ZX" }, 942 { "XMM12_LO_ZX" }, 943 { "XMM13_LO_ZX" }, 944 { "XMM14_LO_ZX" }, 945 { "XMM15_LO_ZX" }, 898 946 { "XMM0_DW0" }, 899 947 { "XMM1_DW0" }, … … 1362 1410 break; 1363 1411 1412 case BS3CG1ENC_MODRM_WqZxReg_Vq: 1413 if (iEncoding == 0) 1414 { 1415 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1416 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0); 1417 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_LO_ZX; 1418 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_LO; 1419 } 1420 else if (iEncoding == 1) 1421 { 1422 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_LO; 1423 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1424 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 8, 0, BS3CG1OPLOC_MEM_RW); 1425 } 1426 else if (iEncoding == 2) 1427 { 1428 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_LO; 1429 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1430 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 8, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM_RW); 1431 } 1432 else 1433 break; 1434 pThis->cbCurInstr = off; 1435 iEncoding++; 1436 break; 1437 1364 1438 case BS3CG1ENC_MODRM_Vq_UqHi: 1365 1439 if (iEncoding == 0) … … 1687 1761 1688 1762 case BS3CG1ENC_MODRM_Wsd_Vsd: 1763 case BS3CG1ENC_MODRM_WqZxReg_Vq: 1689 1764 pThis->iRmOp = 0; 1690 1765 pThis->iRegOp = 1; … … 2308 2383 2309 2384 case 8: 2385 if ((unsigned)(idxField - BS3CG1DST_XMM0_LO_ZX) <= (unsigned)(BS3CG1DST_XMM15_LO_ZX - BS3CG1DST_XMM0_LO_ZX)) 2386 PtrField.pu64[1] = 0; 2310 2387 switch (bOpcode & BS3CG1_CTXOP_OPERATOR_MASK) 2311 2388 {
Note:
See TracChangeset
for help on using the changeset viewer.