From be0d391f22fe6009c3be907753975a984cbbcc23 Mon Sep 17 00:00:00 2001 From: YunQiang Su Date: Wed, 10 May 2023 18:07:23 +0800 Subject: [PATCH] MIPS: default r6 if vendor is img This behavior is used by downstream toolchain since 2014. We also set the default ABI for mips*-img-elf to O32. The previous value is NO_ABI, which is not good default ABI. We don't support mips64*-img* due to GCC doesn't support it, and We believe that the multilib should be used for this case. --- bfd/config.bfd | 2 +- gas/configure | 8 +++++++- gas/configure.ac | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd index 954837033c8..78752994456 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1537,7 +1537,7 @@ case "${targ_defvec} ${targ_selvecs}" in esac case "${targ}" in - mipsisa32r6* | mipsisa64r6*) + mipsisa32r6* | mipsisa64r6* | mips*-img-*) targ_cflags="$targ_cflags -DMIPS_DEFAULT_R6=1" ;; esac diff --git a/gas/configure b/gas/configure index 868f4a911a9..580022d858d 100755 --- a/gas/configure +++ b/gas/configure @@ -12211,6 +12211,12 @@ _ACEOF use_e_mips_abi_o32=1 ;; esac + # If Vendor is IMG, then MIPSr6 is used + case ${target} in + mips*-img-*) + mips_cpu=mips32r6 + ;; + esac # Decide whether to generate 32-bit or 64-bit code by default. # Used to resolve -march=from-abi when an embedded ABI is selected. case ${target} in @@ -12230,7 +12236,7 @@ _ACEOF | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI ;; - mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) + mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu | mips*-img-elf) mips_default_abi=O32_ABI ;; mips64*-openbsd*) diff --git a/gas/configure.ac b/gas/configure.ac index 03728ffce4d..c1571a49fbb 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -380,6 +380,12 @@ changequote([,])dnl use_e_mips_abi_o32=1 ;; esac + # If Vendor is IMG, then MIPSr6 is used + case ${target} in + mips*-img-*) + mips_cpu=mips32r6 + ;; + esac # Decide whether to generate 32-bit or 64-bit code by default. # Used to resolve -march=from-abi when an embedded ABI is selected. case ${target} in @@ -399,7 +405,7 @@ changequote([,])dnl | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI ;; - mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) + mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu | mips*-img-elf) mips_default_abi=O32_ABI ;; mips64*-openbsd*) -- 2.30.2