summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMartynas Venckus <martynas@cvs.openbsd.org>2012-12-20 13:58:07 +0000
committerMartynas Venckus <martynas@cvs.openbsd.org>2012-12-20 13:58:07 +0000
commit6d284bad88bd01a6738ba8fd1b7933afb2bb3f09 (patch)
tree1bc72fabe7798ab3a1b4e3e19131ab75312e489d /gnu
parent1850b36ca51034b9698dd441be98e1246356f6b0 (diff)
Bring stack smashing protector for Alpha; enabled by default.
Reorganize soft frame pointer so that locals are below it and grow downwards. Thanks Nick for the access. OK miod@.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/gcc/gcc/config/alpha/alpha.c3
-rw-r--r--gnu/gcc/gcc/config/alpha/alpha.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/gnu/gcc/gcc/config/alpha/alpha.c b/gnu/gcc/gcc/config/alpha/alpha.c
index 35c88ee82ff..266dc9a011d 100644
--- a/gnu/gcc/gcc/config/alpha/alpha.c
+++ b/gnu/gcc/gcc/config/alpha/alpha.c
@@ -7355,6 +7355,9 @@ alpha_initial_elimination_offset (unsigned int from,
switch (from)
{
case FRAME_POINTER_REGNUM:
+ ret += (ALPHA_ROUND (get_frame_size ()
+ + current_function_pretend_args_size)
+ - current_function_pretend_args_size);
break;
case ARG_POINTER_REGNUM:
diff --git a/gnu/gcc/gcc/config/alpha/alpha.h b/gnu/gcc/gcc/config/alpha/alpha.h
index 3e0c5b0f9fe..cbcde9ff900 100644
--- a/gnu/gcc/gcc/config/alpha/alpha.h
+++ b/gnu/gcc/gcc/config/alpha/alpha.h
@@ -738,7 +738,7 @@ extern int alpha_memory_latency;
is at the high-address end of the local variables;
that is, each additional local variable allocated
goes at a more negative offset in the frame. */
-/* #define FRAME_GROWS_DOWNWARD 0 */
+#define FRAME_GROWS_DOWNWARD 1
/* Offset within stack frame to start allocating local variables at.
If FRAME_GROWS_DOWNWARD, this is the offset to the END of the