From: Nick Clifton Date: Fri, 6 Feb 2009 09:02:37 +0000 (+0000) Subject: * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8506528ca214784d301c162a4ff0c4543d7ad979;p=gcc.git * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero. From-SVN: r143981 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a7a3187c4f..9b4a5431dbe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-02-06 Nick Clifton + + * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to + zero. + 2009-02-06 Paolo Bonzini PR tree-optimization/35659 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