Dynarec: Force interpreter on pages that undergo excessive invalidation, improves % on TES Daggerfall and potentially other self-modifying code

This commit is contained in:
RichardG867
2025-12-13 16:45:04 -03:00
parent d0583d62d6
commit 791daafceb
4 changed files with 31 additions and 9 deletions

View File

@@ -320,6 +320,7 @@ extern void do_pause(int p);
extern double isa_timing;
extern int io_delay;
extern int framecountx;
extern int seconds_elapsed;
extern volatile int cpu_thread_run;
extern uint8_t postcard_codes[POSTCARDS_NUM];

View File

@@ -224,6 +224,9 @@ typedef struct page_t {
uint64_t *byte_dirty_mask;
uint64_t *byte_code_present_mask;
uint32_t inv_count;
uint32_t inv_timestamp;
} page_t;
extern uint32_t purgable_page_list_head;
@@ -250,6 +253,9 @@ typedef struct _page_ {
/*Head of codeblock tree associated with this page*/
struct codeblock_t *head;
uint32_t inv_count;
uint32_t inv_timestamp;
} page_t;
#endif