From 689fcba8611f93ce241fa090a0423e8d35324027 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Mon, 20 Jul 1998 02:20:07 +0000 Subject: [PATCH] jump.c (jump_optimize): When simplifying noop moves and PUSH_ROUNDING... * jump.c (jump_optimize): When simplifying noop moves and PUSH_ROUNDING, fix thinko so we use same criterion for identifying the PUSHes to rewrite in second loop as we did in the first. From-SVN: r21302 --- gcc/ChangeLog | 6 ++++++ gcc/jump.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 09417a6e8fa..b2867b12c6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Jul 20 01:11:11 1998 David S. Miller + + * jump.c (jump_optimize): When simplifying noop moves and + PUSH_ROUNDING, fix thinko so we use same criterion for identifying + the PUSHes to rewrite in second loop as we did in the first. + Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi * cplus-dem.c (demangle_nested_args): Make function definition diff --git a/gcc/jump.c b/gcc/jump.c index fce3dc02771..dfc4ae64c3e 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -402,9 +402,14 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan) if (GET_CODE (p) != INSN) break; pbody = PATTERN (p); - if (GET_CODE (pbody) == SET) + if (GET_CODE (pbody) != SET) break; dest = SET_DEST (pbody); + /* Allow a no-op move between the adjust and the push. */ + if (GET_CODE (dest) == REG + && GET_CODE (SET_SRC (pbody)) == REG + && REGNO (dest) == REGNO (SET_SRC (pbody))) + continue; if (! (GET_CODE (dest) == MEM && GET_CODE (XEXP (dest, 0)) == POST_INC && XEXP (XEXP (dest, 0), 0) == stack_pointer_rtx)) -- 2.30.2