aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386/i386.c')
-rw-r--r--gcc/config/i386/i386.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 44de3ca..f6b1101 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -13803,4 +13803,21 @@ x86_output_mi_thunk (file, delta, function)
}
}
+int
+x86_field_alignment (field, computed)
+ tree field;
+ int computed;
+{
+ enum machine_mode mode;
+ if (TARGET_64BIT || DECL_USER_ALIGN (field) || TARGET_ALIGN_DOUBLE)
+ return computed;
+ mode = TYPE_MODE (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE
+ ? get_inner_array_type (field) : TREE_TYPE (field));
+ if ((mode == DFmode || mode == DCmode
+ || mode == DImode || mode == CDImode)
+ && !TARGET_ALIGN_DOUBLE)
+ return MIN (32, computed);
+ return computed;
+}
+
#include "gt-i386.h"