aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-02-06 09:02:37 +0000
committerNick Clifton <nickc@gcc.gnu.org>2009-02-06 09:02:37 +0000
commit8506528ca214784d301c162a4ff0c4543d7ad979 (patch)
tree90213ecdce24cca3e5058a0463e887f102228442
parent851691140a53104db9e2b1135f923618299fd92b (diff)
downloadgcc-8506528ca214784d301c162a4ff0c4543d7ad979.zip
gcc-8506528ca214784d301c162a4ff0c4543d7ad979.tar.gz
gcc-8506528ca214784d301c162a4ff0c4543d7ad979.tar.bz2
* config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
From-SVN: r143981
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m32c/m32c.h16
2 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a7a318..9b4a543 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-06 Nick Clifton <nickc@redhat.com>
+
+ * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to
+ zero.
+
2009-02-06 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/35659
diff --git a/gcc/config/m32c/m32c.h b/gcc/config/m32c/m32c.h
index 2292a33..7775bd8 100644
--- a/gcc/config/m32c/m32c.h
+++ b/gcc/config/m32c/m32c.h
@@ -143,6 +143,17 @@ machine_function;
#define UNITS_PER_WORD 2
#define POINTER_SIZE (TARGET_A16 ? 16 : 32)
#define POINTERS_EXTEND_UNSIGNED 1
+/* We have a problem with libgcc2. It only defines two versions of
+ each function, one for "int" and one for "long long". Ie it assumes
+ that "sizeof (int) == sizeof (long)". For the M32C this is not true
+ and we need a third set of functions. We explicitly define
+ LIBGCC2_UNITS_PER_WORD here so that it is clear that we are expecting
+ to get the SI and DI versions from the libgcc2.c sources, and we
+ provide our own set of HI functions in m32c-lib2.c, which is why this
+ definition is surrounded by #ifndef..#endif. */
+#ifndef LIBGCC2_UNITS_PER_WORD
+#define LIBGCC2_UNITS_PER_WORD 4
+#endif
/* These match the alignment enforced by the two types of stack operations. */
#define PARM_BOUNDARY (TARGET_A16 ? 8 : 16)
@@ -154,6 +165,11 @@ machine_function;
#define FUNCTION_BOUNDARY 8
#define BIGGEST_ALIGNMENT 8
+/* Since we have a maximum structure alignment of 8 there
+ is no need to enforce any alignment of bitfield types. */
+#undef PCC_BITFIELD_TYPE_MATTERS
+#define PCC_BITFIELD_TYPE_MATTERS 0
+
#define STRICT_ALIGNMENT 0
#define SLOW_BYTE_ACCESS 1