http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57260
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Lee Duhem from comment #7) > Would you like to check again about the first case? I think > these two case are different. No they are both the same case: ld $25,%got_disp(DRIWakeupHandler)($28) .loc 1 179 0 ld $28,32($sp) .loc 1 178 0 move $4,$0 move $5,$0 move $6,$0 .cfi_restore 16 .cfi_restore 17 .cfi_restore 18 .cfi_restore 28 .cfi_restore 31 .reloc 1f,R_MIPS_JALR,DRIWakeupHandler 1: jr $25 daddiu $sp,$sp,48 .... ld $25,%got_disp(DRIBlockHandler)($28) .loc 1 161 0 ld $28,64($sp) .loc 1 137 0 move $4,$0 move $5,$0 move $6,$0 .cfi_restore 16 .cfi_restore 17 .cfi_restore 18 .cfi_restore 19 .cfi_restore 20 .cfi_restore 21 .cfi_restore 22 .cfi_restore 28 .cfi_restore 31 .reloc 1f,R_MIPS_JALR,DRIBlockHandler 1: jr $25 daddiu $sp,$sp,80