diff options
author | Bernd Schmidt <bernds@cygnus.co.uk> | 2000-03-26 16:22:02 +0000 |
---|---|---|
committer | Bernd Schmidt <crux@gcc.gnu.org> | 2000-03-26 16:22:02 +0000 |
commit | 210ee0dd95258398bfaefb33d320afd5f5e5c7ee (patch) | |
tree | 715ec6592e54cfdaa4ed91330895e8ce2eeda30a /gcc | |
parent | adc66edadbeddb720fff2de7a153d631caf5995a (diff) | |
download | gcc-210ee0dd95258398bfaefb33d320afd5f5e5c7ee.zip gcc-210ee0dd95258398bfaefb33d320afd5f5e5c7ee.tar.gz gcc-210ee0dd95258398bfaefb33d320afd5f5e5c7ee.tar.bz2 |
Fix sibcall problem in jump.c.
From-SVN: r32747
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/jump.c | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d4d8a0b..b767df4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> + + * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. + Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * Rework fields used to describe positions of bitfields and @@ -2265,6 +2265,15 @@ mark_all_labels (f, cross_jump) for (insn = f; insn; insn = NEXT_INSN (insn)) if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') { + if (GET_CODE (insn) == CALL_INSN + && GET_CODE (PATTERN (insn)) == CALL_PLACEHOLDER) + { + 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); + continue; + } + mark_jump_label (PATTERN (insn), insn, cross_jump, 0); if (! INSN_DELETED_P (insn) && GET_CODE (insn) == JUMP_INSN) { |