[PATCH/RFC] PR target/18511: Cross build failure on sh4-unknown-linux-gnu

Kaz Kojima kkojima@rr.iij4u.or.jp
Tue Nov 16 03:15:00 GMT 2004


Hi,

The appended patch is to avoid the failure described in

http://gcc.gnu.org/ml/gcc/2004-11/msg00143.html

which is preventing x86 cross sh4-unknown-linux-gnu builds since
Oct 29.  I hope that the experts will comment about this because
the reload is beyond my powers.
Anyway, the patch is tested with bootstraps on i686-linux and
sh4-unknown-linux-gnu without new regressions.

Regards,
	kaz
--
2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/18511
	* reload1.c (emit_output_reload_insns): Check if OLD is a hard
	register before calling regno_clobbered_p.

diff -uprN ORIG/gcc/gcc/reload1.c LOCAL/gcc/gcc/reload1.c
--- ORIG/gcc/gcc/reload1.c	2004-11-13 10:52:51.000000000 +0900
+++ LOCAL/gcc/gcc/reload1.c	2004-11-16 09:57:11.000000000 +0900
@@ -6706,7 +6706,8 @@ emit_output_reload_insns (struct insn_ch
 	  || !(set = single_set (insn))
 	  || rtx_equal_p (old, SET_DEST (set))
 	  || !reg_mentioned_p (old, SET_SRC (set))
-	  || !regno_clobbered_p (REGNO (old), insn, rl->mode, 0))
+	  || !((REGNO (old) < FIRST_PSEUDO_REGISTER)
+	       && regno_clobbered_p (REGNO (old), insn, rl->mode, 0)))
 	gen_reload (old, reloadreg, rl->opnum,
 		    rl->when_needed);
     }



More information about the Gcc-patches mailing list