diff options
author | Martynas Venckus <martynas@cvs.openbsd.org> | 2012-12-20 13:58:07 +0000 |
---|---|---|
committer | Martynas Venckus <martynas@cvs.openbsd.org> | 2012-12-20 13:58:07 +0000 |
commit | 6d284bad88bd01a6738ba8fd1b7933afb2bb3f09 (patch) | |
tree | 1bc72fabe7798ab3a1b4e3e19131ab75312e489d /gnu | |
parent | 1850b36ca51034b9698dd441be98e1246356f6b0 (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.c | 3 | ||||
-rw-r--r-- | gnu/gcc/gcc/config/alpha/alpha.h | 2 |
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 |