summaryrefslogtreecommitdiff
path: root/gcc/config/sparc/linux64.h
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-06 07:49:05 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-06 07:49:05 +0000
commitfc5cceaf13d3d1632dd9a5a294f77ab7d9384c2a (patch)
tree8ca6fd41c47572b47720e13f43cf054b3a1a38b9 /gcc/config/sparc/linux64.h
parentba8d970212c49d9a425ce7678cd888dcc14efbea (diff)
downloadgcc-fc5cceaf13d3d1632dd9a5a294f77ab7d9384c2a.tar.gz
* config/sparc/sparc.h (sparc_compare_emitted): New extern.
* config/sparc/sparc.c (sparc_compare_emitted): New variable. (gen_compare_reg): If sparc_compare_emitted is set, clear it and return its previous value. (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. (stack_protect_set, stack_protect_test): New expanders. (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, stack_protect_testdi): New insns. * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101653 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sparc/linux64.h')
-rw-r--r--gcc/config/sparc/linux64.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index a331dfc626c..82860fea24e 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -363,3 +363,9 @@ do { \
#undef NEED_INDICATE_EXEC_STACK
#define NEED_INDICATE_EXEC_STACK 1
+
+#ifdef TARGET_LIBC_PROVIDES_SSP
+/* sparc glibc provides __stack_chk_guard in [%g7 + 0x14],
+ sparc64 glibc provides it at [%g7 + 0x28]. */
+#define TARGET_THREAD_SSP_OFFSET (TARGET_ARCH64 ? 0x28 : 0x14)
+#endif