VirtualBox

Changeset 105187 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jul 8, 2024 1:46:15 PM (7 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement vaddps instruction emulation, bugref:9898 [x86 build fix]

File:
1 edited

Legend:

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

    r105186 r105187  
    1560715607
    1560815608
     15609#ifdef IEM_WITHOUT_ASSEMBLY
    1560915610/**
    1561015611 * Helper for transfering exception to MXCSR and setting the result value
     
    1569315694    return fMxcsr | (fXcpt & X86_MXCSR_XCPT_FLAGS);
    1569415695}
     15696#endif
    1569515697
    1569615698
     
    1584115843
    1584215844
     15845#ifdef IEM_WITHOUT_ASSEMBLY
    1584315846/**
    1584415847 * Validates the given single input operand returning whether the operation can continue or whether
     
    1589915902    return false;
    1590015903}
     15904#endif
    1590115905
    1590215906
     
    1596815972 * ADDPD
    1596915973 */
    15970 #ifdef IEM_WITHOUT_ASSEMBLY
    1597115974static uint32_t iemAImpl_addpd_u128_worker(PRTFLOAT64U pr64Res, uint32_t fMxcsr, PCRTFLOAT64U pr64Val1, PCRTFLOAT64U pr64Val2)
    1597215975{
     
    1598315986
    1598415987
     15988#ifdef IEM_WITHOUT_ASSEMBLY
    1598515989IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_addpd_u128,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2))
    1598615990{
     
    1598915993}
    1599015994#endif
     15995
     15996
     15997IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vaddpd_u128_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2))
     15998{
     15999    return   iemAImpl_addpd_u128_worker(&pResult->ar64[0], uMxCsrIn, &puSrc1->ar64[0], &puSrc2->ar64[0])
     16000           | iemAImpl_addpd_u128_worker(&pResult->ar64[1], uMxCsrIn, &puSrc1->ar64[1], &puSrc2->ar64[1]);
     16001}
     16002
     16003
     16004IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vaddpd_u256_fallback,(uint32_t uMxCsrIn, PX86YMMREG pResult, PCX86YMMREG puSrc1, PCX86YMMREG puSrc2))
     16005{
     16006    return   iemAImpl_addpd_u128_worker(&pResult->ar64[0], uMxCsrIn, &puSrc1->ar64[0], &puSrc2->ar64[0])
     16007           | iemAImpl_addpd_u128_worker(&pResult->ar64[1], uMxCsrIn, &puSrc1->ar64[1], &puSrc2->ar64[1])
     16008           | iemAImpl_addpd_u128_worker(&pResult->ar64[2], uMxCsrIn, &puSrc1->ar64[2], &puSrc2->ar64[2])
     16009           | iemAImpl_addpd_u128_worker(&pResult->ar64[3], uMxCsrIn, &puSrc1->ar64[3], &puSrc2->ar64[3]);
     16010}
    1599116011
    1599216012
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