tile: support tilegx32 in stackguard-macros.h
authorChris Metcalf <cmetcalf@tilera.com>
Thu, 17 May 2012 18:51:36 +0000 (18:51 +0000)
committerChris Metcalf <cmetcalf@tilera.com>
Thu, 17 May 2012 18:51:36 +0000 (18:51 +0000)
ChangeLog.tile
sysdeps/tile/stackguard-macros.h

index 51acbc6..52b38b4 100644 (file)
@@ -1,5 +1,7 @@
 2012-05-17  Chris Metcalf  <cmetcalf@tilera.com>
 
+       * sysdeps/tile/stackguard-macros.h: Support tilegx32.
+
        * data/c++-types-tilepro-linux-gnu.data: Renamed from
        data/c++-types-tile-linux-gnu.data.
        * data/c++-types-tilegx-linux-gnu.data: New file.
index 7679c0a..589ea2b 100644 (file)
@@ -1,6 +1,13 @@
+#include <bits/wordsize.h>
+
 #ifdef __tilegx__
-# define STACK_CHK_GUARD \
+# if __WORDSIZE == 64
+#  define STACK_CHK_GUARD \
   ({ uintptr_t x; asm ("addi %0, tp, -16; ld %0, %0" : "=r" (x)); x; })
+# else
+#  define STACK_CHK_GUARD \
+  ({ uintptr_t x; asm ("addi %0, tp, -8; ld4s %0, %0" : "=r" (x)); x; })
+# endif
 #else
 # define STACK_CHK_GUARD \
   ({ uintptr_t x; asm ("addi %0, tp, -8; lw %0, %0" : "=r" (x)); x; })