summaryrefslogtreecommitdiff
path: root/gnu/gcc
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2011-11-25 05:23:10 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2011-11-25 05:23:10 +0000
commitfe0c276f9c7117306203b940b2acfe89658b9dc4 (patch)
tree71f3f77415e24bb9f6478e41bad162b32050b4b0 /gnu/gcc
parent188539c0c1642ac2e2f1dfa76b61b3b7fa3bb587 (diff)
Final configuration bits for gcc4: require alignment of local arrays on
word boundaries, and enable the builtins.c `one-byte memcpy' workaround.
Diffstat (limited to 'gnu/gcc')
-rw-r--r--gnu/gcc/gcc/config/alpha/alpha.h7
-rw-r--r--gnu/gcc/gcc/config/alpha/openbsd.h3
2 files changed, 6 insertions, 4 deletions
diff --git a/gnu/gcc/gcc/config/alpha/alpha.h b/gnu/gcc/gcc/config/alpha/alpha.h
index ed02c9f3e8e..3e0c5b0f9fe 100644
--- a/gnu/gcc/gcc/config/alpha/alpha.h
+++ b/gnu/gcc/gcc/config/alpha/alpha.h
@@ -373,12 +373,11 @@ extern enum alpha_fp_trap_mode alpha_fptm;
/* Align all constants and variables to at least a word boundary so
we can pick up pieces of them faster. */
-/* ??? Only if block-move stuff knows about different source/destination
- alignment. */
-#if 0
#define CONSTANT_ALIGNMENT(EXP, ALIGN) MAX ((ALIGN), BITS_PER_WORD)
#define DATA_ALIGNMENT(EXP, ALIGN) MAX ((ALIGN), BITS_PER_WORD)
-#endif
+
+/* Make local arrays of chars word-aligned for the same reasons. */
+#define LOCAL_ALIGNMENT(TYPE, ALIGN) DATA_ALIGNMENT (TYPE, ALIGN)
/* Set this nonzero if move instructions will actually fail to work
when given unaligned data.
diff --git a/gnu/gcc/gcc/config/alpha/openbsd.h b/gnu/gcc/gcc/config/alpha/openbsd.h
index 3dee9c0a911..61f09a776f5 100644
--- a/gnu/gcc/gcc/config/alpha/openbsd.h
+++ b/gnu/gcc/gcc/config/alpha/openbsd.h
@@ -83,3 +83,6 @@ Boston, MA 02110-1301, USA. */
/* don't want no friggin' stack checks. */
#undef STACK_CHECK_BUILTIN
#define STACK_CHECK_BUILTIN 0
+
+/* don't want bcopy() optimized into memmove() unless correctly aligned */
+#define SUBWORD_ACCESS_P (TARGET_BWX)