This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36780] [4.3/4.4 Regression] Wrong reload generated for subreg address on SH
- From: "kkojima at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Jul 2008 01:27:23 -0000
- Subject: [Bug target/36780] [4.3/4.4 Regression] Wrong reload generated for subreg address on SH
- References: <bug-36780-5208@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from kkojima at gcc dot gnu dot org 2008-07-10 01:27 -------
Created an attachment (id=15882)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15882&action=view)
A reduced test case for -O0
Before r137639, the insn in problem was
(insn 200 330 331 20 yyy.cc:181 (set (mem/c:SI (plus:SI (reg:SI 6 r6)
(const_int 0 [0x0])) [0 D.2244+4 S8 A32])
(reg:SI 1 r1 [261])) 175 {movsi_ie} (nil))
and now the memory address is reloaded like as
(insn 331 330 200 20 xxx.cc:181 (set (reg:SI 2 r2)
(plus:SI (reg:SI 6 r6)
(const_int 0 [0x0]))) 35 {*addsi3_compact} (nil))
(insn 200 331 332 20 xxx.cc:181 (set (mem/c:SI (reg:SI 2 r2) [0 D.2244+4 S8
A32])
(reg:SI 1 r1 [261])) 175 {movsi_ie} (nil))
but SH has no add instruction whose destination and source differs.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36780