summaryrefslogtreecommitdiff
path: root/gcc/config/m32c/m32c.h
diff options
context:
space:
mode:
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-06 09:02:37 +0000
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-06 09:02:37 +0000
commit2314f2eff0b4d565ec4fd6b968e47b9a5362b5d3 (patch)
tree90213ecdce24cca3e5058a0463e887f102228442 /gcc/config/m32c/m32c.h
parent3d2d7de7064f0629b185af2a221b499b108d4f7a (diff)
downloadgcc-2314f2eff0b4d565ec4fd6b968e47b9a5362b5d3.tar.gz
* config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143981 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m32c/m32c.h')
-rw-r--r--gcc/config/m32c/m32c.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/m32c/m32c.h b/gcc/config/m32c/m32c.h
index 2292a33bb5a..7775bd85dbd 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