| 1026 | } |
| 1027 | |
| 1028 | void memReset() |
| 1029 | { |
| 1030 | // Note!! Ideally the vtlb should only be initialized once, and then subsequent |
| 1031 | // resets of the system hardware would only clear vtlb mappings, but since the |
| 1032 | // rest of the emu is not really set up to support a "soft" reset of that sort |
| 1033 | // we opt for the hard/safe version. |
| 1034 | |
| 1035 | pxAssume( eeMem ); |
| 1036 | |
| 1037 | #ifdef ENABLECACHE |
| 1038 | memset(pCache,0,sizeof(_cacheS)*64); |
| 1039 | #endif |
| 1040 | |
| 1041 | vtlb_Init(); |
| 1042 | |
| 1043 | null_handler = vtlb_RegisterHandler(nullRead8, nullRead16, nullRead32, nullRead64, nullRead128, |
| 1044 | nullWrite8, nullWrite16, nullWrite32, nullWrite64, nullWrite128); |
| 1045 | |
| 1046 | tlb_fallback_0 = vtlb_RegisterHandlerTempl1(_ext_mem,0); |
| 1047 | tlb_fallback_3 = vtlb_RegisterHandlerTempl1(_ext_mem,3); |
| 1048 | tlb_fallback_4 = vtlb_RegisterHandlerTempl1(_ext_mem,4); |
| 1049 | tlb_fallback_5 = vtlb_RegisterHandlerTempl1(_ext_mem,5); |
| 1050 | tlb_fallback_7 = vtlb_RegisterHandlerTempl1(_ext_mem,7); |
| 1051 | tlb_fallback_8 = vtlb_RegisterHandlerTempl1(_ext_mem,8); |
| 1052 | iop_memory = vtlb_RegisterHandlerTempl1(_ext_mem,9); |
| 1053 | |
| 1054 | // Dynarec versions of VUs |
| 1055 | vu0_micro_mem = vtlb_RegisterHandlerTempl1(vuMicro,0); |
| 1056 | vu1_micro_mem = vtlb_RegisterHandlerTempl1(vuMicro,1); |
| 1057 | vu1_data_mem = (1||THREAD_VU1) ? vtlb_RegisterHandlerTempl1(vuData,1) : 0; |
| 1058 | |
| 1059 | ////////////////////////////////////////////////////////////////////////////////////////// |
| 1060 | // IOP's "secret" Hardware Register mapping, accessible from the EE (and meant for use |
| 1061 | // by debugging or BIOS only). The IOP's hw regs are divided into three main pages in |
| 1062 | // the 0x1f80 segment, and then another oddball page for CDVD in the 0x1f40 segment. |
| 1063 | // |
| 1064 | |
| 1065 | using namespace IopMemory; |
| 1066 | |
| 1067 | tlb_fallback_2 = vtlb_RegisterHandler( |
| 1068 | iopHwRead8_generic, iopHwRead16_generic, iopHwRead32_generic, _ext_memRead64<2>, _ext_memRead128<2>, |
| 1069 | iopHwWrite8_generic, iopHwWrite16_generic, iopHwWrite32_generic, _ext_memWrite64<2>, _ext_memWrite128<2> |
| 1070 | ); |
| 1071 | |
| 1072 | iopHw_by_page_01 = vtlb_RegisterHandler( |
| 1073 | iopHwRead8_Page1, iopHwRead16_Page1, iopHwRead32_Page1, _ext_memRead64<2>, _ext_memRead128<2>, |
| 1074 | iopHwWrite8_Page1, iopHwWrite16_Page1, iopHwWrite32_Page1, _ext_memWrite64<2>, _ext_memWrite128<2> |
| 1075 | ); |
| 1076 | |
| 1077 | iopHw_by_page_03 = vtlb_RegisterHandler( |
| 1078 | iopHwRead8_Page3, iopHwRead16_Page3, iopHwRead32_Page3, _ext_memRead64<2>, _ext_memRead128<2>, |
| 1079 | iopHwWrite8_Page3, iopHwWrite16_Page3, iopHwWrite32_Page3, _ext_memWrite64<2>, _ext_memWrite128<2> |
| 1080 | ); |
| 1081 | |
| 1082 | iopHw_by_page_08 = vtlb_RegisterHandler( |
| 1083 | iopHwRead8_Page8, iopHwRead16_Page8, iopHwRead32_Page8, _ext_memRead64<2>, _ext_memRead128<2>, |
| 1084 | iopHwWrite8_Page8, iopHwWrite16_Page8, iopHwWrite32_Page8, _ext_memWrite64<2>, _ext_memWrite128<2> |
| 1085 | ); |
no test coverage detected