Changeset 98888 in vbox
- Timestamp:
- Mar 9, 2023 11:19:18 AM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156222
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac
r98704 r98888 3040 3040 %endif 3041 3041 3042 ; 3043 ; MPSADBW 3044 ; 3045 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, XMM2, 0FFh 3046 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, FSxBX, 0FFh 3047 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, XMM2, 000h 3048 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, FSxBX, 000h 3049 3050 %if TMPL_BITS == 64 3051 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM8, XMM9, 0FFh 3052 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM8, FSxBX, 0FFh 3053 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM8, XMM9, 000h 3054 EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM8, FSxBX, 000h 3055 %endif 3056 3042 3057 3043 3058 %endif ; BS3_INSTANTIATING_CMN -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r98712 r98888 7759 7759 { bs3CpuInstr3_sha1rnds4_XMM1_FSxBX_003h_icebp_c64, 255, RM_MEM, T_SHA, 1, 1, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_03), s_aValuesSha1Rnds4_03 }, 7760 7760 7761 }; 7762 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 7763 unsigned const iTest = BS3CPUINSTR3_TEST_MODES_INDEX(bMode); 7764 return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 7765 g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4)); 7766 } 7767 7768 7769 /* 7770 * [V]MPSADBW - Compute Multiple Packed Sums of Absolute Differences. 7771 */ 7772 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_mpsadbw_XMM1_XMM2_0FFh_icebp); 7773 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_mpsadbw_XMM1_FSxBX_0FFh_icebp); 7774 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_mpsadbw_XMM1_XMM2_000h_icebp); 7775 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_mpsadbw_XMM1_FSxBX_000h_icebp); 7776 extern FNBS3FAR bs3CpuInstr3_mpsadbw_XMM8_XMM9_0FFh_icebp_c64; 7777 extern FNBS3FAR bs3CpuInstr3_mpsadbw_XMM8_FSxBX_0FFh_icebp_c64; 7778 extern FNBS3FAR bs3CpuInstr3_mpsadbw_XMM8_XMM9_000h_icebp_c64; 7779 extern FNBS3FAR bs3CpuInstr3_mpsadbw_XMM8_FSxBX_000h_icebp_c64; 7780 7781 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_mpsadbw(uint8_t bMode) 7782 { 7783 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesFF[] = 7784 { 7785 { /*src2*/ RTUINT256_INIT_C( 0, 0, 0, 0), 7786 /*src1*/ RTUINT256_INIT_C( 0, 0, 0, 0), 7787 /* => */ RTUINT256_INIT_C( 0, 0, 0, 0) }, 7788 { /*src2*/ RTUINT256_INIT_C( 0, 1, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 7789 /*src1*/ RTUINT256_INIT_C( 2, 3, 0x9192939495969798, 0x8182838485868788), 7790 /* => */ RTUINT256_INIT_C( 4, 5, 0x00fc00f800f400f0, 0x01040118012c0140) }, 7791 { /*src2*/ RTUINT256_INIT_C( 6, 7, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb), 7792 /*src1*/ RTUINT256_INIT_C( 8, 9, 0x8800e95bbf9962c3, 0x43d3cda0238499fd), 7793 /* => */ RTUINT256_INIT_C(10, 11, 0x01bf010e01a700d1, 0x0155013300fa01c9) }, 7794 }; 7795 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues00[] = 7796 { 7797 { /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0), 7798 /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0), 7799 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 7800 { /*src2*/ RTUINT256_INIT_C(0, 1, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 7801 /*src1*/ RTUINT256_INIT_C(2, 3, 0x9192939495969798, 0x8182838485868788), 7802 /* => */ RTUINT256_INIT_C(4, 5, 0x00d400e800fc0110, 0x010c010801040100) }, 7803 { /*src2*/ RTUINT256_INIT_C(6, 7, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb), 7804 /*src1*/ RTUINT256_INIT_C(8, 9, 0x8800e95bbf9962c3, 0x43d3cda0238499fd), 7805 /* => */ RTUINT256_INIT_C(10, 11, 0x0104015600b9016c, 0x01a6017b005b0130) }, 7806 }; 7807 7808 static BS3CPUINSTR3_TEST1_T const s_aTests16[] = 7809 { 7810 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_0FFh_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7811 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7812 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7813 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7814 }; 7815 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = 7816 { 7817 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_0FFh_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7818 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7819 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7820 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7821 }; 7822 static BS3CPUINSTR3_TEST1_T const s_aTests64[] = 7823 { 7824 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7825 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7826 { bs3CpuInstr3_mpsadbw_XMM8_XMM9_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7827 { bs3CpuInstr3_mpsadbw_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_SSE4_1, 8, 8, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 7828 7829 { bs3CpuInstr3_mpsadbw_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7830 { bs3CpuInstr3_mpsadbw_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7831 { bs3CpuInstr3_mpsadbw_XMM8_XMM9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7832 { bs3CpuInstr3_mpsadbw_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM, T_SSE4_1, 8, 8, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 7761 7833 }; 7762 7834 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 12475 12547 #if defined(ALL_TESTS) 12476 12548 { "sha1nexte/sha1msg1/sha1msg2/sha256msg1/sha256msg2/sha1rnds4", bs3CpuInstr3_v_sha1nexte_sha1msg1_sha1msg2_sha256msg1_sha256msg2_sha1rnds4, 0 }, 12477 { "sha256rnds2", bs3CpuInstr3_v_sha256rnds2, 0 } 12549 { "sha256rnds2", bs3CpuInstr3_v_sha256rnds2, 0 }, 12550 #endif 12551 #if defined (ALL_TESTS) 12552 { "mpsadbw", bs3CpuInstr3_v_mpsadbw, 0 } 12553 12478 12554 #endif 12479 12555 };
Note:
See TracChangeset
for help on using the changeset viewer.