Changeset 108294 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Feb 19, 2025 2:12:24 PM (2 months ago)
- svn:sync-xref-src-repo-rev:
- 167638
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r108288 r108294 3417 3417 'IEM_MC_STORE_GREG_PAIR_U32': (McBlock.parseMcGeneric, True, True, False, ), 3418 3418 'IEM_MC_STORE_GREG_PAIR_U64': (McBlock.parseMcGeneric, True, True, g_fNativeSimd), 3419 'IEM_MC_STORE_MEM_ I16_CONST_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3420 'IEM_MC_STORE_MEM_ I32_CONST_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3421 'IEM_MC_STORE_MEM_ I64_CONST_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3422 'IEM_MC_STORE_MEM_ I8_CONST_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3423 'IEM_MC_STORE_MEM_ INDEF_D80_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3424 'IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3425 'IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3426 'IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF': (McBlock.parseMcGeneric, True, True, False, ),3419 'IEM_MC_STORE_MEM_BY_REF_I16_CONST': (McBlock.parseMcGeneric, True, True, False, ), 3420 'IEM_MC_STORE_MEM_BY_REF_I32_CONST': (McBlock.parseMcGeneric, True, True, False, ), 3421 'IEM_MC_STORE_MEM_BY_REF_I64_CONST': (McBlock.parseMcGeneric, True, True, False, ), 3422 'IEM_MC_STORE_MEM_BY_REF_I8_CONST': (McBlock.parseMcGeneric, True, True, False, ), 3423 'IEM_MC_STORE_MEM_BY_REF_D80_INDEF': (McBlock.parseMcGeneric, True, True, False, ), 3424 'IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN': (McBlock.parseMcGeneric, True, True, False, ), 3425 'IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN': (McBlock.parseMcGeneric, True, True, False, ), 3426 'IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN': (McBlock.parseMcGeneric, True, True, False, ), 3427 3427 'IEM_MC_STORE_MEM_U128': (McBlock.parseMcGeneric, True, True, False, ), 3428 3428 'IEM_MC_STORE_MEM_U128_NO_AC': (McBlock.parseMcGeneric, True, True, g_fNativeSimd), -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py
r108288 r108294 1767 1767 'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64': '__mem128', 1768 1768 1769 'IEM_MC_STORE_MEM_ I16_CONST_BY_REF': '__mem16',1770 'IEM_MC_STORE_MEM_ I32_CONST_BY_REF': '__mem32',1771 'IEM_MC_STORE_MEM_ I64_CONST_BY_REF': '__mem64',1772 'IEM_MC_STORE_MEM_ I8_CONST_BY_REF': '__mem8',1773 'IEM_MC_STORE_MEM_ INDEF_D80_BY_REF': '__mem80',1774 'IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF': '__mem32',1775 'IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF': '__mem64',1776 'IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF': '__mem80',1769 'IEM_MC_STORE_MEM_BY_REF_I16_CONST': '__mem16', 1770 'IEM_MC_STORE_MEM_BY_REF_I32_CONST': '__mem32', 1771 'IEM_MC_STORE_MEM_BY_REF_I64_CONST': '__mem64', 1772 'IEM_MC_STORE_MEM_BY_REF_I8_CONST': '__mem8', 1773 'IEM_MC_STORE_MEM_BY_REF_D80_INDEF': '__mem80', 1774 'IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN': '__mem32', 1775 'IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN': '__mem64', 1776 'IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN': '__mem80', 1777 1777 'IEM_MC_STORE_MEM_U128': '__mem128', 1778 1778 'IEM_MC_STORE_MEM_U128_ALIGN_SSE': '__mem128', -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstOneByte-x86.cpp.h
r108288 r108294 10950 10950 } IEM_MC_ELSE() { 10951 10951 IEM_MC_IF_FCW_IM() { 10952 IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF(pr32Dst);10952 IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN(pr32Dst); 10953 10953 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 10954 10954 } IEM_MC_ELSE() { … … 10989 10989 } IEM_MC_ELSE() { 10990 10990 IEM_MC_IF_FCW_IM() { 10991 IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF(pr32Dst);10991 IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN(pr32Dst); 10992 10992 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 10993 10993 } IEM_MC_ELSE() { … … 12078 12078 } IEM_MC_ELSE() { 12079 12079 IEM_MC_IF_FCW_IM() { 12080 IEM_MC_STORE_MEM_ I32_CONST_BY_REF(pi32Dst, INT32_MIN /* (integer indefinite) */);12080 IEM_MC_STORE_MEM_BY_REF_I32_CONST(pi32Dst, INT32_MIN /* (integer indefinite) */); 12081 12081 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12082 12082 } IEM_MC_ELSE() { … … 12117 12117 } IEM_MC_ELSE() { 12118 12118 IEM_MC_IF_FCW_IM() { 12119 IEM_MC_STORE_MEM_ I32_CONST_BY_REF(pi32Dst, INT32_MIN /* (integer indefinite) */);12119 IEM_MC_STORE_MEM_BY_REF_I32_CONST(pi32Dst, INT32_MIN /* (integer indefinite) */); 12120 12120 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12121 12121 } IEM_MC_ELSE() { … … 12156 12156 } IEM_MC_ELSE() { 12157 12157 IEM_MC_IF_FCW_IM() { 12158 IEM_MC_STORE_MEM_ I32_CONST_BY_REF(pi32Dst, INT32_MIN /* (integer indefinite) */);12158 IEM_MC_STORE_MEM_BY_REF_I32_CONST(pi32Dst, INT32_MIN /* (integer indefinite) */); 12159 12159 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12160 12160 } IEM_MC_ELSE() { … … 12227 12227 } IEM_MC_ELSE() { 12228 12228 IEM_MC_IF_FCW_IM() { 12229 IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF(pr80Dst);12229 IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN(pr80Dst); 12230 12230 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12231 12231 } IEM_MC_ELSE() { … … 12822 12822 } IEM_MC_ELSE() { 12823 12823 IEM_MC_IF_FCW_IM() { 12824 IEM_MC_STORE_MEM_ I64_CONST_BY_REF(pi64Dst, INT64_MIN /* (integer indefinite) */);12824 IEM_MC_STORE_MEM_BY_REF_I64_CONST(pi64Dst, INT64_MIN /* (integer indefinite) */); 12825 12825 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12826 12826 } IEM_MC_ELSE() { … … 12861 12861 } IEM_MC_ELSE() { 12862 12862 IEM_MC_IF_FCW_IM() { 12863 IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF(pr64Dst);12863 IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN(pr64Dst); 12864 12864 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12865 12865 } IEM_MC_ELSE() { … … 12902 12902 } IEM_MC_ELSE() { 12903 12903 IEM_MC_IF_FCW_IM() { 12904 IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF(pr64Dst);12904 IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN(pr64Dst); 12905 12905 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 12906 12906 } IEM_MC_ELSE() { … … 13444 13444 } IEM_MC_ELSE() { 13445 13445 IEM_MC_IF_FCW_IM() { 13446 IEM_MC_STORE_MEM_ I16_CONST_BY_REF(pi16Dst, INT16_MIN /* (integer indefinite) */);13446 IEM_MC_STORE_MEM_BY_REF_I16_CONST(pi16Dst, INT16_MIN /* (integer indefinite) */); 13447 13447 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 13448 13448 } IEM_MC_ELSE() { … … 13483 13483 } IEM_MC_ELSE() { 13484 13484 IEM_MC_IF_FCW_IM() { 13485 IEM_MC_STORE_MEM_ I16_CONST_BY_REF(pi16Dst, INT16_MIN /* (integer indefinite) */);13485 IEM_MC_STORE_MEM_BY_REF_I16_CONST(pi16Dst, INT16_MIN /* (integer indefinite) */); 13486 13486 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 13487 13487 } IEM_MC_ELSE() { … … 13522 13522 } IEM_MC_ELSE() { 13523 13523 IEM_MC_IF_FCW_IM() { 13524 IEM_MC_STORE_MEM_ I16_CONST_BY_REF(pi16Dst, INT16_MIN /* (integer indefinite) */);13524 IEM_MC_STORE_MEM_BY_REF_I16_CONST(pi16Dst, INT16_MIN /* (integer indefinite) */); 13525 13525 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 13526 13526 } IEM_MC_ELSE() { … … 13625 13625 } IEM_MC_ELSE() { 13626 13626 IEM_MC_IF_FCW_IM() { 13627 IEM_MC_STORE_MEM_ INDEF_D80_BY_REF(pd80Dst);13627 IEM_MC_STORE_MEM_BY_REF_D80_INDEF(pd80Dst); 13628 13628 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 13629 13629 } IEM_MC_ELSE() { … … 13664 13664 } IEM_MC_ELSE() { 13665 13665 IEM_MC_IF_FCW_IM() { 13666 IEM_MC_STORE_MEM_ I64_CONST_BY_REF(pi64Dst, INT64_MIN /* (integer indefinite) */);13666 IEM_MC_STORE_MEM_BY_REF_I64_CONST(pi64Dst, INT64_MIN /* (integer indefinite) */); 13667 13667 IEM_MC_MEM_COMMIT_AND_UNMAP_WO(bUnmapInfo); 13668 13668 } IEM_MC_ELSE() { -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veLiveness-x86.h
r108288 r108294 975 975 #define IEM_MC_STORE_MEM_FLAT_U64_CONST(a_GCPtrMem, a_u64C) IEM_LIVENESS_MEM_FLAT() 976 976 977 #define IEM_MC_STORE_MEM_ I8_CONST_BY_REF( a_pi8Dst, a_i8C) NOP()978 #define IEM_MC_STORE_MEM_ I16_CONST_BY_REF(a_pi16Dst, a_i16C) NOP()979 #define IEM_MC_STORE_MEM_ I32_CONST_BY_REF(a_pi32Dst, a_i32C) NOP()980 #define IEM_MC_STORE_MEM_ I64_CONST_BY_REF(a_pi64Dst, a_i64C) NOP()981 #define IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF(a_pr32Dst) NOP()982 #define IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF(a_pr64Dst) NOP()983 #define IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF(a_pr80Dst) NOP()984 #define IEM_MC_STORE_MEM_ INDEF_D80_BY_REF(a_pd80Dst) NOP()977 #define IEM_MC_STORE_MEM_BY_REF_I8_CONST( a_pi8Dst, a_i8C) NOP() 978 #define IEM_MC_STORE_MEM_BY_REF_I16_CONST(a_pi16Dst, a_i16C) NOP() 979 #define IEM_MC_STORE_MEM_BY_REF_I32_CONST(a_pi32Dst, a_i32C) NOP() 980 #define IEM_MC_STORE_MEM_BY_REF_I64_CONST(a_pi64Dst, a_i64C) NOP() 981 #define IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN(a_pr32Dst) NOP() 982 #define IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN(a_pr64Dst) NOP() 983 #define IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN(a_pr80Dst) NOP() 984 #define IEM_MC_STORE_MEM_BY_REF_D80_INDEF(a_pd80Dst) NOP() 985 985 986 986 #define IEM_MC_STORE_MEM_U128(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_SEG(a_iSeg) -
trunk/src/VBox/VMM/include/IEMMc.h
r108288 r108294 1315 1315 iemMemFlatStoreDataU64Jmp(pVCpu, (a_GCPtrMem), (a_u64C)) 1316 1316 1317 #define IEM_MC_STORE_MEM_ I8_CONST_BY_REF( a_pi8Dst, a_i8C) *(a_pi8Dst) = (a_i8C)1318 #define IEM_MC_STORE_MEM_ I16_CONST_BY_REF(a_pi16Dst, a_i16C) *(a_pi16Dst) = (a_i16C)1319 #define IEM_MC_STORE_MEM_ I32_CONST_BY_REF(a_pi32Dst, a_i32C) *(a_pi32Dst) = (a_i32C)1320 #define IEM_MC_STORE_MEM_ I64_CONST_BY_REF(a_pi64Dst, a_i64C) *(a_pi64Dst) = (a_i64C)1321 #define IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF(a_pr32Dst) (a_pr32Dst)->u = UINT32_C(0xffc00000)1322 #define IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF(a_pr64Dst) (a_pr64Dst)->u = UINT64_C(0xfff8000000000000)1323 #define IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF(a_pr80Dst) \1317 #define IEM_MC_STORE_MEM_BY_REF_I8_CONST( a_pi8Dst, a_i8C) *(a_pi8Dst) = (a_i8C) 1318 #define IEM_MC_STORE_MEM_BY_REF_I16_CONST(a_pi16Dst, a_i16C) *(a_pi16Dst) = (a_i16C) 1319 #define IEM_MC_STORE_MEM_BY_REF_I32_CONST(a_pi32Dst, a_i32C) *(a_pi32Dst) = (a_i32C) 1320 #define IEM_MC_STORE_MEM_BY_REF_I64_CONST(a_pi64Dst, a_i64C) *(a_pi64Dst) = (a_i64C) 1321 #define IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN(a_pr32Dst) (a_pr32Dst)->u = UINT32_C(0xffc00000) 1322 #define IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN(a_pr64Dst) (a_pr64Dst)->u = UINT64_C(0xfff8000000000000) 1323 #define IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN(a_pr80Dst) \ 1324 1324 do { \ 1325 1325 (a_pr80Dst)->au64[0] = UINT64_C(0xc000000000000000); \ 1326 1326 (a_pr80Dst)->au16[4] = UINT16_C(0xffff); \ 1327 1327 } while (0) 1328 #define IEM_MC_STORE_MEM_ INDEF_D80_BY_REF(a_pd80Dst) \1328 #define IEM_MC_STORE_MEM_BY_REF_D80_INDEF(a_pd80Dst) \ 1329 1329 do { \ 1330 1330 (a_pd80Dst)->au64[0] = UINT64_C(0xc000000000000000); \ -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r108288 r108294 964 964 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint32_t const uTmp = (a_u32C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 965 965 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint64_t const uTmp = (a_u64C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 966 #define IEM_MC_STORE_MEM_ I8_CONST_BY_REF( a_pi8Dst, a_i8C) do { CHK_VAR(a_pi8Dst); CHK_TYPE(int8_t *, a_pi8Dst); CHK_CONST(int8_t, a_i8C); (void)fMcBegin; } while (0)967 #define IEM_MC_STORE_MEM_ I16_CONST_BY_REF(a_pi16Dst, a_i16C) do { CHK_VAR(a_pi16Dst); CHK_TYPE(int16_t *, a_pi16Dst); CHK_CONST(int16_t, a_i16C); (void)fMcBegin; } while (0)968 #define IEM_MC_STORE_MEM_ I32_CONST_BY_REF(a_pi32Dst, a_i32C) do { CHK_VAR(a_pi32Dst); CHK_TYPE(int32_t *, a_pi32Dst); CHK_CONST(int32_t, a_i32C); (void)fMcBegin; } while (0)969 #define IEM_MC_STORE_MEM_ I64_CONST_BY_REF(a_pi64Dst, a_i64C) do { CHK_VAR(a_pi64Dst); CHK_TYPE(int64_t *, a_pi64Dst); CHK_CONST(int64_t, a_i64C); (void)fMcBegin; } while (0)970 #define IEM_MC_STORE_MEM_ NEG_QNAN_R32_BY_REF(a_pr32Dst) do { CHK_VAR(a_pr32Dst); CHK_TYPE(PRTFLOAT32U, a_pr32Dst); (void)fMcBegin; } while (0)971 #define IEM_MC_STORE_MEM_ NEG_QNAN_R64_BY_REF(a_pr64Dst) do { CHK_VAR(a_pr64Dst); CHK_TYPE(PRTFLOAT64U, a_pr64Dst); (void)fMcBegin; } while (0)972 #define IEM_MC_STORE_MEM_ NEG_QNAN_R80_BY_REF(a_pr80Dst) do { CHK_VAR(a_pr80Dst); CHK_TYPE(PRTFLOAT80U, a_pr80Dst); (void)fMcBegin; } while (0)973 #define IEM_MC_STORE_MEM_ INDEF_D80_BY_REF(a_pd80Dst) do { CHK_VAR(a_pd80Dst); CHK_TYPE(PRTPBCD80U, a_pd80Dst); (void)fMcBegin; } while (0)966 #define IEM_MC_STORE_MEM_BY_REF_I8_CONST( a_pi8Dst, a_i8C) do { CHK_VAR(a_pi8Dst); CHK_TYPE(int8_t *, a_pi8Dst); CHK_CONST(int8_t, a_i8C); (void)fMcBegin; } while (0) 967 #define IEM_MC_STORE_MEM_BY_REF_I16_CONST(a_pi16Dst, a_i16C) do { CHK_VAR(a_pi16Dst); CHK_TYPE(int16_t *, a_pi16Dst); CHK_CONST(int16_t, a_i16C); (void)fMcBegin; } while (0) 968 #define IEM_MC_STORE_MEM_BY_REF_I32_CONST(a_pi32Dst, a_i32C) do { CHK_VAR(a_pi32Dst); CHK_TYPE(int32_t *, a_pi32Dst); CHK_CONST(int32_t, a_i32C); (void)fMcBegin; } while (0) 969 #define IEM_MC_STORE_MEM_BY_REF_I64_CONST(a_pi64Dst, a_i64C) do { CHK_VAR(a_pi64Dst); CHK_TYPE(int64_t *, a_pi64Dst); CHK_CONST(int64_t, a_i64C); (void)fMcBegin; } while (0) 970 #define IEM_MC_STORE_MEM_BY_REF_R32_NEG_QNAN(a_pr32Dst) do { CHK_VAR(a_pr32Dst); CHK_TYPE(PRTFLOAT32U, a_pr32Dst); (void)fMcBegin; } while (0) 971 #define IEM_MC_STORE_MEM_BY_REF_R64_NEG_QNAN(a_pr64Dst) do { CHK_VAR(a_pr64Dst); CHK_TYPE(PRTFLOAT64U, a_pr64Dst); (void)fMcBegin; } while (0) 972 #define IEM_MC_STORE_MEM_BY_REF_R80_NEG_QNAN(a_pr80Dst) do { CHK_VAR(a_pr80Dst); CHK_TYPE(PRTFLOAT80U, a_pr80Dst); (void)fMcBegin; } while (0) 973 #define IEM_MC_STORE_MEM_BY_REF_D80_INDEF(a_pd80Dst) do { CHK_VAR(a_pd80Dst); CHK_TYPE(PRTPBCD80U, a_pd80Dst); (void)fMcBegin; } while (0) 974 974 #define IEM_MC_STORE_MEM_U128(a_iSeg, a_GCPtrMem, a_u128Src) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Src); CHK_TYPE(RTUINT128U, a_u128Src); (void)fMcBegin; } while (0) 975 975 #define IEM_MC_STORE_MEM_U128_NO_AC(a_iSeg, a_GCPtrMem, a_u128Src) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Src); CHK_TYPE(RTUINT128U, a_u128Src); (void)fMcBegin; } while (0)
Note:
See TracChangeset
for help on using the changeset viewer.