aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunQiang Su <yunqiang.su@cipunited.com>2023-11-24 17:39:55 +0800
committerNick Clifton <nickc@redhat.com>2023-11-30 13:51:17 +0000
commit070961b377b3762c41903253bfacdedd65171ab7 (patch)
tree4b5b2dbeb18485061c58265f984c24343ac48274
parent53302c2d33c26909cc8446819f6677076ba48ca9 (diff)
downloadbinutils-070961b377b3762c41903253bfacdedd65171ab7.zip
binutils-070961b377b3762c41903253bfacdedd65171ab7.tar.gz
binutils-070961b377b3762c41903253bfacdedd65171ab7.tar.bz2
MIPS: Set r6 as default arch if vendor is img
This behavior is used by downstream toolchain since 2014, and has been in GCC since the same year. 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/configure6
-rw-r--r--gas/configure.ac6
-rw-r--r--gas/testsuite/gas/mips/mips.exp2
-rw-r--r--gas/testsuite/gas/mips/module-defer-warn2.d2
5 files changed, 15 insertions, 3 deletions
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 08129e6..8c9637a 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1550,7 +1550,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 6a2f56f..ace1a17 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12264,6 +12264,12 @@ _ACEOF
use_ef_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
diff --git a/gas/configure.ac b/gas/configure.ac
index d0b4cfb..7dac221 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -382,6 +382,12 @@ changequote([,])dnl
use_ef_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
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 777ae65..9238b26 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -473,7 +473,7 @@ mips_arch_create mips32r5 32 mips32r3 { fpisa3 fpisa4 fpisa5 ror } \
mips_arch_create mips32r6 32 mips32r5 { fpisa3 fpisa4 fpisa5 ror } \
{ -march=mips32r6 -mtune=mips32r6 --defsym r6=} \
{ -mmips:isa32r6 } \
- { mipsisa32r6-*-* mipsisa32r6el-*-* }
+ { mipsisa32r6-*-* mipsisa32r6el-*-* mips*-img-* }
mips_arch_create mips64 64 mips5 { mips32 } \
{ -march=mips64 -mtune=mips64 } { -mmips:isa64 } \
{ mipsisa64-*-* mipsisa64el-*-* }
diff --git a/gas/testsuite/gas/mips/module-defer-warn2.d b/gas/testsuite/gas/mips/module-defer-warn2.d
index 5c2d1d7..1ff4fef 100644
--- a/gas/testsuite/gas/mips/module-defer-warn2.d
+++ b/gas/testsuite/gas/mips/module-defer-warn2.d
@@ -1,5 +1,5 @@
#name: .module deferred warnings 2 (pre-R2)
#source: module-defer-warn2.s
#as: -32
-#skip: mipsisa32r?* mipsisa64r?*
+#skip: mipsisa32r?* mipsisa64r?* mips*-img-*
#error_output: module-defer-warn2.l