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 /gcc/function.c | |
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
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 16 |
1 files changed, 4 insertions, 12 deletions
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. */ |