https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790
--- Comment #11 from YunQiang Su <syq at gcc dot gnu.org> ---
(In reply to YunQiang Su from comment #8)
> 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)
> ```
This patch can trigger some ICE....