VirtualBox

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


Ignore:
Timestamp:
Feb 10, 2012 12:21:23 AM (13 years ago)
Author:
vboxsync
Message:

fpu explorations.

Location:
trunk/src/VBox/VMM/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/testcase/tstX86-1.cpp

    r40024 r40057  
    7171DECLASM(int32_t) x861_Test4(void);
    7272DECLASM(int32_t) x861_Test5(void);
     73DECLASM(int32_t) x861_Test6(void);
    7374
    7475
     
    233234        if (rc != 0)
    234235            RTTestFailed(hTest, "x861_Test3 -> %d", rc);
     236
    235237        RTTestSub(hTest, "Multibyte NOPs");
    236238        rc = x861_Test4();
    237239        if (rc != 0)
    238240            RTTestFailed(hTest, "x861_Test4 -> %d", rc);
     241
    239242        RTTestSub(hTest, "Odd floating point encodings");
    240 #endif
    241243        rc = x861_Test5();
    242244        if (rc != 0)
    243245            RTTestFailed(hTest, "x861_Test5 -> %d", rc);
     246#endif
     247
     248        RTTestSub(hTest, "Floating point exceptions ++");
     249        rc = x861_Test6();
     250        if (rc != 0)
     251            RTTestFailed(hTest, "x861_Test6 -> %d", rc);
    244252    }
    245253
  • trunk/src/VBox/VMM/testcase/tstX86-1A.asm

    r40037 r40057  
    5757%define X86_XCPT_GP     13
    5858%define X86_XCPT_PF     14
     59%define X86_XCPT_MF     16
    5960
    6061%define PAGE_SIZE       0x1000
     
    13351336
    13361337;;
     1338; Tests some floating point exceptions and such.
     1339;
     1340BEGINPROC   x861_Test6
     1341        SAVE_ALL_PROLOGUE
     1342        sub     xSP, 1024
     1343
     1344        ; stack overflow
     1345        fninit
     1346        ;mov     dword [xSP], 037fh
     1347        mov     dword [xSP], 0300h
     1348        fldcw   [xSP]
     1349        fld dword REF(.r32V1)
     1350        fld dword REF(.r32V1)
     1351        fld dword REF(.r32V1)
     1352        fld dword REF(.r32V1)
     1353        fld dword REF(.r32V1)
     1354        fld dword REF(.r32V1)
     1355        fld dword REF(.r32V1)
     1356        fld dword REF(.r32V1)
     1357        fwait
     1358
     1359        fld dword REF(.r32V1)
     1360        ShouldTrap X86_XCPT_MF, fwait
     1361        fnstenv [xSP]
     1362        and     word [xSP + 4], ~07fh
     1363        fldenv  [xSP]
     1364
     1365        fld dword REF(.r32V1)
     1366        ShouldTrap X86_XCPT_MF, fwait
     1367
     1368
     1369.success:
     1370        xor     eax, eax
     1371.return:
     1372        add     xSP, 1024
     1373        SAVE_ALL_EPILOGUE
     1374        ret
     1375
     1376.r32V1: dd 3.2
     1377.r64V1: dq 6.4
     1378.r80V1: dt 8.0
     1379
     1380ENDPROC     x861_Test6
     1381
     1382
     1383;;
    13371384; Terminate the trap info array with a NIL entry.
    13381385BEGINDATA
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