This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]