Commit 3894f59e by Richard Earnshaw Committed by Richard Earnshaw

arm.md (stack_tie): New insn.

* arm.md (stack_tie): New insn.  Use an idiom that the alias code
understands to be a memory clobber.
* arm.c (arm_expand_prologue): Use it.

From-SVN: r55486
parent 9406d60d
2002-07-16 Richard Earnshaw <rearnsha@arm.com>
* arm.md (stack_tie): New insn. Use an idiom that the alias code
understands to be a memory clobber.
* arm.c (arm_expand_prologue): Use it.
2002-07-16 Daniel Berlin <dberlin@dberlin.org> 2002-07-16 Daniel Berlin <dberlin@dberlin.org>
* ra-rewrite.c: #include reload.h, insn-config.h * ra-rewrite.c: #include reload.h, insn-config.h
......
...@@ -8387,15 +8387,8 @@ arm_expand_prologue () ...@@ -8387,15 +8387,8 @@ arm_expand_prologue ()
will prevent the scheduler from moving stores to the frame will prevent the scheduler from moving stores to the frame
before the stack adjustment. */ before the stack adjustment. */
if (frame_pointer_needed) if (frame_pointer_needed)
{ insn = emit_insn (gen_stack_tie (stack_pointer_rtx,
rtx unspec = gen_rtx_UNSPEC (SImode, hard_frame_pointer_rtx));
gen_rtvec (2, stack_pointer_rtx,
hard_frame_pointer_rtx),
UNSPEC_PRLG_STK);
insn = emit_insn (gen_rtx_CLOBBER (VOIDmode,
gen_rtx_MEM (BLKmode, unspec)));
}
} }
/* If we are profiling, make sure no instructions are scheduled before /* If we are profiling, make sure no instructions are scheduled before
......
...@@ -8883,6 +8883,16 @@ ...@@ -8883,6 +8883,16 @@
[(set_attr "type" "store4")] [(set_attr "type" "store4")]
) )
(define_insn "stack_tie"
[(set (mem:BLK (scratch))
(unspec:BLK [(match_operand:SI 0 "s_register_operand" "r")
(match_operand:SI 1 "s_register_operand" "r")]
UNSPEC_PRLG_STK))]
""
""
[(set_attr "length" "0")]
)
;; Similarly for the floating point registers ;; Similarly for the floating point registers
(define_insn "*push_fp_multi" (define_insn "*push_fp_multi"
[(match_parallel 2 "multi_register_push" [(match_parallel 2 "multi_register_push"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment