This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Flushing the d-cache (was Re: BFD relocations)
On Fri, 2002-06-14 at 16:51, Camm Maguire wrote:
> #define CLEAR_CACHE do {\
> void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \
> for (;v<ve;v+=16) { \
> register unsigned long _beg __asm ("a1") = (unsigned long)(v); \
> register unsigned long _end __asm ("a2") = (unsigned long)(v+16);\
> register unsigned long _flg __asm ("a3") = 0; \
> __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
> : /* no outputs */ \
> : /* no inputs */ \
> : "a1"); \
> }\
You don't need the loop. The arm sys_cacheflush can be given arbitrary
regions, it works the cache line size out for itself.
p.