Commit c1238896 by Olivier Hainque Committed by Richard Kenner

alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't set FRP on stack…

alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't set FRP on stack adjustment for outgoing args if frame_pointer_needed.

	* config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
	set FRP on stack adjustment for outgoing args if frame_pointer_needed.

From-SVN: r65965
parent ae2196c2
2003-04-22 Olivier Hainque <hainque@act-europe.fr>
* config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
set FRP on stack adjustment for outgoing args if frame_pointer_needed.
2003-04-22 Vincent Celier <celier@gnat.com> 2003-04-22 Vincent Celier <celier@gnat.com>
* gthr-gnat.h, gthr-gnat.c: new sources for implementation of * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
......
...@@ -7503,11 +7503,31 @@ alpha_expand_prologue () ...@@ -7503,11 +7503,31 @@ alpha_expand_prologue ()
/* If we have to allocate space for outgoing args, do it now. */ /* If we have to allocate space for outgoing args, do it now. */
if (current_function_outgoing_args_size != 0) if (current_function_outgoing_args_size != 0)
FRP (emit_move_insn {
(stack_pointer_rtx, rtx seq
plus_constant (hard_frame_pointer_rtx, = emit_move_insn (stack_pointer_rtx,
- (ALPHA_ROUND plus_constant
(current_function_outgoing_args_size))))); (hard_frame_pointer_rtx,
- (ALPHA_ROUND
(current_function_outgoing_args_size))));
/* Only set FRAME_RELATED_P on the stack adjustment we just emitted
if ! frame_pointer_needed. Setting the bit will change the CFA
computation rule to use sp again, which would be wrong if we had
frame_pointer_needed, as this means sp might move unpredictably
later on.
Also, note that
frame_pointer_needed
=> vms_unwind_regno == HARD_FRAME_POINTER_REGNUM
and
current_function_outgoing_args_size != 0
=> alpha_procedure_type != PT_NULL,
so when we are not setting the bit here, we are guaranteed to
have emited an FRP frame pointer update just before. */
RTX_FRAME_RELATED_P (seq) = ! frame_pointer_needed;
}
} }
else if (!TARGET_ABI_UNICOSMK) else if (!TARGET_ABI_UNICOSMK)
{ {
......
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