aboutsummaryrefslogtreecommitdiff
path: root/gcc/jump.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>2001-04-18 03:39:19 +0000
committerJeff Law <law@gcc.gnu.org>2001-04-17 21:39:19 -0600
commitb9c81bcb53beda99725d20443095a0b84220e0f4 (patch)
tree4b7f52c935d74c0c9289157d32b74193a691ed97 /gcc/jump.c
parent2f4e671dfa34c623211bba2214b54cf2d663af11 (diff)
downloadgcc-b9c81bcb53beda99725d20443095a0b84220e0f4.zip
gcc-b9c81bcb53beda99725d20443095a0b84220e0f4.tar.gz
gcc-b9c81bcb53beda99725d20443095a0b84220e0f4.tar.bz2
jump.c (mark_all_labels): Canonicalize the tail recursion label attached to CALL_PLACEHOLDER insns.
* jump.c (mark_all_labels): Canonicalize the tail recursion label attached to CALL_PLACEHOLDER insns. From-SVN: r41400
Diffstat (limited to 'gcc/jump.c')
-rw-r--r--gcc/jump.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index 7799722..2426921 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -843,6 +843,17 @@ mark_all_labels (f, cross_jump)
mark_all_labels (XEXP (PATTERN (insn), 0), cross_jump);
mark_all_labels (XEXP (PATTERN (insn), 1), cross_jump);
mark_all_labels (XEXP (PATTERN (insn), 2), cross_jump);
+
+ /* Canonicalize the tail recursion label attached to the
+ CALL_PLACEHOLDER insn. */
+ if (XEXP (PATTERN (insn), 3))
+ {
+ rtx label_ref = gen_rtx_LABEL_REF (VOIDmode,
+ XEXP (PATTERN (insn), 3));
+ mark_jump_label (label_ref, insn, cross_jump, 0);
+ XEXP (PATTERN (insn), 3) = XEXP (label_ref, 0);
+ }
+
continue;
}