[Bug target/20020] x86_64 - 128 bit structs not targeted to TImode
gary at intrepid dot com
gcc-bugzilla@gcc.gnu.org
Sun Aug 12 22:44:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #28 from Gary Funck <gary at intrepid dot com> 2012-08-12 22:43:16 UTC ---
(In reply to comment #27)
> 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.
That's the patch that I have been using and testing against (ref: comment #9).
I suggested this:
#define MAX_FIXED_MODE_SIZE targetm.scalar_mode_supported_p (TImode) ? TImode :
DImode
because it might allow x86 targets with SSE to also target TIMode for 128 bit
struct's (on the assumption that TImode will be more efficient).
More information about the Gcc-bugs
mailing list