This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch committed] Fix PR target/38991


Hi,

The attached patch is to fix PR target/38991

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38991

which is a 4.3/4.4 regression on SH.  I guess that the check
removed with this patch was needed before Joern rewrote
the secondary reload framework of this target but now it's
unnecessary restrictive.  The patch is tested with bootstrap
and the top level "make -k check" with no new failures on
sh4-unknown-linux-gnu.  Committed on mainline.

I'll backport it when similar tests on the 4.3-branch are done
successfully.

Regards,
	kaz
--
2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/38991
	* config/sh/predicates.md (general_movsrc_operand): Don't check
	the subreg of system registers here.

--- ORIG/trunk/gcc/config/sh/predicates.md	2008-04-05 09:19:14.000000000 +0900
+++ LOCAL/trunk/gcc/config/sh/predicates.md	2009-02-06 08:41:43.000000000 +0900
@@ -1,5 +1,5 @@
 ;; Predicate definitions for Renesas / SuperH SH.
-;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GCC.
 ;;
@@ -392,12 +392,6 @@
 	return 0;
     }
 
-  if ((mode == QImode || mode == HImode)
-      && (GET_CODE (op) == SUBREG
-	  && GET_CODE (XEXP (op, 0)) == REG
-	  && system_reg_operand (XEXP (op, 0), mode)))
-    return 0;
-
   if (TARGET_SHMEDIA
       && (GET_CODE (op) == PARALLEL || GET_CODE (op) == CONST_VECTOR)
       && sh_rep_vec (op, mode))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]