Changeset 104174 in vbox for trunk/src/VBox/VMM/testcase
- Timestamp:
- Apr 5, 2024 10:21:30 AM (11 months ago)
- svn:sync-xref-src-repo-rev:
- 162602
- Location:
- trunk/src/VBox/VMM/testcase
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp
r104173 r104174 8906 8906 | (iFz ? X86_MXCSR_FZ : 0) 8907 8907 | X86_MXCSR_XCPT_MASK; 8908 uint32_t fMxcsrM = fMxcsrIn;8909 8908 uint64_t u64ResM; 8910 pfn(&fMxcsrM, &u64ResM, &TestData.InVal);8909 uint32_t fMxcsrM = pfn(fMxcsrIn, &u64ResM, &TestData.InVal); 8911 8910 TestData.fMxcsrIn = fMxcsrIn; 8912 8911 TestData.fMxcsrOut = fMxcsrM; … … 8915 8914 8916 8915 fMxcsrIn &= ~X86_MXCSR_XCPT_MASK; 8917 uint32_t fMxcsrU = fMxcsrIn;8918 8916 uint64_t u64ResU; 8919 pfn(&fMxcsrU, &u64ResU, &TestData.InVal);8917 uint32_t fMxcsrU = pfn(fMxcsrIn, &u64ResU, &TestData.InVal); 8920 8918 TestData.fMxcsrIn = fMxcsrIn; 8921 8919 TestData.fMxcsrOut = fMxcsrU; … … 8927 8925 { 8928 8926 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt; 8929 uint32_t fMxcsr1 = fMxcsrIn;8930 8927 uint64_t u64Res1; 8931 pfn(&fMxcsr1, &u64Res1, &TestData.InVal);8928 uint32_t fMxcsr1 = pfn(fMxcsrIn, &u64Res1, &TestData.InVal); 8932 8929 TestData.fMxcsrIn = fMxcsrIn; 8933 8930 TestData.fMxcsrOut = fMxcsr1; … … 8939 8936 fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS; 8940 8937 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT); 8941 uint32_t fMxcsr2 = fMxcsrIn;8942 8938 uint64_t u64Res2; 8943 pfn(&fMxcsr2, &u64Res2, &TestData.InVal);8939 uint32_t fMxcsr2 = pfn(fMxcsrIn, &u64Res2, &TestData.InVal); 8944 8940 TestData.fMxcsrIn = fMxcsrIn; 8945 8941 TestData.fMxcsrOut = fMxcsr2; … … 8952 8948 { 8953 8949 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT); 8954 uint32_t fMxcsr3 = fMxcsrIn;8955 8950 uint64_t u64Res3; 8956 pfn(&fMxcsr3, &u64Res3, &TestData.InVal);8951 uint32_t fMxcsr3 = pfn(fMxcsrIn, &u64Res3, &TestData.InVal); 8957 8952 TestData.fMxcsrIn = fMxcsrIn; 8958 8953 TestData.fMxcsrOut = fMxcsr3; … … 8987 8982 { 8988 8983 RTUINT64U ValOut; 8989 uint32_t fMxcsr = paTests[iTest].fMxcsrIn; 8990 pfn(&fMxcsr, &ValOut.u, &paTests[iTest].InVal); 8984 uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut.u, &paTests[iTest].InVal); 8991 8985 if ( fMxcsr != paTests[iTest].fMxcsrOut 8992 8986 || ValOut.ai32[0] != paTests[iTest].OutVal.ai32[0] … … 9060 9054 | (iFz ? X86_MXCSR_FZ : 0) 9061 9055 | X86_MXCSR_XCPT_MASK; 9062 uint32_t fMxcsrM = fMxcsrIn; 9063 pfn(&fMxcsrM, &TestData.OutVal, TestData.InVal.u); 9056 uint32_t fMxcsrM = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9064 9057 TestData.fMxcsrIn = fMxcsrIn; 9065 9058 TestData.fMxcsrOut = fMxcsrM; … … 9067 9060 9068 9061 fMxcsrIn &= ~X86_MXCSR_XCPT_MASK; 9069 uint32_t fMxcsrU = fMxcsrIn; 9070 pfn(&fMxcsrU, &TestData.OutVal, TestData.InVal.u); 9062 uint32_t fMxcsrU = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9071 9063 TestData.fMxcsrIn = fMxcsrIn; 9072 9064 TestData.fMxcsrOut = fMxcsrU; … … 9077 9069 { 9078 9070 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt; 9079 uint32_t fMxcsr1 = fMxcsrIn; 9080 pfn(&fMxcsr1, &TestData.OutVal, TestData.InVal.u); 9071 uint32_t fMxcsr1 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9081 9072 TestData.fMxcsrIn = fMxcsrIn; 9082 9073 TestData.fMxcsrOut = fMxcsr1; … … 9087 9078 fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS; 9088 9079 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT); 9089 uint32_t fMxcsr2 = fMxcsrIn; 9090 pfn(&fMxcsr2, &TestData.OutVal, TestData.InVal.u); 9080 uint32_t fMxcsr2 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9091 9081 TestData.fMxcsrIn = fMxcsrIn; 9092 9082 TestData.fMxcsrOut = fMxcsr2; … … 9098 9088 { 9099 9089 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT); 9100 uint32_t fMxcsr3 = fMxcsrIn; 9101 pfn(&fMxcsr3, &TestData.OutVal, TestData.InVal.u); 9090 uint32_t fMxcsr3 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9102 9091 TestData.fMxcsrIn = fMxcsrIn; 9103 9092 TestData.fMxcsrOut = fMxcsr3; … … 9131 9120 { 9132 9121 X86XMMREG ValOut; 9133 uint32_t fMxcsr = paTests[iTest].fMxcsrIn; 9134 pfn(&fMxcsr, &ValOut, paTests[iTest].InVal.u); 9122 uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut, paTests[iTest].InVal.u); 9135 9123 if ( fMxcsr != paTests[iTest].fMxcsrOut 9136 9124 || !RTFLOAT64U_ARE_IDENTICAL(&ValOut.ar64[0], &paTests[iTest].OutVal.ar64[0]) … … 9205 9193 | (iFz ? X86_MXCSR_FZ : 0) 9206 9194 | X86_MXCSR_XCPT_MASK; 9207 uint32_t fMxcsrM = fMxcsrIn; 9208 pfn(&fMxcsrM, &TestData.OutVal, TestData.InVal.u); 9195 uint32_t fMxcsrM = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9209 9196 TestData.fMxcsrIn = fMxcsrIn; 9210 9197 TestData.fMxcsrOut = fMxcsrM; … … 9212 9199 9213 9200 fMxcsrIn &= ~X86_MXCSR_XCPT_MASK; 9214 uint32_t fMxcsrU = fMxcsrIn; 9215 pfn(&fMxcsrU, &TestData.OutVal, TestData.InVal.u); 9201 uint32_t fMxcsrU = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9216 9202 TestData.fMxcsrIn = fMxcsrIn; 9217 9203 TestData.fMxcsrOut = fMxcsrU; … … 9222 9208 { 9223 9209 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt; 9224 uint32_t fMxcsr1 = fMxcsrIn; 9225 pfn(&fMxcsr1, &TestData.OutVal, TestData.InVal.u); 9210 uint32_t fMxcsr1 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9226 9211 TestData.fMxcsrIn = fMxcsrIn; 9227 9212 TestData.fMxcsrOut = fMxcsr1; … … 9232 9217 fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS; 9233 9218 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT); 9234 uint32_t fMxcsr2 = fMxcsrIn; 9235 pfn(&fMxcsr2, &TestData.OutVal, TestData.InVal.u); 9219 uint32_t fMxcsr2 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9236 9220 TestData.fMxcsrIn = fMxcsrIn; 9237 9221 TestData.fMxcsrOut = fMxcsr2; … … 9243 9227 { 9244 9228 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT); 9245 uint32_t fMxcsr3 = fMxcsrIn; 9246 pfn(&fMxcsr3, &TestData.OutVal, TestData.InVal.u); 9229 uint32_t fMxcsr3 = pfn(fMxcsrIn, &TestData.OutVal, TestData.InVal.u); 9247 9230 TestData.fMxcsrIn = fMxcsrIn; 9248 9231 TestData.fMxcsrOut = fMxcsr3; … … 9276 9259 { 9277 9260 X86XMMREG ValOut; 9278 uint32_t fMxcsr = paTests[iTest].fMxcsrIn; 9279 pfn(&fMxcsr, &ValOut, paTests[iTest].InVal.u); 9261 uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut, paTests[iTest].InVal.u); 9280 9262 if ( fMxcsr != paTests[iTest].fMxcsrOut 9281 9263 || !RTFLOAT32U_ARE_IDENTICAL(&ValOut.ar32[0], &paTests[iTest].OutVal.ar32[0]) … … 9368 9350 | (iFz ? X86_MXCSR_FZ : 0) 9369 9351 | X86_MXCSR_XCPT_MASK; 9370 uint32_t fMxcsrM = fMxcsrIn;9371 9352 uint64_t u64ResM; 9372 pfn(&fMxcsrM, &u64ResM, TestVal.u);9353 uint32_t fMxcsrM = pfn(fMxcsrIn, &u64ResM, TestVal.u); 9373 9354 TestData.fMxcsrIn = fMxcsrIn; 9374 9355 TestData.fMxcsrOut = fMxcsrM; … … 9377 9358 9378 9359 fMxcsrIn &= ~X86_MXCSR_XCPT_MASK; 9379 uint32_t fMxcsrU = fMxcsrIn;9380 9360 uint64_t u64ResU; 9381 pfn(&fMxcsrU, &u64ResU, TestVal.u);9361 uint32_t fMxcsrU = pfn(fMxcsrIn, &u64ResU, TestVal.u); 9382 9362 TestData.fMxcsrIn = fMxcsrIn; 9383 9363 TestData.fMxcsrOut = fMxcsrU; … … 9389 9369 { 9390 9370 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt; 9391 uint32_t fMxcsr1 = fMxcsrIn;9392 9371 uint64_t u64Res1; 9393 pfn(&fMxcsr1, &u64Res1, TestVal.u);9372 uint32_t fMxcsr1 = pfn(fMxcsrIn, &u64Res1, TestVal.u); 9394 9373 TestData.fMxcsrIn = fMxcsrIn; 9395 9374 TestData.fMxcsrOut = fMxcsr1; … … 9401 9380 fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS; 9402 9381 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT); 9403 uint32_t fMxcsr2 = fMxcsrIn;9404 9382 uint64_t u64Res2; 9405 pfn(&fMxcsr2, &u64Res2, TestVal.u);9383 uint32_t fMxcsr2 = pfn(fMxcsrIn, &u64Res2, TestVal.u); 9406 9384 TestData.fMxcsrIn = fMxcsrIn; 9407 9385 TestData.fMxcsrOut = fMxcsr2; … … 9414 9392 { 9415 9393 fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT); 9416 uint32_t fMxcsr3 = fMxcsrIn;9417 9394 uint64_t u64Res3; 9418 pfn(&fMxcsr3, &u64Res3, TestVal.u);9395 uint32_t fMxcsr3 = pfn(fMxcsrIn, &u64Res3, TestVal.u); 9419 9396 TestData.fMxcsrIn = fMxcsrIn; 9420 9397 TestData.fMxcsrOut = fMxcsr3; … … 9457 9434 ValIn.au32[1] = paTests[iTest].ar32InVal[1].u; 9458 9435 9459 uint32_t fMxcsr = paTests[iTest].fMxcsrIn; 9460 pfn(&fMxcsr, &ValOut.u, ValIn.u); 9436 uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut.u, ValIn.u); 9461 9437 if ( fMxcsr != paTests[iTest].fMxcsrOut 9462 9438 || ValOut.ai32[0] != paTests[iTest].OutVal.ai32[0] -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r104150 r104174 729 729 #define IEM_MC_REF_EFLAGS_EX(a_pEFlags, a_fEflInput, a_fEflOutput) IEM_MC_REF_EFLAGS(a_pEFlags) 730 730 #define IEM_MC_REF_FPUREG(a_pr80Dst, a_iSt) do { (a_pr80Dst) = (PRTFLOAT80U)((uintptr_t)0); CHK_PTYPE(PCRTFLOAT80U, a_pr80Dst); CHK_VAR(a_pr80Dst); AssertCompile((a_iSt) < 8); (void)fMcBegin; } while (0) 731 #define IEM_MC_REF_MXCSR(a_pfMxcsr) do { (a_pfMxcsr) = (uint32_t *)((uintptr_t)0); CHK_PTYPE(uint32_t *, a_pfMxcsr); CHK_VAR(a_pfMxcsr); (void)fMcBegin; (void)fSseRead; } while (0)732 731 733 732 #define IEM_MC_ADD_GREG_U16(a_iGReg, a_u16Const) do { CHK_GREG_IDX(a_iGReg); CHK_CONST(uint16_t, a_u16Const); (void)fMcBegin; } while (0)
Note:
See TracChangeset
for help on using the changeset viewer.