Make basic cache functions into calls, and get rid of CACHE_FUNCTION_WRAPPERS and CACHE_FUNCTIONS_AS_CALL macros. Rename flush/invalidate_icache to cpucache_flush/invalidate. They're inlined only if an implementation isn't provided by defining HAVE_CPUCACHE_FLUSH/INVALIDATE.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19971 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2009-02-11 12:55:51 +00:00
parent 4cd7597172
commit 21f0c9a282
28 changed files with 136 additions and 173 deletions

View file

@ -149,7 +149,7 @@ bool mpeg_alloc_init(unsigned char *buf, size_t mallocsize)
return false;
}
IF_COP(invalidate_icache());
IF_COP(rb->cpucache_invalidate());
return true;
}

View file

@ -296,8 +296,6 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#endif
#endif
CACHE_FUNCTION_WRAPPERS;
/* One thing we can do here for targets with remotes is having a display
* always on the remote instead of always forcing a popup on the main display */

View file

@ -524,7 +524,7 @@ static void video_thread_msg(struct video_thread_data *td)
}
else
{
IF_COP(invalidate_icache());
IF_COP(rb->cpucache_invalidate());
vo_lock();
rb->lcd_update();
vo_unlock();
@ -996,7 +996,7 @@ bool video_thread_init(void)
{
intptr_t rep;
IF_COP(flush_icache());
IF_COP(rb->cpucache_flush());
video_str.hdr.q = &video_str_queue;
rb->queue_init(video_str.hdr.q, false);
@ -1014,7 +1014,7 @@ bool video_thread_init(void)
/* Wait for thread to initialize */
rep = str_send_msg(&video_str, STREAM_NULL, 0);
IF_COP(invalidate_icache());
IF_COP(rb->cpucache_invalidate());
return rep == 0; /* Normally STREAM_NULL should be ignored */
}
@ -1026,7 +1026,7 @@ void video_thread_exit(void)
{
str_post_msg(&video_str, STREAM_QUIT, 0);
rb->thread_wait(video_str.thread);
IF_COP(invalidate_icache());
IF_COP(rb->cpucache_invalidate());
video_str.thread = 0;
}
}

View file

@ -1905,7 +1905,7 @@ void dynamic_recompile (struct dynarec_block *newblock)
PC=oldpc;
setmallocpos(dynapointer);
newblock->length=dynapointer-newblock->block;
invalidate_icache();
IF_COP(rb->cpucache_invalidate());
snprintf(meow,499,"/dyna_0x%x_code.rb",PC);
fd=open(meow,O_WRONLY|O_CREAT|O_TRUNC);
if(fd>=0)

View file

@ -480,9 +480,9 @@ static void init_ci(void)
ci.profile_func_exit = rb->profile_func_exit;
#endif
#ifdef CACHE_FUNCTIONS_AS_CALL
ci.invalidate_icache = invalidate_icache;
ci.flush_icache = flush_icache;
#if NUM_CORES > 1
ci.cpucache_invalidate = rb->cpucache_invalidate;
ci.cpucache_flush = rb->cpucache_flush;
#endif
#if NUM_CORES > 1