public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/50751] New: SH Target: Displacement addressing does not work for QImode and HImode
@ 2011-10-16 22:56 oleg.endo@t-online.de
  2011-10-17  0:30 ` [Bug target/50751] " kkojima at gcc dot gnu.org
                   ` (39 more replies)
  0 siblings, 40 replies; 41+ messages in thread
From: oleg.endo@t-online.de @ 2011-10-16 22:56 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 50751
           Summary: SH Target: Displacement addressing does not work for
                    QImode and HImode
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: oleg.endo@t-online.de
                CC: kkojima@gcc.gnu.org
            Target: sh*-*-*


Displacement addressing is only used for SImode but not
for QImode nor HImode. The following example summarizes the 
problem:

struct X
{
  char    a, b, c, d;
  short e, f;
  int   g, h;
};


int test_func_4 (X* x)
{
  return x->b + x->e + x->g;
}

compiled with: -Os -m4-single -ml -S

    mov    r4,r1
    add    #1,r1
    mov.b    @r1,r0
    add    #3,r1
    mov.w    @r1,r1
    add    r1,r0
    mov.l    @(8,r4),r1
    rts    
    add    r1,r0

would be better as:


    mov.b    @(1,r4),r0
    mov    r0,r1
    mov.w    @(4,r4),r0
    add    r0,r1
    mov.l    @(8,r4),r0
    add    r1,r0
    rts
    nop


Using built-in specs.
COLLECT_GCC=sh-elf-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/sh-elf/4.7.0/lto-wrapper
Target: sh-elf
Configured with: ../gcc-trunk/configure --target=sh-elf --prefix=/usr/local
--enable-languages=c,c++ --enable-multilib --disable-libssp --disable-nls
--disable-werror --enable-lto --with-newlib --with-gnu-as --with-gnu-ld
--with-system-zlib
Thread model: single
gcc version 4.7.0 20111016 (experimental) (GCC)


^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2015-02-08 22:26 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-16 22:56 [Bug target/50751] New: SH Target: Displacement addressing does not work for QImode and HImode oleg.endo@t-online.de
2011-10-17  0:30 ` [Bug target/50751] " kkojima at gcc dot gnu.org
2011-10-17  0:38 ` oleg.endo@t-online.de
2011-10-17  0:51 ` kkojima at gcc dot gnu.org
2011-10-23 21:57 ` oleg.endo@t-online.de
2011-10-24 23:05 ` kkojima at gcc dot gnu.org
2011-10-26 22:37 ` oleg.endo@t-online.de
2011-10-26 23:07 ` oleg.endo@t-online.de
2011-10-27  2:31 ` kkojima at gcc dot gnu.org
2011-10-27  9:31 ` oleg.endo@t-online.de
2011-10-27 21:11 ` oleg.endo@t-online.de
2011-10-27 21:54 ` oleg.endo@t-online.de
2011-10-27 22:35 ` kkojima at gcc dot gnu.org
2011-11-02  0:16 ` oleg.endo@t-online.de
2011-11-02  0:58 ` kkojima at gcc dot gnu.org
2011-11-02  1:38 ` oleg.endo@t-online.de
2011-11-18  0:03 ` oleg.endo@t-online.de
2011-11-28 13:18 ` oleg.endo@t-online.de
2011-12-11  1:00 ` oleg.endo@t-online.de
2011-12-12  2:11 ` kkojima at gcc dot gnu.org
2011-12-12  2:29 ` oleg.endo@t-online.de
2011-12-12 22:16 ` kkojima at gcc dot gnu.org
2012-02-26 23:24 ` olegendo at gcc dot gnu.org
2012-03-19 19:19 ` olegendo at gcc dot gnu.org
2012-03-21 20:39 ` olegendo at gcc dot gnu.org
2012-03-27 20:37 ` olegendo at gcc dot gnu.org
2012-04-05 18:44 ` olegendo at gcc dot gnu.org
2012-04-11 11:35 ` olegendo at gcc dot gnu.org
2012-04-11 23:01 ` olegendo at gcc dot gnu.org
2012-04-19  9:31 ` olegendo at gcc dot gnu.org
2012-04-30 19:38 ` olegendo at gcc dot gnu.org
2012-08-09 15:51 ` olegendo at gcc dot gnu.org
2012-08-14 17:54 ` olegendo at gcc dot gnu.org
2013-11-26 11:48 ` olegendo at gcc dot gnu.org
2013-12-06 19:34 ` olegendo at gcc dot gnu.org
2013-12-08 14:19 ` olegendo at gcc dot gnu.org
2014-09-12 17:29 ` olegendo at gcc dot gnu.org
2014-12-07 22:57 ` olegendo at gcc dot gnu.org
2014-12-07 22:59 ` olegendo at gcc dot gnu.org
2014-12-07 23:01 ` olegendo at gcc dot gnu.org
2015-02-08 22:26 ` olegendo at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).