[Bug target/20020] x86_64 - 128 bit structs not targeted to TImode
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Aug 12 22:31:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ubizjak at gmail dot com
--- Comment #27 from H.J. Lu <hjl.tools at gmail dot com> 2012-08-12 22:30:32 UTC ---
(In reply to comment #25)
> (In reply to comment #20)
> > X86 doesn't support __int128 and requires SSE for TImode.
> > We may need to limit those testcases for int128 target.
>
> If targeting struct's to TImode is supported on x86 targets then perhaps this
> definition will need to be refer to 128 bit target support?
>
> #define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_64BIT ? TImode : DImode)
>
> Off-hand, I don't know the target macro that does this.
There are:
rs6000/rs6000.h:#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_POWERPC64
? TImode : DImode)
s390/s390.h:#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_64BIT ? TImode
: DImode)
Please try this patch:
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index c4d85b7..6c4c2ce 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -1853,6 +1853,10 @@ do { \
/* #define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) 0 */
+/* An integer expression for the size in bits of the largest integer machine
+ mode that should actually be used. We allow pairs of registers. */
+#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_64BIT ? TImode : DImode)
+
/* Define this macro if it is as good or better to call a constant
function address than to call an address kept in a register.
More information about the Gcc-bugs
mailing list