Changeset 104721 in vbox
- Timestamp:
- May 18, 2024 2:22:07 AM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r104720 r104721 13290 13290 RTUINT256U uSrc1; 13291 13291 RTUINT256U uDstOut; 13292 uint8_t fFlags; 13292 13293 } BS3CPUINSTR3_TEST5_VALUES_T; 13294 13295 /** this test cannot trigger a page fault despite general behavior of the instruction */ 13296 #define BS3_TEST_F_NO_PF RT_BIT(0) 13293 13297 13294 13298 typedef struct BS3CPUINSTR3_TEST5_T … … 13420 13424 if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue; 13421 13425 13426 /* Do not expect PF from instructions which are flagged as never faulting */ 13427 if (fPf && bXcptExpect == X86_XCPT_PF && paValues[iVal].fFlags & BS3_TEST_F_NO_PF) 13428 bXcptExpect = X86_XCPT_DB; 13429 13422 13430 /* 13423 13431 * Set up the context and some expectations. … … 13443 13451 if (paTests[iTest].iRegDst == UINT8_MAX) 13444 13452 BS3_ASSERT(fSseInstr); 13445 else13453 if (bXcptExpect != X86_XCPT_DB) 13446 13454 uMemOpExpect = paValues[iVal].uSrc1; 13447 13455 } … … 13503 13511 */ 13504 13512 cErrors = Bs3TestSubErrorCount(); 13513 13514 /* Instructions which access memory haphazardly may PF haphazardly */ 13515 if (fPf && paTests[iTest].enmRm == RM_RANGE && TrapFrame.bXcpt == X86_XCPT_PF) 13516 bXcptExpect = X86_XCPT_PF; 13505 13517 13506 13518 if (fMmxInstr && bXcptExpect == X86_XCPT_DB) … … 13547 13559 if ( paTests[iTest].enmRm >= RM_MEM 13548 13560 && Bs3MemCmp(puMemOpAlias, &uMemOpExpect, cbMemOp) != 0) 13549 Bs3TestFailedF("Expected uMemOp %.*Rhxs, got %.*Rhxs", cbMemOp, &uMemOpExpect, cbMemOp, puMemOpAlias); 13561 /* Instructions which access memory haphazardly may or may not complete their work */ 13562 if (paTests[iTest].enmRm != RM_RANGE || TrapFrame.bXcpt != X86_XCPT_PF) 13563 Bs3TestFailedF("Expected uMemOp %.*Rhxs, got %.*Rhxs", cbMemOp, &uMemOpExpect, cbMemOp, puMemOpAlias); 13550 13564 13551 13565 if (cErrors != Bs3TestSubErrorCount()) … … 13597 13611 /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0), 13598 13612 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13599 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 13613 /* => */ RTUINT256_INIT_C(0, 0, 0, 0), 13614 /*flgs*/ 0 }, 13600 13615 { /*mask*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13601 13616 /*src2*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13602 13617 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13603 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff) }, 13618 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13619 /*flgs*/ 0 }, 13604 13620 { /*mask*/ RTUINT256_INIT_C(0x0000008000000000, 0x0000091000007f00, 0, 0x8080808080808080), 13605 13621 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13606 13622 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13607 /* => */ RTUINT256_INIT_C(0xb1b2b3f4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8) }, 13623 /* => */ RTUINT256_INIT_C(0xb1b2b3f4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8), 13624 /*flgs*/ 0 }, 13608 13625 { /*mask*/ RTUINT256_INIT_C(0x8080808080808080, 0x8080808080808080, 0x8080808080808080, 0x8080808080808080), 13609 13626 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13610 13627 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13611 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8) }, 13628 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13629 /*flgs*/ 0 }, 13612 13630 { /*mask*/ RTUINT256_INIT_C(0x1234567890abcdef, 0xfedcba0987654321, 0xfedcba0987654321, 0x1234567890abcdef), 13613 13631 /*src2*/ RTUINT256_INIT_C(0x5555666677778888, 0x1111222233334444, 0x1111222233334444, 0x5555666677778888), 13614 13632 /*src1*/ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x9999aaaabbbbcccc, 0x9999aaaabbbbcccc, 0xddddeeeeffff0000), 13615 /* => */ RTUINT256_INIT_C(0xddddeeee77778888, 0x111122aa33bbcccc, 0x111122aa33bbcccc, 0xddddeeee77778888) }, 13633 /* => */ RTUINT256_INIT_C(0xddddeeee77778888, 0x111122aa33bbcccc, 0x111122aa33bbcccc, 0xddddeeee77778888), 13634 /*flgs*/ 0 }, 13616 13635 }; 13617 13636 … … 13670 13689 /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0), 13671 13690 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13672 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 13691 /* => */ RTUINT256_INIT_C(0, 0, 0, 0), 13692 /*flgs*/ 0 }, 13673 13693 { /*mask*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13674 13694 /*src2*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13675 13695 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13676 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff) }, 13696 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13697 /*flgs*/ 0 }, 13677 13698 { /*mask*/ RTUINT256_INIT_C(0x0000008000000000, 0x0000091000007f00, 0, 0x8080808080808080), 13678 13699 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13679 13700 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13680 /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8) }, 13701 /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8), 13702 /*flgs*/ 0 }, 13681 13703 { /*mask*/ RTUINT256_INIT_C(0x8080808080808080, 0x8080808080808080, 0x8080808080808080, 0x8080808080808080), 13682 13704 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13683 13705 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13684 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8) }, 13706 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13707 /*flgs*/ 0 }, 13685 13708 { /*mask*/ RTUINT256_INIT_C(0x1234567890abcdef, 0xfedcba0987654321, 0xfedcba0987654321, 0x1234567890abcdef), 13686 13709 /*src2*/ RTUINT256_INIT_C(0x5555666677778888, 0x1111222233334444, 0x1111222233334444, 0x5555666677778888), 13687 13710 /*src1*/ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x9999aaaabbbbcccc, 0x9999aaaabbbbcccc, 0xddddeeeeffff0000), 13688 /* => */ RTUINT256_INIT_C(0xddddeeee77778888, 0x1111222233334444, 0x1111222233334444, 0xddddeeee77778888) }, 13711 /* => */ RTUINT256_INIT_C(0xddddeeee77778888, 0x1111222233334444, 0x1111222233334444, 0xddddeeee77778888), 13712 /*flgs*/ 0 }, 13689 13713 }; 13690 13714 … … 13743 13767 /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0), 13744 13768 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13745 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 13769 /* => */ RTUINT256_INIT_C(0, 0, 0, 0), 13770 /*flgs*/ 0 }, 13746 13771 { /*mask*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13747 13772 /*src2*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13748 13773 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13749 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff) }, 13774 /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13775 /*flgs*/ 0 }, 13750 13776 { /*mask*/ RTUINT256_INIT_C(0x0000008000000000, 0x0000091000007f00, 0, 0x8080808080808080), 13751 13777 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13752 13778 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13753 /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8) }, 13779 /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0xc1c2c3c4c5c6c7c8), 13780 /*flgs*/ 0 }, 13754 13781 { /*mask*/ RTUINT256_INIT_C(0x8080808080808080, 0x8080808080808080, 0x8080808080808080, 0x8080808080808080), 13755 13782 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13756 13783 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13757 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8) }, 13784 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13785 /*flgs*/ 0 }, 13758 13786 { /*mask*/ RTUINT256_INIT_C(0x1234567890abcdef, 0xfedcba0987654321, 0xfedcba0987654321, 0x1234567890abcdef), 13759 13787 /*src2*/ RTUINT256_INIT_C(0x5555666677778888, 0x1111222233334444, 0x1111222233334444, 0x5555666677778888), 13760 13788 /*src1*/ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x9999aaaabbbbcccc, 0x9999aaaabbbbcccc, 0xddddeeeeffff0000), 13761 /* => */ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x1111222233334444, 0x1111222233334444, 0xddddeeeeffff0000) }, 13789 /* => */ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x1111222233334444, 0x1111222233334444, 0xddddeeeeffff0000), 13790 /*flgs*/ 0 }, 13762 13791 }; 13763 13792 … … 13816 13845 /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0), 13817 13846 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 13818 /* => */ RTUINT256_INIT_C(1, 2, 0, 0) }, 13847 /* => */ RTUINT256_INIT_C(1, 2, 0, 0), 13848 /*flgs*/ 0 }, 13819 13849 { /*mask*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13820 13850 /*src2*/ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff), 13821 13851 /*src1*/ RTUINT256_INIT_C( 0, 0, 0, 0), 13822 /* => */ RTUINT256_INIT_C( 5, 6, 0xf79feefafffffffb, 0xf7bffefdfffffffd) }, 13852 /* => */ RTUINT256_INIT_C( 5, 6, 0xf79feefafffffffb, 0xf7bffefdfffffffd), 13853 /*flgs*/ 0 }, 13823 13854 { /*mask*/ RTUINT256_INIT_C(0x0000008000000000, 0x0000091000007f00, 0, 0x8080808080808080), 13824 13855 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13825 13856 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13826 /* => */ RTUINT256_INIT_C( 9, 10, 0x6db0b4070638d9f7, 0x3c1e9824e85f3497) }, 13857 /* => */ RTUINT256_INIT_C( 9, 10, 0x6db0b4070638d9f7, 0x3c1e9824e85f3497), 13858 /*flgs*/ 0 }, 13827 13859 { /*mask*/ RTUINT256_INIT_C(0x8080808080808080, 0x8080808080808080, 0x8080808080808080, 0x8080808080808080), 13828 13860 /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 13829 13861 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 13830 /* => */ RTUINT256_INIT_C( 13, 14, 0x6db0b4070638d9f7, 0x3c1e9824e85f3497) }, 13862 /* => */ RTUINT256_INIT_C( 13, 14, 0x6db0b4070638d9f7, 0x3c1e9824e85f3497), 13863 /*flgs*/ 0 }, 13831 13864 { /*mask*/ RTUINT256_INIT_C(0x1234567890abcdef, 0xfedcba0987654321, 0xfedcba0987654321, 0x1234567890abcdef), 13832 13865 /*src2*/ RTUINT256_INIT_C(0x5555666677778888, 0x1111222233334444, 0x1111222233334444, 0x5555666677778888), 13833 13866 /*src1*/ RTUINT256_INIT_C(0xddddeeeeffff0000, 0x9999aaaabbbbcccc, 0x9999aaaabbbbcccc, 0xddddeeeeffff0000), 13834 /* => */ RTUINT256_INIT_C( 17, 18, 0xef25e0d150a28cfd, 0xbd9ab3ae2970ef62) }, 13867 /* => */ RTUINT256_INIT_C( 17, 18, 0xef25e0d150a28cfd, 0xbd9ab3ae2970ef62), 13868 /*flgs*/ 0 }, 13835 13869 }; 13836 13870
Note:
See TracChangeset
for help on using the changeset viewer.