hi,all (sorry if it is somewhat out of topic,but i think most mips experts are here:) else if (mips_pic == SVR4_PIC && ! mips_big_got) { expressionS ex; /* If this is a reference to an external symbol, we want lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) Otherwise we want lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) nop QUESTION: Could somebody tell me why we generate a unconditional 'nop' here? addiu $reg,$reg,<sym> (BFD_RELOC_LO16) If there is a constant, it must be added in after. If we have NewABI, we want lw $reg,<sym+cst>($gp) (BFD_RELOC_MIPS_GOT_DISP) unless we're referencing a global symbol with a non-zero offset, in which case cst must be added separately. */ Thanks in advance.