+2000-08-23 Richard Earnshaw (rearnsha@arm.com)
+
+ * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
+ barrier can't be ignored by the alias analysis code.
+
2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
* fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
amount));
RTX_FRAME_RELATED_P (insn) = 1;
- emit_insn (gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_MEM (BLKmode, stack_pointer_rtx)));
+
+ /* If the frame pointer is needed, emit a special barrier that
+ will prevent the scheduler from moving stores to the frame
+ before the stack adjustment. */
+ if (frame_pointer_needed)
+ {
+ rtx unspec = gen_rtx_UNSPEC (SImode,
+ gen_rtvec (2, stack_pointer_rtx,
+ hard_frame_pointer_rtx), 4);
+
+ emit_insn (gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_MEM (BLKmode, unspec)));
+ }
}
/* If we are profiling, make sure no instructions are scheduled before