summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7c404fb)
untested, may break 3DS, if it happens please report
end_tcache_write(start, out);
}
end_tcache_write(start, out);
}
+#ifdef NDRC_CACHE_FLUSH_ALL
+
+static int needs_clear_cache;
+
+static void mark_clear_cache(void *target)
+{
+ if (!needs_clear_cache) {
+ start_tcache_write(ndrc, ndrc + 1);
+ needs_clear_cache = 1;
+ }
+}
+
+static void do_clear_cache(void)
+{
+ if (needs_clear_cache) {
+ end_tcache_write(ndrc, ndrc + 1);
+ needs_clear_cache = 0;
+ }
+}
+
+#else
+
// also takes care of w^x mappings when patching code
static u_int needs_clear_cache[1<<(TARGET_SIZE_2-17)];
// also takes care of w^x mappings when patching code
static u_int needs_clear_cache[1<<(TARGET_SIZE_2-17)];
-//#define DEBUG_CYCLE_COUNT 1
+#endif // NDRC_CACHE_FLUSH_ALL
#define NO_CYCLE_PENALTY_THR 12
#define NO_CYCLE_PENALTY_THR 12
#if defined(HAVE_LIBNX)
#define NDRC_WRITE_OFFSET 1
#endif
#if defined(HAVE_LIBNX)
#define NDRC_WRITE_OFFSET 1
#endif
+#if defined(HAVE_LIBNX) || defined(_3DS)
+#define NDRC_CACHE_FLUSH_ALL 1
+#endif