We need a 32-byte wide integer mode (OImode) in order to handle structure
returns in the 64-bit ABI.
Bootstrapped/regtested on SPARC/Solaris and SPARC64/Linux, applied on the
mainline, 11 and 10 branches.
2021-10-12 Eric Botcazou <ebotca...@adacore.com>
PR target/102588
* config/sparc/sparc-modes.def (OI): New integer mode.
--
Eric Botcazou
diff --git a/gcc/config/sparc/sparc-modes.def b/gcc/config/sparc/sparc-modes.def
index 5cc4743f199..057c09345a9 100644
--- a/gcc/config/sparc/sparc-modes.def
+++ b/gcc/config/sparc/sparc-modes.def
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
/* 128-bit floating point */
FLOAT_MODE (TF, 16, ieee_quad_format);
+/* We need a 32-byte mode to return structures in the 64-bit ABI. */
+INT_MODE (OI, 32);
+
/* Add any extra modes needed to represent the condition code.
We have a CCNZ mode which is used for implicit comparisons with zero when