VirtualBox

Changeset 96751 in vbox


Ignore:
Timestamp:
Sep 15, 2022 6:14:30 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
153638
Message:

VMM/IEM: Implement [v]comiss/[v]ucomiss/[v]comisd/[v]ucomisd instructions, bugref:9898 [Use already existing IEM_MC_COMMIT_EFLAGS() instead of introducing another one]

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r96748 r96751  
    44634463            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    44644464        IEM_MC_ELSE()
    4465             IEM_MC_STORE_EFLAGS(fEFlags);
     4465            IEM_MC_COMMIT_EFLAGS(fEFlags);
    44664466        IEM_MC_ENDIF();
    44674467
     
    44954495            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    44964496        IEM_MC_ELSE()
    4497             IEM_MC_STORE_EFLAGS(fEFlags);
     4497            IEM_MC_COMMIT_EFLAGS(fEFlags);
    44984498        IEM_MC_ENDIF();
    44994499
     
    45324532            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    45334533        IEM_MC_ELSE()
    4534             IEM_MC_STORE_EFLAGS(fEFlags);
     4534            IEM_MC_COMMIT_EFLAGS(fEFlags);
    45354535        IEM_MC_ENDIF();
    45364536
     
    45644564            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    45654565        IEM_MC_ELSE()
    4566             IEM_MC_STORE_EFLAGS(fEFlags);
     4566            IEM_MC_COMMIT_EFLAGS(fEFlags);
    45674567        IEM_MC_ENDIF();
    45684568
     
    46054605            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    46064606        IEM_MC_ELSE()
    4607             IEM_MC_STORE_EFLAGS(fEFlags);
     4607            IEM_MC_COMMIT_EFLAGS(fEFlags);
    46084608        IEM_MC_ENDIF();
    46094609
     
    46374637            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    46384638        IEM_MC_ELSE()
    4639             IEM_MC_STORE_EFLAGS(fEFlags);
     4639            IEM_MC_COMMIT_EFLAGS(fEFlags);
    46404640        IEM_MC_ENDIF();
    46414641
     
    46744674            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    46754675        IEM_MC_ELSE()
    4676             IEM_MC_STORE_EFLAGS(fEFlags);
     4676            IEM_MC_COMMIT_EFLAGS(fEFlags);
    46774677        IEM_MC_ENDIF();
    46784678
     
    47064706            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    47074707        IEM_MC_ELSE()
    4708             IEM_MC_STORE_EFLAGS(fEFlags);
     4708            IEM_MC_COMMIT_EFLAGS(fEFlags);
    47094709        IEM_MC_ENDIF();
    47104710
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h

    r96750 r96751  
    23312331            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    23322332        IEM_MC_ELSE()
    2333             IEM_MC_STORE_EFLAGS(fEFlags);
     2333            IEM_MC_COMMIT_EFLAGS(fEFlags);
    23342334        IEM_MC_ENDIF();
    23352335
     
    23642364            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    23652365        IEM_MC_ELSE()
    2366             IEM_MC_STORE_EFLAGS(fEFlags);
     2366            IEM_MC_COMMIT_EFLAGS(fEFlags);
    23672367        IEM_MC_ENDIF();
    23682368
     
    24022402            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    24032403        IEM_MC_ELSE()
    2404             IEM_MC_STORE_EFLAGS(fEFlags);
     2404            IEM_MC_COMMIT_EFLAGS(fEFlags);
    24052405        IEM_MC_ENDIF();
    24062406
     
    24352435            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    24362436        IEM_MC_ELSE()
    2437             IEM_MC_STORE_EFLAGS(fEFlags);
     2437            IEM_MC_COMMIT_EFLAGS(fEFlags);
    24382438        IEM_MC_ENDIF();
    24392439
     
    24762476            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    24772477        IEM_MC_ELSE()
    2478             IEM_MC_STORE_EFLAGS(fEFlags);
     2478            IEM_MC_COMMIT_EFLAGS(fEFlags);
    24792479        IEM_MC_ENDIF();
    24802480
     
    25092509            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    25102510        IEM_MC_ELSE()
    2511             IEM_MC_STORE_EFLAGS(fEFlags);
     2511            IEM_MC_COMMIT_EFLAGS(fEFlags);
    25122512        IEM_MC_ENDIF();
    25132513
     
    25472547            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    25482548        IEM_MC_ELSE()
    2549             IEM_MC_STORE_EFLAGS(fEFlags);
     2549            IEM_MC_COMMIT_EFLAGS(fEFlags);
    25502550        IEM_MC_ENDIF();
    25512551
     
    25802580            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    25812581        IEM_MC_ELSE()
    2582             IEM_MC_STORE_EFLAGS(fEFlags);
     2582            IEM_MC_COMMIT_EFLAGS(fEFlags);
    25832583        IEM_MC_ENDIF();
    25842584
  • trunk/src/VBox/VMM/include/IEMMc.h

    r96748 r96751  
    314314#define IEM_MC_STORE_FPUREG_R80_SRC_REF(a_iSt, a_pr80Src) \
    315315    do { pVCpu->cpum.GstCtx.XState.x87.aRegs[a_iSt].r80 = *(a_pr80Src); } while (0)
    316 #define IEM_MC_STORE_EFLAGS(a_EFlags)                   pVCpu->cpum.GstCtx.eflags.u = (a_EFlags)
    317316
    318317
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r96748 r96751  
    658658#define IEM_MC_STORE_GREG_U64_CONST(a_iGReg, a_u64C)    do { AssertCompile((uint64_t)(a_u64C) == (a_u64C)); (void)fMcBegin; } while (0)
    659659#define IEM_MC_STORE_FPUREG_R80_SRC_REF(a_iSt, a_pr80Src) do { CHK_PTYPE(PCRTFLOAT80U, a_pr80Src); Assert((a_iSt) < 8); (void)fMcBegin; } while (0)
    660 #define IEM_MC_STORE_EFLAGS(a_EFlags)                   do { CHK_TYPE(uint32_t,  a_EFlags); (void)fMcBegin; } while (0)
    661660#define IEM_MC_CLEAR_HIGH_GREG_U64(a_iGReg)             do { (void)fMcBegin;  } while (0)
    662661#define IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(a_pu32Dst)    do { CHK_PTYPE(uint32_t *, a_pu32Dst); (void)fMcBegin; } while (0)
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