Hi, I'm trying to understand to following snippet from glibc's sysdeps/mips/dl-machine.h: elf_machine_load_address (void) { ElfW(Addr) addr; asm (" .set noreorder\n" " la %0, here\n" " bltzal $0, here\n" " nop\n" "here: subu %0, $31, %0\n" " .set reorder\n" : "=r" (addr) : /* No inputs */ : "$31"); return addr; } As of my understanding addr is zero since $31-%0 is always zero(%0 stored (before the subu) the address of 'here', as does $31 after the bltzal). Please beat me with a cluebat. -- Guido