aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/spu/spu.h
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2010-12-16 18:12:23 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2010-12-16 18:12:23 +0000
commita4b56e0218ecfc45a452cdbe60f3d19f35a6c8b9 (patch)
tree5a3401d20cbba543eb6dcc4b9302c304ae9353af /gcc/config/spu/spu.h
parent9712cba0068a0afe871a49c455d104efcb8260a0 (diff)
downloadgcc-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
Diffstat (limited to 'gcc/config/spu/spu.h')
-rw-r--r--gcc/config/spu/spu.h13
1 files changed, 10 insertions, 3 deletions
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