aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunQiang Su <yunqiang.su@cipunited.com>2023-05-10 18:07:23 +0800
committerYunQiang Su <yunqiang.su@cipunited.com>2023-06-05 11:00:14 +0800
commitbe0d391f22fe6009c3be907753975a984cbbcc23 (patch)
treea3a67bd621ffb72f41a4501b89b1e91cf7a22201
parent094025a30bb2da19df3990e0c0ff8167af823aa1 (diff)
downloadfsf-binutils-gdb-be0d391f22fe6009c3be907753975a984cbbcc23.zip
fsf-binutils-gdb-be0d391f22fe6009c3be907753975a984cbbcc23.tar.gz
fsf-binutils-gdb-be0d391f22fe6009c3be907753975a984cbbcc23.tar.bz2
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.
-rw-r--r--bfd/config.bfd2
-rwxr-xr-xgas/configure8
-rw-r--r--gas/configure.ac8
3 files changed, 15 insertions, 3 deletions
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 9548370..7875299 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 868f4a9..580022d 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 03728ff..c1571a4 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*)