Question : about difference with bdnz and bdnz+
HongWoo Lee
hongwoo7 at gmail.com
Thu Aug 27 15:04:35 EST 2009
Hi ~
I found the code in the linux kernel.
static __inline__ void clear_page(void *addr)
{
unsigned long lines, line_size;
line_size = cpu_caches.dline_size;
lines = cpu_caches.dlines_per_page;
__asm__ __volatile__(
"mtctr %1 # clear_page\n\
1: dcbz 0,%0\n\
add %0,%0,%3\n\
bdnz+ 1b"
: "=r" (addr)
: "r" (lines), "0" (addr), "r" (line_size)
: "ctr", "memory");
}
And I have a question about bdnz+ instruction.
Through googling, I learned that bdnz does decrement count register and
branch if it is still nonzero.
But I couldn't find what "bdnz+" is.
Can anybody explain to me what it is ??
Thanks in advance.
HongWoo.
More information about the Linuxppc-dev
mailing list