This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch committed] Fix PR target/38991
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 06 Feb 2009 09:31:15 +0900 (JST)
- Subject: [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))