VirtualBox

Changeset 104156 in vbox for trunk/src/VBox/VMM/testcase


Ignore:
Timestamp:
Apr 4, 2024 12:05:54 PM (11 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162579
Message:

VMM/IEM: Rework microcode of cmpss/cmpsd/cmpps/cmppd/roundss/roundsd/roundps/roundpd/dpps/dppd to use IEM_MC_CALL_SSE_AIMPL_3 and don't reference the MXCSR explicitely, bugref:10641

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp

    r104150 r104156  
    79187918                                              | (iFz  ? X86_MXCSR_FZ  : 0)
    79197919                                              | X86_MXCSR_XCPT_MASK;
    7920                             uint32_t fMxcsrM  = fMxcsrIn;
    79217920                            X86XMMREG ResM;
    7922                             pfn(&fMxcsrM, &ResM, &Src, bImm);
     7921                            uint32_t fMxcsrM    = pfn(fMxcsrIn, &ResM, &Src, bImm);
    79237922                            TestData.fMxcsrIn   = fMxcsrIn;
    79247923                            TestData.fMxcsrOut  = fMxcsrM;
     
    79287927
    79297928                            fMxcsrIn &= ~X86_MXCSR_XCPT_MASK;
    7930                             uint32_t fMxcsrU  = fMxcsrIn;
    79317929                            X86XMMREG ResU;
    7932                             pfn(&fMxcsrU, &ResU, &Src, bImm);
     7930                            uint32_t fMxcsrU    = pfn(fMxcsrIn, &ResU, &Src, bImm);
    79337931                            TestData.fMxcsrIn   = fMxcsrIn;
    79347932                            TestData.fMxcsrOut  = fMxcsrU;
     
    79417939                            {
    79427940                                fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt;
    7943                                 uint32_t fMxcsr1  = fMxcsrIn;
    79447941                                X86XMMREG Res1;
    7945                                 pfn(&fMxcsr1, &Res1, &Src, bImm);
     7942                                uint32_t fMxcsr1    = pfn(fMxcsrIn, &Res1, &Src, bImm);
    79467943                                TestData.fMxcsrIn   = fMxcsrIn;
    79477944                                TestData.fMxcsrOut  = fMxcsr1;
     
    79547951                                    fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS;
    79557952                                    fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT);
    7956                                     uint32_t fMxcsr2  = fMxcsrIn;
    79577953                                    X86XMMREG Res2;
    7958                                     pfn(&fMxcsr2, &Res2, &Src, bImm);
     7954                                    uint32_t fMxcsr2    = pfn(fMxcsrIn, &Res2, &Src, bImm);
    79597955                                    TestData.fMxcsrIn   = fMxcsrIn;
    79607956                                    TestData.fMxcsrOut  = fMxcsr2;
     
    79687964                                        {
    79697965                                            fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT);
    7970                                             uint32_t fMxcsr3  = fMxcsrIn;
    79717966                                            X86XMMREG Res3;
    7972                                             pfn(&fMxcsr3, &Res3, &Src, bImm);
     7967                                            uint32_t fMxcsr3    = pfn(fMxcsrIn, &Res3, &Src, bImm);
    79737968                                            TestData.fMxcsrIn   = fMxcsrIn;
    79747969                                            TestData.fMxcsrOut  = fMxcsr3;
     
    80088003                Src.uSrc1 = paTests[iTest].InVal1;
    80098004                Src.uSrc2 = paTests[iTest].InVal2;
    8010                 uint32_t fMxcsr = paTests[iTest].fMxcsrIn;
    8011                 pfn(&fMxcsr, &ValOut, &Src, paTests[iTest].bImm);
     8005                uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut, &Src, paTests[iTest].bImm);
    80128006                if (   fMxcsr != paTests[iTest].fMxcsrOut
    80138007                    || ValOut.au32[0] != paTests[iTest].OutVal.au32[0]
     
    81158109                                              | (iFz  ? X86_MXCSR_FZ  : 0)
    81168110                                              | X86_MXCSR_XCPT_MASK;
    8117                             uint32_t fMxcsrM  = fMxcsrIn;
    81188111                            X86XMMREG ResM;
    8119                             pfn(&fMxcsrM, &ResM, &Src, bImm);
     8112                            uint32_t fMxcsrM    = pfn(fMxcsrIn, &ResM, &Src, bImm);
    81208113                            TestData.fMxcsrIn   = fMxcsrIn;
    81218114                            TestData.fMxcsrOut  = fMxcsrM;
     
    81258118
    81268119                            fMxcsrIn &= ~X86_MXCSR_XCPT_MASK;
    8127                             uint32_t fMxcsrU  = fMxcsrIn;
    81288120                            X86XMMREG ResU;
    8129                             pfn(&fMxcsrU, &ResU, &Src, bImm);
     8121                            uint32_t fMxcsrU    = pfn(fMxcsrIn, &ResU, &Src, bImm);
    81308122                            TestData.fMxcsrIn   = fMxcsrIn;
    81318123                            TestData.fMxcsrOut  = fMxcsrU;
     
    81388130                            {
    81398131                                fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | fXcpt;
    8140                                 uint32_t fMxcsr1  = fMxcsrIn;
    81418132                                X86XMMREG Res1;
    8142                                 pfn(&fMxcsr1, &Res1, &Src, bImm);
     8133                                uint32_t fMxcsr1    = pfn(fMxcsrIn, &Res1, &Src, bImm);
    81438134                                TestData.fMxcsrIn   = fMxcsrIn;
    81448135                                TestData.fMxcsrOut  = fMxcsr1;
     
    81518142                                    fXcpt |= fMxcsr1 & X86_MXCSR_XCPT_FLAGS;
    81528143                                    fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | (fXcpt << X86_MXCSR_XCPT_MASK_SHIFT);
    8153                                     uint32_t fMxcsr2  = fMxcsrIn;
    81548144                                    X86XMMREG Res2;
    8155                                     pfn(&fMxcsr2, &Res2, &Src, bImm);
     8145                                    uint32_t fMxcsr2    = pfn(fMxcsrIn, &Res2, &Src, bImm);
    81568146                                    TestData.fMxcsrIn   = fMxcsrIn;
    81578147                                    TestData.fMxcsrOut  = fMxcsr2;
     
    81658155                                        {
    81668156                                            fMxcsrIn = (fMxcsrIn & ~X86_MXCSR_XCPT_MASK) | ((fXcpt & ~fUnmasked) << X86_MXCSR_XCPT_MASK_SHIFT);
    8167                                             uint32_t fMxcsr3  = fMxcsrIn;
    81688157                                            X86XMMREG Res3;
    8169                                             pfn(&fMxcsr3, &Res3, &Src, bImm);
     8158                                            uint32_t fMxcsr3    = pfn(fMxcsrIn, &Res3, &Src, bImm);
    81708159                                            TestData.fMxcsrIn   = fMxcsrIn;
    81718160                                            TestData.fMxcsrOut  = fMxcsr3;
     
    82058194                Src.uSrc1 = paTests[iTest].InVal1;
    82068195                Src.uSrc2 = paTests[iTest].InVal2;
    8207                 uint32_t fMxcsr = paTests[iTest].fMxcsrIn;
    8208                 pfn(&fMxcsr, &ValOut, &Src, paTests[iTest].bImm);
     8196                uint32_t fMxcsr = pfn(paTests[iTest].fMxcsrIn, &ValOut, &Src, paTests[iTest].bImm);
    82098197                if (   fMxcsr != paTests[iTest].fMxcsrOut
    82108198                    || ValOut.au64[0] != paTests[iTest].OutVal.au64[0]
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette