summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/cse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/egcs/gcc/cse.c')
-rw-r--r--gnu/egcs/gcc/cse.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gnu/egcs/gcc/cse.c b/gnu/egcs/gcc/cse.c
index bca7623fed6..f4c98de36b8 100644
--- a/gnu/egcs/gcc/cse.c
+++ b/gnu/egcs/gcc/cse.c
@@ -6044,7 +6044,13 @@ fold_rtx (x, insn)
if (new_const == 0)
break;
-
+#ifndef FRAME_GROWS_DOWNWARD
+ if (flag_propolice_protection
+ && GET_CODE (y) == PLUS
+ && XEXP (y, 0) == frame_pointer_rtx
+ && INTVAL (new_const) <= 0)
+ break;
+#endif
/* If we are associating shift operations, don't let this
produce a shift of the size of the object or larger.
This could occur when we follow a sign-extend by a right