VirtualBox

Changeset 103945 in vbox for trunk


Ignore:
Timestamp:
Mar 20, 2024 10:54:39 AM (10 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement native emitters for IEM_MC_STORE_MEM_U128_NO_AC()/IEM_MC_STORE_MEM_FLAT_U128_NO_AC(), bugref:10614

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py

    r103944 r103945  
    33383338    'IEM_MC_STORE_MEM_NEG_QNAN_R80_BY_REF':                      (McBlock.parseMcGeneric,           True,  True,  False, ),
    33393339    'IEM_MC_STORE_MEM_U128':                                     (McBlock.parseMcGeneric,           True,  True,  False, ),
    3340     'IEM_MC_STORE_MEM_U128_NO_AC':                               (McBlock.parseMcGeneric,           True,  True,  False, ),
     3340    'IEM_MC_STORE_MEM_U128_NO_AC':                               (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    33413341    'IEM_MC_STORE_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    33423342    'IEM_MC_STORE_MEM_U16':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py

    r103942 r103945  
    194194    'IEM_MC_MEM_FLAT_MAP_U128_RW':                                       (None, True,  True,  True,  ),
    195195    'IEM_MC_STORE_MEM_FLAT_U128':                                        (None, True,  True,  False, ),
    196     'IEM_MC_STORE_MEM_FLAT_U128_NO_AC':                                  (None, True,  True,  False, ),
     196    'IEM_MC_STORE_MEM_FLAT_U128_NO_AC':                                  (None, True,  True,  g_fNativeSimd),
    197197    'IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE':                              (None, True,  True,  g_fNativeSimd),
    198198    'IEM_MC_STORE_MEM_FLAT_U16':                                         (None, True,  True,  True,  ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h

    r103944 r103945  
    47134713                               || pfnFunction == (uintptr_t)iemNativeHlpMemFlatFetchDataU128NoAc))
    47144714                       || (   enmOp == kIemNativeEmitMemOp_Store
    4715                            && (pfnFunction == (uintptr_t)iemNativeHlpMemFlatStoreDataU128AlignedSse)));
     4715                           && (   pfnFunction == (uintptr_t)iemNativeHlpMemFlatStoreDataU128AlignedSse
     4716                               || pfnFunction == (uintptr_t)iemNativeHlpMemFlatStoreDataU128NoAc)));
    47164717                break;
    47174718            case sizeof(RTUINT256U):
     
    47724773                               || pfnFunction == (uintptr_t)iemNativeHlpMemFetchDataU128NoAc))
    47734774                       || (   enmOp == kIemNativeEmitMemOp_Store
    4774                            && (pfnFunction == (uintptr_t)iemNativeHlpMemStoreDataU128AlignedSse)));
     4775                           && (   pfnFunction == (uintptr_t)iemNativeHlpMemStoreDataU128AlignedSse
     4776                               || pfnFunction == (uintptr_t)iemNativeHlpMemStoreDataU128NoAc)));
    47754777                break;
    47764778            case sizeof(RTUINT256U):
     
    55465548                                               (uintptr_t)iemNativeHlpMemStoreDataU128AlignedSse, pCallEntry->idxInstr)
    55475549
     5550# define IEM_MC_STORE_MEM_U128_NO_AC(a_iSeg, a_GCPtrMem, a_u128Value) \
     5551    off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u128Value, a_iSeg, a_GCPtrMem, \
     5552                                               sizeof(RTUINT128U), sizeof(RTUINT128U) - 1, kIemNativeEmitMemOp_Store, \
     5553                                               (uintptr_t)iemNativeHlpMemStoreDataU128NoAc, pCallEntry->idxInstr)
     5554
     5555
    55485556# define IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE(a_GCPtrMem, a_u128Value) \
    55495557    off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u128Value, UINT8_MAX, a_GCPtrMem, \
    55505558                                               sizeof(RTUINT128U), sizeof(RTUINT128U) - 1, kIemNativeEmitMemOp_Store, \
    55515559                                               (uintptr_t)iemNativeHlpMemFlatStoreDataU128AlignedSse, pCallEntry->idxInstr)
     5560
     5561# define IEM_MC_STORE_MEM_FLAT_U128_NO_AC(a_GCPtrMem, a_u128Value) \
     5562    off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u128Value, UINT8_MAX, a_GCPtrMem, \
     5563                                               sizeof(RTUINT128U), sizeof(RTUINT128U) - 1, kIemNativeEmitMemOp_Store, \
     5564                                               (uintptr_t)iemNativeHlpMemFlatStoreDataU128NoAc, pCallEntry->idxInstr)
     5565
    55525566#endif
    55535567
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