- Timestamp:
- Oct 1, 2009 2:14:29 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 53107
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r23484 r23485 854 854 855 855 856 /** @name Physical Access Handler State values (PGMPAGE::uHandlerPhysStateY). 856 /** Enabled optimized access handler tests. 857 * These optimizations makes ASSUMPTIONS about the state values and the u16MiscY 858 * layout. When enabled, the compiler should normally generate more compact 859 * code. 860 */ 861 #define PGM_PAGE_WITH_OPTIMIZED_HANDLER_ACCESS 1 862 863 /** @name Physical Access Handler State values (PGMPAGE::u2HandlerPhysStateY). 857 864 * 858 865 * @remarks The values are assigned in order of priority, so we can calculate … … 952 959 953 960 954 955 961 /** 956 962 * Checks if the page has any access handlers, including temporarily disabled ones. … … 958 964 * @param pPage Pointer to the physical guest page tracking structure. 959 965 */ 960 #define PGM_PAGE_HAS_ANY_HANDLERS(pPage) \ 966 #ifdef PGM_PAGE_WITH_OPTIMIZED_HANDLER_ACCESS 967 # define PGM_PAGE_HAS_ANY_HANDLERS(pPage) \ 968 ( ((pPage)->u16MiscY.u & UINT16_C(0x0303)) != 0 ) 969 #else 970 # define PGM_PAGE_HAS_ANY_HANDLERS(pPage) \ 961 971 ( PGM_PAGE_GET_HNDL_PHYS_STATE(pPage) != PGM_PAGE_HNDL_PHYS_STATE_NONE \ 962 972 || PGM_PAGE_GET_HNDL_VIRT_STATE(pPage) != PGM_PAGE_HNDL_VIRT_STATE_NONE ) 973 #endif 963 974 964 975 /** … … 967 978 * @param pPage Pointer to the physical guest page tracking structure. 968 979 */ 969 #define PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage) \ 980 #ifdef PGM_PAGE_WITH_OPTIMIZED_HANDLER_ACCESS 981 # define PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage) \ 982 ( ((pPage)->u16MiscY.u & UINT16_C(0x0202)) != 0 ) 983 #else 984 # define PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage) \ 970 985 ( PGM_PAGE_GET_HNDL_PHYS_STATE(pPage) >= PGM_PAGE_HNDL_PHYS_STATE_WRITE \ 971 986 || PGM_PAGE_GET_HNDL_VIRT_STATE(pPage) >= PGM_PAGE_HNDL_VIRT_STATE_WRITE ) 987 #endif 972 988 973 989 /** … … 976 992 * @param pPage Pointer to the physical guest page tracking structure. 977 993 */ 978 #define PGM_PAGE_HAS_ACTIVE_ALL_HANDLERS(pPage) \ 994 #ifdef PGM_PAGE_WITH_OPTIMIZED_HANDLER_ACCESS 995 # define PGM_PAGE_HAS_ACTIVE_ALL_HANDLERS(pPage) \ 996 ( ( ((pPage)->u16MiscY.au8[0] | (pPage)->u16MiscY.au8[1]) & UINT8_C(0x3) ) \ 997 == PGM_PAGE_HNDL_PHYS_STATE_ALL ) 998 #else 999 # define PGM_PAGE_HAS_ACTIVE_ALL_HANDLERS(pPage) \ 979 1000 ( PGM_PAGE_GET_HNDL_PHYS_STATE(pPage) == PGM_PAGE_HNDL_PHYS_STATE_ALL \ 980 1001 || PGM_PAGE_GET_HNDL_VIRT_STATE(pPage) == PGM_PAGE_HNDL_VIRT_STATE_ALL ) 1002 #endif 981 1003 982 1004 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r23284 r23485 393 393 if (RT_SUCCESS(rc)) /** just handle the failure immediate (it returns) and make things easier to read. */ 394 394 { 395 if ( PGM_PAGE_HAS_ACTIVE_PHYSICAL_HANDLERS(pPage) 396 || PGM_PAGE_HAS_ACTIVE_VIRTUAL_HANDLERS(pPage)) 395 if (PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage)) 397 396 { 398 397 if (PGM_PAGE_HAS_ANY_PHYSICAL_HANDLERS(pPage))
Note:
See TracChangeset
for help on using the changeset viewer.