https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790
--- Comment #8 from YunQiang Su <syq at gcc dot gnu.org> --- Ohh, In fact we should use $28 if TARGET_USE_GOT. Can you help to test this patch? ``` diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index b63d40a357b..fe8641d3916 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -3342,7 +3342,7 @@ mips16_gp_pseudo_reg (void) rtx mips_pic_base_register (rtx temp) { - if (MIPS16_GP_LOADS ||!TARGET_MIPS16) + if (MIPS16_GP_LOADS || TARGET_USE_GOT ||!TARGET_MIPS16) return pic_offset_table_rtx; if (currently_expanding_to_rtl) ```