VirtualBox

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


Ignore:
Timestamp:
Feb 5, 2012 9:30:40 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76112
Message:

IEM: Filled in some NOPs and PREFETCHes.

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

Legend:

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

    r39970 r40001  
    112112#define IEM_IS_REAL_MODE(a_pIemCpu)                         (g_fRandom)
    113113#define IEM_IS_AMD_CPUID_FEATURE_PRESENT_ECX(a_fEcx)        (g_fRandom)
     114#define IEM_IS_AMD_CPUID_FEATURE_PRESENT_EDX(a_fEdx)        (g_fRandom)
     115#define IEM_IS_AMD_CPUID_FEATURES_ANY_PRESENT(a_fEdx, a_fEcx) (g_fRandom)
    114116#define IEM_IS_INTEL_CPUID_FEATURE_PRESENT_EDX(a_fEdx)      (g_fRandom)
    115117
  • trunk/src/VBox/VMM/testcase/tstX86-1.cpp

    r39999 r40001  
    6969DECLASM(int32_t) x861_Test2(void);
    7070DECLASM(int32_t) x861_Test3(void);
     71DECLASM(int32_t) x861_Test4(void);
    7172
    7273
     
    227228            RTTestFailed(hTest, "x861_Test2 -> %d", rc);
    228229
    229 #endif
    230230        RTTestSub(hTest, "fxsave / fxrstor and #PFs");
    231231        rc = x861_Test3();
    232232        if (rc != 0)
    233233            RTTestFailed(hTest, "x861_Test3 -> %d", rc);
     234#endif
     235        RTTestSub(hTest, "Multibyte NOPs");
     236        rc = x861_Test4();
     237        if (rc != 0)
     238            RTTestFailed(hTest, "x861_Test4 -> %d", rc);
    234239    }
    235240
  • trunk/src/VBox/VMM/testcase/tstX86-1A.asm

    r39998 r40001  
    12191219
    12201220;;
     1221; Tests various multibyte NOP sequences.
     1222;
     1223BEGINPROC   x861_Test4
     1224        SAVE_ALL_PROLOGUE
     1225        call    x861_ClearRegisters
     1226
     1227        ; Intel recommended sequences.
     1228        nop
     1229        db 066h, 090h
     1230        db 00fh, 01fh, 000h
     1231        db 00fh, 01fh, 040h, 000h
     1232        db 00fh, 01fh, 044h, 000h, 000h
     1233        db 066h, 00fh, 01fh, 044h, 000h, 000h
     1234        db 00fh, 01fh, 080h, 000h, 000h, 000h, 000h
     1235        db 00fh, 01fh, 084h, 000h, 000h, 000h, 000h, 000h
     1236        db 066h, 00fh, 01fh, 084h, 000h, 000h, 000h, 000h, 000h
     1237
     1238        ; Check that the NOPs are allergic to lock prefixing.
     1239        ShouldTrap X86_XCPT_UD, db 0f0h, 090h               ; lock prefixed NOP.
     1240        ShouldTrap X86_XCPT_UD, db 0f0h, 066h, 090h         ; lock prefixed two byte NOP.
     1241        ShouldTrap X86_XCPT_UD, db 0f0h, 00fh, 01fh, 000h   ; lock prefixed three byte NOP.
     1242
     1243        ; Check the range of instructions that AMD marks as NOPs.
     1244%macro TST_NOP 1
     1245        db 00fh, %1, 000h
     1246        db 00fh, %1, 040h, 000h
     1247        db 00fh, %1, 044h, 000h, 000h
     1248        db 066h, 00fh, %1, 044h, 000h, 000h
     1249        db 00fh, %1, 080h, 000h, 000h, 000h, 000h
     1250        db 00fh, %1, 084h, 000h, 000h, 000h, 000h, 000h
     1251        db 066h, 00fh, %1, 084h, 000h, 000h, 000h, 000h, 000h
     1252        ShouldTrap X86_XCPT_UD, db 0f0h, 00fh, %1, 000h
     1253%endmacro
     1254        TST_NOP 019h
     1255        TST_NOP 01ah
     1256        TST_NOP 01bh
     1257        TST_NOP 01ch
     1258        TST_NOP 01dh
     1259        TST_NOP 01eh
     1260        TST_NOP 01fh
     1261
     1262        ; The AMD P group, intel marks this as a NOP.
     1263        TST_NOP 00dh
     1264
     1265.success:
     1266        xor     eax, eax
     1267.return:
     1268        SAVE_ALL_EPILOGUE
     1269        ret
     1270ENDPROC     x861_Test4
     1271
     1272;;
    12211273; Terminate the trap info array with a NIL entry.
    12221274BEGINDATA
Note: See TracChangeset for help on using the changeset viewer.

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