diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2010-12-16 18:12:23 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2010-12-16 18:12:23 +0000 |
commit | a4b56e0218ecfc45a452cdbe60f3d19f35a6c8b9 (patch) | |
tree | 5a3401d20cbba543eb6dcc4b9302c304ae9353af | |
parent | 9712cba0068a0afe871a49c455d104efcb8260a0 (diff) | |
download | gcc-a4b56e0218ecfc45a452cdbe60f3d19f35a6c8b9.zip gcc-a4b56e0218ecfc45a452cdbe60f3d19f35a6c8b9.tar.gz gcc-a4b56e0218ecfc45a452cdbe60f3d19f35a6c8b9.tar.bz2 |
t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
* config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
* config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
(LIBGCC2_UNITS_PER_WORD): Define if not already defined.
From-SVN: r167950
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/spu/spu.h | 13 | ||||
-rw-r--r-- | gcc/config/spu/t-spu-elf | 4 |
3 files changed, 20 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a64192..18eaa23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define. + * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define. + (LIBGCC2_UNITS_PER_WORD): Define if not already defined. + 2010-12-16 Jakub Jelinek <jakub@redhat.com> PR debug/46893 diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h index 234ff49..d56a52b 100644 --- a/gcc/config/spu/spu.h +++ b/gcc/config/spu/spu.h @@ -65,9 +65,16 @@ extern GTY(()) int spu_tune; #define UNITS_PER_WORD (BITS_PER_WORD/BITS_PER_UNIT) -/* We never actually change UNITS_PER_WORD, but defining this causes - libgcc to use some different sizes of types when compiling. */ -#define MIN_UNITS_PER_WORD 4 +/* When building libgcc, we need to assume 4 words per units even + though UNITS_PER_WORD is 16, because the SPU has basically a 32-bit + instruction set although register size is 128 bits. In particular, + this causes libgcc to contain __divdi3 instead of __divti3 etc. + However, we allow this default to be re-defined on the command + line, so that we can use the LIB2_SIDITI_CONV_FUNCS mechanism + to get (in addition) TImode versions of some routines. */ +#ifndef LIBGCC2_UNITS_PER_WORD +#define LIBGCC2_UNITS_PER_WORD 4 +#endif #define POINTER_SIZE 32 diff --git a/gcc/config/spu/t-spu-elf b/gcc/config/spu/t-spu-elf index 3bb54e4..341a5aa 100644 --- a/gcc/config/spu/t-spu-elf +++ b/gcc/config/spu/t-spu-elf @@ -61,6 +61,10 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf echo '#define FLOAT' > fp-bit.c cat $(srcdir)/config/fp-bit.c >> fp-bit.c +# Build TImode conversion routines to support Fortran 128-bit +# integer data types. +LIB2_SIDITI_CONV_FUNCS=yes + # Don't let CTOR_LIST end up in sdata section. CRTSTUFF_T_CFLAGS = |