Changeset 108950 in vbox
- Timestamp:
- Apr 11, 2025 1:04:57 PM (9 days ago)
- svn:sync-xref-src-repo-rev:
- 168467
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllGst-armv8.cpp.h
r108943 r108950 191 191 * Template variants for actual paging modes. 192 192 */ 193 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_MINUS_ONE 0 194 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO 1 195 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE 2 196 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO 3 197 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE 4 198 #define PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID 5 199 193 200 194 201 /* … … 231 238 232 239 233 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >240 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 234 241 DECL_FORCE_INLINE(int) pgmGstWalkWorker(PVMCPUCC pVCpu, RTGCPTR GCPtr, PPGMPTWALK pWalk, PPGMPTWALKGST pGstWalk) 235 242 { … … 242 249 AssertCompile(ARMV8_TCR_EL1_AARCH64_TG0_64KB == ARMV8_TCR_EL1_AARCH64_TG1_64KB); 243 250 244 if RT_CONSTEXPR_IF(a_GranuleSz != ARMV8_TCR_EL1_AARCH64_TG0_INVALID) 251 if RT_CONSTEXPR_IF( a_GranuleSz != ARMV8_TCR_EL1_AARCH64_TG0_INVALID 252 && a_InitialLookupLvl != PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID) 245 253 { 246 254 uint64_t fLookupMaskFull; … … 319 327 ARMV8VMSA64DESC Desc; 320 328 int rc; 321 if RT_CONSTEXPR_IF(a_InitialLookupLvl == 0)329 if RT_CONSTEXPR_IF(a_InitialLookupLvl == PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO) 322 330 { 323 331 Assert(cLvl0Shift != 0); … … 340 348 } 341 349 342 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= 1)350 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE) 343 351 { 344 352 uint8_t const uLvl = 1; … … 372 380 } 373 381 374 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= 2)382 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO) 375 383 { 376 384 uint8_t const uLvl = 2; … … 399 407 } 400 408 401 AssertCompile(a_InitialLookupLvl <= 3);409 AssertCompile(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE); 402 410 uint8_t const uLvl = 3; 403 411 … … 423 431 424 432 425 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >433 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 426 434 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstGetPage)(PVMCPUCC pVCpu, RTGCPTR GCPtr, PPGMPTWALK pWalk) 427 435 { 428 return pgmGstWalkWorker<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >(pVCpu, GCPtr, pWalk, NULL /*pGstWalk*/);436 return pgmGstWalkWorker<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>(pVCpu, GCPtr, pWalk, NULL /*pGstWalk*/); 429 437 } 430 438 … … 610 618 611 619 612 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >620 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 613 621 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstQueryPageFast)(PVMCPUCC pVCpu, RTGCPTR GCPtr, uint32_t fFlags, PPGMPTWALKFAST pWalk) 614 622 { … … 621 629 pWalk->GCPtr = GCPtr; 622 630 623 if RT_CONSTEXPR_IF(a_GranuleSz != ARMV8_TCR_EL1_AARCH64_TG0_INVALID) 631 if RT_CONSTEXPR_IF( a_GranuleSz != ARMV8_TCR_EL1_AARCH64_TG0_INVALID 632 && a_InitialLookupLvl != PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID) 624 633 { 625 634 uint64_t fLookupMaskFull; … … 696 705 ARMV8VMSA64DESC Desc; 697 706 int rc; 698 if RT_CONSTEXPR_IF(a_InitialLookupLvl == 0)707 if RT_CONSTEXPR_IF(a_InitialLookupLvl == PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO) 699 708 { 700 709 Assert(cLvl0Shift != 0); … … 717 726 } 718 727 719 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= 1)728 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE) 720 729 { 721 730 uint8_t const uLvl = 1; … … 748 757 } 749 758 750 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= 2)759 if RT_CONSTEXPR_IF(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO) 751 760 { 752 761 uint8_t const uLvl = 2; … … 774 783 } 775 784 776 AssertCompile(a_InitialLookupLvl <= 3);785 AssertCompile(a_InitialLookupLvl <= PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE); 777 786 uint8_t const uLvl = 3; 778 787 … … 797 806 798 807 799 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >808 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 800 809 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstModifyPage)(PVMCPUCC pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask) 801 810 { … … 806 815 807 816 808 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >817 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 809 818 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstWalk)(PVMCPUCC pVCpu, RTGCPTR GCPtr, PPGMPTWALK pWalk, PPGMPTWALKGST pGstWalk) 810 819 { 811 820 pGstWalk->enmType = PGMPTWALKGSTTYPE_INVALID; 812 return pgmGstWalkWorker<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >(pVCpu, GCPtr, pWalk, pGstWalk);813 } 814 815 816 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >821 return pgmGstWalkWorker<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>(pVCpu, GCPtr, pWalk, pGstWalk); 822 } 823 824 825 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 817 826 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstEnter)(PVMCPUCC pVCpu) 818 827 { … … 823 832 824 833 825 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd >834 template<bool a_fTtbr0, uint8_t a_InitialLookupLvl, uint8_t a_GranuleSz, bool a_fTbi, bool a_fEpd, bool a_f52BitOa> 826 835 static PGM_CTX_DECL(int) PGM_CTX(pgm,GstExit)(PVMCPUCC pVCpu) 827 836 { … … 848 857 }, 849 858 850 #define PGM_MODE_TYPE_CREATE(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd) \ 851 (2 + ( (a_fEpd ? RT_BIT_32(6) : 0) \ 852 | (a_fTbi ? RT_BIT_32(5) : 0) \ 853 | (a_GranuleSz << 3) \ 859 #define PGM_MODE_TYPE_CREATE(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa) \ 860 (2 + ( (a_f52BitOa ? RT_BIT_32(8) : 0) \ 861 | (a_fEpd ? RT_BIT_32(7) : 0) \ 862 | (a_fTbi ? RT_BIT_32(6) : 0) \ 863 | (a_GranuleSz << 4) \ 854 864 | (a_InitialLookupLvl << 1) \ 855 865 | (a_fTtbr0 ? RT_BIT_32(0) : 0) )) 856 866 857 #define PGM_MODE_CREATE_EX(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd ) \867 #define PGM_MODE_CREATE_EX(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa) \ 858 868 { \ 859 PGM_MODE_TYPE_CREATE(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd ), \860 PGM_CTX(pgm,GstGetPage)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >, \861 PGM_CTX(pgm,GstQueryPageFast)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >, \862 PGM_CTX(pgm,GstModifyPage)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >, \863 PGM_CTX(pgm,GstWalk)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >, \864 PGM_CTX(pgm,GstEnter)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd >, \865 PGM_CTX(pgm,GstExit)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd > \869 PGM_MODE_TYPE_CREATE(a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa), \ 870 PGM_CTX(pgm,GstGetPage)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>, \ 871 PGM_CTX(pgm,GstQueryPageFast)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>, \ 872 PGM_CTX(pgm,GstModifyPage)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>, \ 873 PGM_CTX(pgm,GstWalk)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>, \ 874 PGM_CTX(pgm,GstEnter)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa>, \ 875 PGM_CTX(pgm,GstExit)<a_fTtbr0, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa> \ 866 876 } 867 877 868 #define PGM_MODE_CREATE_TTBR(a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd) \ 869 PGM_MODE_CREATE_EX(false, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd), \ 870 PGM_MODE_CREATE_EX(true, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd) 871 872 #define PGM_MODE_CREATE_LOOKUP_LVL(a_GranuleSz, a_fTbi, a_fEpd) \ 873 PGM_MODE_CREATE_TTBR(0, a_GranuleSz, a_fTbi, a_fEpd ), \ 874 PGM_MODE_CREATE_TTBR(1, a_GranuleSz, a_fTbi, a_fEpd ), \ 875 PGM_MODE_CREATE_TTBR(2, a_GranuleSz, a_fTbi, a_fEpd ), \ 876 PGM_MODE_CREATE_TTBR(3, a_GranuleSz, a_fTbi, a_fEpd ) /* Invalid */ 877 878 #define PGM_MODE_CREATE_GRANULE_SZ(a_fTbi, a_fEpd) \ 879 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_INVALID, a_fTbi, a_fEpd), \ 880 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_16KB, a_fTbi, a_fEpd), \ 881 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_4KB, a_fTbi, a_fEpd), \ 882 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_64KB, a_fTbi, a_fEpd) 883 884 #define PGM_MODE_CREATE_TBI(a_fEpd) \ 885 PGM_MODE_CREATE_GRANULE_SZ(false, a_fEpd), \ 886 PGM_MODE_CREATE_GRANULE_SZ(true, a_fEpd) 887 888 /* Recursive expansion for the win, this will blow up to 128 entries covering all possible modes. */ 889 PGM_MODE_CREATE_TBI(false), 890 PGM_MODE_CREATE_TBI(true) 891 878 #define PGM_MODE_CREATE_TTBR(a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa) \ 879 PGM_MODE_CREATE_EX(false, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa), \ 880 PGM_MODE_CREATE_EX(true, a_InitialLookupLvl, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa) 881 882 #define PGM_MODE_CREATE_LOOKUP_LVL(a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa) \ 883 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_MINUS_ONE, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa), \ 884 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), \ 885 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), \ 886 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), \ 887 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), \ 888 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), /* Filler for 3 bit lookup level */ \ 889 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ), /* Filler for 3 bit lookup level */ \ 890 PGM_MODE_CREATE_TTBR(PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_INVALID, a_GranuleSz, a_fTbi, a_fEpd, a_f52BitOa ) /* Filler for 3 bit lookup level */ 891 892 #define PGM_MODE_CREATE_GRANULE_SZ(a_fTbi, a_fEpd, a_f52BitOa) \ 893 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_INVALID, a_fTbi, a_fEpd, a_f52BitOa), \ 894 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_16KB, a_fTbi, a_fEpd, a_f52BitOa), \ 895 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_4KB, a_fTbi, a_fEpd, a_f52BitOa), \ 896 PGM_MODE_CREATE_LOOKUP_LVL(ARMV8_TCR_EL1_AARCH64_TG1_64KB, a_fTbi, a_fEpd, a_f52BitOa) 897 898 #define PGM_MODE_CREATE_TBI(a_fEpd, a_f52BitOa) \ 899 PGM_MODE_CREATE_GRANULE_SZ(false, a_fEpd, a_f52BitOa), \ 900 PGM_MODE_CREATE_GRANULE_SZ(true, a_fEpd, a_f52BitOa) 901 902 #define PGM_MODE_CREATE_EPD(a_f52BitOa) \ 903 PGM_MODE_CREATE_TBI(false, a_f52BitOa), \ 904 PGM_MODE_CREATE_TBI(true, a_f52BitOa) 905 906 /* Recursive expansion for the win, this will blow up to 512 entries covering all possible modes. */ 907 PGM_MODE_CREATE_EPD(false), 908 PGM_MODE_CREATE_EPD(true) 909 910 #undef PGM_MODE_CREATE_EPD 892 911 #undef PGM_MODE_CREATE_TBI 893 912 #undef PGM_MODE_CREATE_GRANULE_SZ … … 931 950 if (u64Tsz <= 16) 932 951 { 933 uLookupLvl = 0;952 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO; 934 953 *pfInitialLookupMask = 0x1; 935 954 } 936 955 else if (u64Tsz >= 17 && u64Tsz <= 27) 937 956 { 938 uLookupLvl = 1;957 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE; 939 958 *pfInitialLookupMask = RT_BIT_64(28 - u64Tsz + 1) - 1; 940 959 } 941 960 else if (u64Tsz >= 28 && u64Tsz <= 38) 942 961 { 943 uLookupLvl = 2;962 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO; 944 963 *pfInitialLookupMask = RT_BIT_64(38 - u64Tsz + 1) - 1; 945 964 } 946 965 else /* if (u64Tsz == 39) */ 947 966 { 948 uLookupLvl = 3;967 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE; 949 968 *pfInitialLookupMask = 0x1; 950 969 } … … 954 973 if (/*u64Tsz >= 16 &&*/ u64Tsz <= 21) 955 974 { 956 uLookupLvl = 1;975 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE; 957 976 *pfInitialLookupMask = RT_BIT_64(21 - u64Tsz + 1) - 1; 958 977 } 959 978 else if (u64Tsz >= 22 && u64Tsz <= 34) 960 979 { 961 uLookupLvl = 2;980 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO; 962 981 *pfInitialLookupMask = RT_BIT_64(34 - u64Tsz + 1) - 1; 963 982 } 964 983 else /*if (u64Tsz >= 35 && u64Tsz <= 39)*/ 965 984 { 966 uLookupLvl = 3;985 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_THREE; 967 986 if (u64Tsz <= 39) 968 987 *pfInitialLookupMask = RT_BIT_64(39 - u64Tsz + 1) - 1; … … 989 1008 if (/*u64Tsz >= 16 &&*/ u64Tsz <= 24) 990 1009 { 991 uLookupLvl = 0;1010 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ZERO; 992 1011 if (u64Tsz >= 16) 993 1012 *pfInitialLookupMask = RT_BIT_64(24 - u64Tsz + 1) - 1; … … 997 1016 else if (u64Tsz >= 25 && u64Tsz <= 33) 998 1017 { 999 uLookupLvl = 1;1018 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_ONE; 1000 1019 *pfInitialLookupMask = RT_BIT_64(33 - u64Tsz + 1) - 1; 1001 1020 } 1002 1021 else /*if (u64Tsz >= 34 && u64Tsz <= 39)*/ 1003 1022 { 1004 uLookupLvl = 2;1023 uLookupLvl = PGM_MODE_ARMV8_INITIAL_LOOKUP_LVL_TWO; 1005 1024 if (u64Tsz <= 39) 1006 1025 *pfInitialLookupMask = RT_BIT_64(39 - u64Tsz + 1) - 1; … … 1013 1032 1014 1033 /* Build the index into the PGM mode callback table for the given config. */ 1015 idxNewGst = PGM_MODE_TYPE_CREATE(a_fTtbr0, uLookupLvl, u64Tg, fTbi, fEpd );1034 idxNewGst = PGM_MODE_TYPE_CREATE(a_fTtbr0, uLookupLvl, u64Tg, fTbi, fEpd, false /*f53BitOa*/); 1016 1035 } 1017 1036 else -
trunk/src/VBox/VMM/include/PGMInternal.h
r108843 r108950 2877 2877 # endif 2878 2878 #elif defined(VBOX_VMM_TARGET_ARMV8) 2879 # define PGM_GUEST_MODE_DATA_ARRAY_SIZE ( 128+ 2) /** @todo Find a better way to express that. */2879 # define PGM_GUEST_MODE_DATA_ARRAY_SIZE (512 + 2) /** @todo Find a better way to express that. */ 2880 2880 #else 2881 2881 # error "Port me"
Note:
See TracChangeset
for help on using the changeset viewer.