diff options
author | Richard Henderson <rth@redhat.com> | 2009-11-13 11:10:45 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2009-11-13 11:10:45 -0800 |
commit | 08d4cc3365fe71486d9305604ed8590a248afd26 (patch) | |
tree | dea1dfdd654d5ec22ecbf475e45ae99f46afbd7c | |
parent | 589520b621afc3583a6bea2aeadae3825c82211e (diff) | |
download | gcc-08d4cc3365fe71486d9305604ed8590a248afd26.zip gcc-08d4cc3365fe71486d9305604ed8590a248afd26.tar.gz gcc-08d4cc3365fe71486d9305604ed8590a248afd26.tar.bz2 |
function.c (stack_protect_prologue): Don't bypass expand_expr for stack_protect_guard and guard_decl.
* function.c (stack_protect_prologue): Don't bypass expand_expr
for stack_protect_guard and guard_decl.
(stack_protect_epilogue): Likewise.
From-SVN: r154168
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 16 |
2 files changed, 10 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2a0da5..22640fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-11-13 Richard Henderson <rth@redhat.com> + + * function.c (stack_protect_prologue): Don't bypass expand_expr + for stack_protect_guard and guard_decl. + (stack_protect_epilogue): Likewise. + 2009-11-13 Jan Hubicka <jh@suse.cz> * ipa.c (function_and_variable_visibility): Clear COMDAT on functions diff --git a/gcc/function.c b/gcc/function.c index ca57889..60c199f 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4269,12 +4269,8 @@ stack_protect_prologue (void) tree guard_decl = targetm.stack_protect_guard (); rtx x, y; - /* Avoid expand_expr here, because we don't want guard_decl pulled - into registers unless absolutely necessary. And we know that - crtl->stack_protect_guard is a local stack slot, so this skips - all the fluff. */ - x = validize_mem (DECL_RTL (crtl->stack_protect_guard)); - y = validize_mem (DECL_RTL (guard_decl)); + x = expand_normal (crtl->stack_protect_guard); + y = expand_normal (guard_decl); /* Allow the target to copy from Y to X without leaking Y into a register. */ @@ -4307,12 +4303,8 @@ stack_protect_epilogue (void) rtx label = gen_label_rtx (); rtx x, y, tmp; - /* Avoid expand_expr here, because we don't want guard_decl pulled - into registers unless absolutely necessary. And we know that - crtl->stack_protect_guard is a local stack slot, so this skips - all the fluff. */ - x = validize_mem (DECL_RTL (crtl->stack_protect_guard)); - y = validize_mem (DECL_RTL (guard_decl)); + x = expand_normal (crtl->stack_protect_guard); + y = expand_normal (guard_decl); /* Allow the target to compare Y with X without leaking either into a register. */ |