This commit is contained in:
twinaphex 2016-09-28 02:16:02 +02:00
parent cfc4296756
commit 1eb23bfcab
2 changed files with 16 additions and 12 deletions

View File

@ -1055,19 +1055,23 @@ void invalidate_addr(u_int addr)
// This is called when loading a save state. // This is called when loading a save state.
// Anything could have changed, so invalidate everything. // Anything could have changed, so invalidate everything.
void invalidate_all_pages() void invalidate_all_pages(void)
{ {
u_int page; u_int page;
for(page=0;page<4096;page++) for(page=0;page<4096;page++)
invalidate_page(page); invalidate_page(page);
for(page=0;page<1048576;page++) for(page=0;page<1048576;page++)
if(!invalid_code[page]) { {
if(!invalid_code[page])
{
restore_candidate[(page&2047)>>3]|=1<<(page&7); restore_candidate[(page&2047)>>3]|=1<<(page&7);
restore_candidate[((page&2047)>>3)+256]|=1<<(page&7); restore_candidate[((page&2047)>>3)+256]|=1<<(page&7);
} }
#ifdef USE_MINI_HT }
#ifdef USE_MINI_HT
memset(mini_ht,-1,sizeof(mini_ht)); memset(mini_ht,-1,sizeof(mini_ht));
#endif #endif
} }
// Add an entry to jump_out after making a link // Add an entry to jump_out after making a link
@ -7026,7 +7030,7 @@ static int new_dynarec_test(void)
// clear the state completely, instead of just marking // clear the state completely, instead of just marking
// things invalid like invalidate_all_pages() does // things invalid like invalidate_all_pages() does
void new_dynarec_clear_full() void new_dynarec_clear_full(void)
{ {
int n; int n;
out=(u_char *)BASE_ADDR; out=(u_char *)BASE_ADDR;
@ -7047,7 +7051,7 @@ void new_dynarec_clear_full()
for(n=0;n<4096;n++) ll_clear(jump_dirty+n); for(n=0;n<4096;n++) ll_clear(jump_dirty+n);
} }
void new_dynarec_init() void new_dynarec_init(void)
{ {
SysPrintf("Init new dynarec\n"); SysPrintf("Init new dynarec\n");
@ -7103,7 +7107,7 @@ void new_dynarec_init()
SysPrintf("warning: RAM is not directly mapped, performance will suffer\n"); SysPrintf("warning: RAM is not directly mapped, performance will suffer\n");
} }
void new_dynarec_cleanup() void new_dynarec_cleanup(void)
{ {
int n; int n;
#if defined(BASE_ADDR_FIXED) || defined(BASE_ADDR_DYNAMIC) #if defined(BASE_ADDR_FIXED) || defined(BASE_ADDR_DYNAMIC)

View File

@ -11,12 +11,12 @@ extern int cycle_multiplier; // 100 for 1.0
#define NDHACK_GTE_NO_FLAGS (1<<2) #define NDHACK_GTE_NO_FLAGS (1<<2)
extern int new_dynarec_hacks; extern int new_dynarec_hacks;
void new_dynarec_init(); void new_dynarec_init(void);
void new_dynarec_cleanup(); void new_dynarec_cleanup(void);
void new_dynarec_clear_full(); void new_dynarec_clear_full(void);
void new_dyna_start(); void new_dyna_start(void);
int new_dynarec_save_blocks(void *save, int size); int new_dynarec_save_blocks(void *save, int size);
void new_dynarec_load_blocks(const void *save, int size); void new_dynarec_load_blocks(const void *save, int size);
void invalidate_all_pages(); void invalidate_all_pages(void);
void invalidate_block(unsigned int block); void invalidate_block(unsigned int block);