VirtualBox

Changeset 103873 in vbox


Ignore:
Timestamp:
Mar 16, 2024 1:04:36 AM (9 months ago)
Author:
vboxsync
Message:

ValKit/bs3-cpu-instr-3: A more optimal use of BS3_THRESHOLD_NATIVE_RECOMPILER in bs3-cpu-instr-3. bugref:10614

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r103867 r103873  
    569569 * (to enable this: turn on `#define BS3_SKIPIT_DO_ARGS': which costs about
    570570 * 3% performance).
     571 *
     572 * Note! The skipping is not compatible with testing the native recompiler as
     573 *       it requires the test code to be run a number of times before it kicks
     574 *       in and does the native recompilation (currently around 16 times).
    571575 */
    572576#define BS3_SKIPIT_AVG_SKIP 26
     
    776780                 * Iterate the test values and do the actual testing.
    777781                 */
    778                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    779                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     782                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues)
     783                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    780784                    {
    781785                        uint16_t   cErrors;
     
    784788
    785789                        if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
    786                         cRecompRuns++;
    787790
    788791                        /*
     
    92549257                 * Iterate the test values and do the actual testing.
    92559258                 */
    9256                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    9257                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     9259                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues)
     9260                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    92589261                    {
    92599262                        uint16_t   cErrors;
     
    92629265
    92639266                        if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
    9264                         cRecompRuns++;
    92659267
    92669268                        /*
     
    99329934                 * Iterate the test values and do the actual testing.
    99339935                 */
    9934                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    9935                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     9936                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues)
     9937                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    99369938                    {
    99379939                        uint16_t   cErrors;
     
    99409942
    99419943                        if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
    9942                         cRecompRuns++;
    99439944
    99449945                        /*
     
    1214112142                 * Iterate the test values and do the actual testing.
    1214212143                 */
    12143                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    12144                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     12144                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues * 2)
     12145                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    1214512146                    {
    1214612147                        unsigned       iEflVariation;
     
    1215312154
    1215412155                            if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, iEflVariation)) continue;
    12155                             cRecompRuns++;
    1215612156
    1215712157                            /*
     
    1247112471                 * Iterate the test values and do the actual testing.
    1247212472                 */
    12473                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    12474                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     12473                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues)
     12474                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    1247512475                    {
    1247612476                        uint16_t   cErrors;
     
    1247912479
    1248012480                        if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
    12481                         cRecompRuns++;
    1248212481
    1248312482                        /*
     
    1303913038                 * Iterate the test values and do the actual testing.
    1304013039                 */
    13041                 while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER * 2)
    13042                     for (iVal = 0; iVal < cValues; iVal++, idTestStep++)
     13040                while (cRecompRuns < BS3_THRESHOLD_NATIVE_RECOMPILER + cValues)
     13041                    for (iVal = 0; iVal < cValues; iVal++, idTestStep++, cRecompRuns++)
    1304313042                    {
    1304413043                        uint16_t   cErrors;
     
    1304713046
    1304813047                        if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
     13048
    1304913049                        /*
    1305013050                         * Set up the context and some expectations.
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