35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
$OpenBSD: pp-gcc_loop_c,v 1.1 2005/01/04 23:06:33 espie Exp $
|
|
--- gcc/loop.c.orig Sun May 30 01:27:30 2004
|
|
+++ gcc/loop.c Mon Jan 3 10:17:42 2005
|
|
@@ -1130,6 +1130,7 @@ scan_loop (loop, flags)
|
|
Generally this increases code size, so do not move moveables when
|
|
optimizing for code size. */
|
|
|
|
+#ifndef BROKEN_MOVE_MOVABLES_P
|
|
if (! optimize_size)
|
|
{
|
|
move_movables (loop, movables, threshold, insn_count);
|
|
@@ -1150,6 +1151,7 @@ scan_loop (loop, flags)
|
|
loop_max_reg = max_reg_num ();
|
|
}
|
|
}
|
|
+#endif
|
|
|
|
/* Now candidates that still are negative are those not moved.
|
|
Change regs->array[I].set_in_loop to indicate that those are not actually
|
|
@@ -6553,6 +6555,14 @@ general_induction_var (loop, x, src_reg,
|
|
*add_val = XEXP (*add_val, 0);
|
|
if (GET_CODE (*mult_val) == USE)
|
|
*mult_val = XEXP (*mult_val, 0);
|
|
+
|
|
+#ifndef FRAME_GROWS_DOWNWARD
|
|
+ if (flag_propolice_protection
|
|
+ && GET_CODE (*add_val) == PLUS
|
|
+ && (XEXP (*add_val, 0) == frame_pointer_rtx
|
|
+ || XEXP (*add_val, 1) == frame_pointer_rtx))
|
|
+ return 0;
|
|
+#endif
|
|
|
|
if (is_addr)
|
|
*pbenefit += address_cost (orig_x, addr_mode) - reg_address_cost;
|