[PATCH] MIPS: Set r6 as default arch if vendor is img

YunQiang Su yunqiang.su@cipunited.com
Fri Nov 24 09:39:55 GMT 2023


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.
---
 bfd/config.bfd                              | 2 +-
 gas/configure                               | 6 ++++++
 gas/configure.ac                            | 6 ++++++
 gas/testsuite/gas/mips/mips.exp             | 2 +-
 gas/testsuite/gas/mips/module-defer-warn2.d | 2 +-
 5 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/bfd/config.bfd b/bfd/config.bfd
index 55fd02e787c..4ee94975e36 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 9c692119083..a26b154d7a5 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 d756974e0c2..5fa62ecf764 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 d85db116967..32933d27d46 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 5c2d1d7fa8e..1ff4fefecf7 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
-- 
2.39.2



More information about the Binutils mailing list