public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/46393] New: m68k code size regression
@ 2010-11-09 13:56 Anders.Montonen at iki dot fi
  2015-01-17  7:58 ` [Bug target/46393] " law at redhat dot com
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Anders.Montonen at iki dot fi @ 2010-11-09 13:56 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: m68k code size regression
           Product: gcc
           Version: 4.5.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: Anders.Montonen@iki.fi


The following code snippet compiles to 112 bytes using GCC 4.4.0 and 154 bytes
using GCC 4.5.1.

Host is OS X 10.6, target is m68k-elf bare-metal toolchain using newlib.
The code was compiled with -m68000 -Os -c.

unpack.c:
#include <stdint.h>

uint8_t ChannelMap[32];

typedef struct
{
    uint8_t note;
    uint8_t instrument;
    uint8_t volume;
    uint8_t command;
    uint8_t info;
} Channeldata_t;

Channeldata_t RowBuffer[16];

uint8_t UnpackRow(const uint8_t *pRowData)
{
    uint8_t count = 0, byte, channel, mappedchannel;
    Channeldata_t *pChannelData;

    while ((byte = *pRowData++) != 0)
    {
        ++count;
        channel = byte & 0x1f;
        mappedchannel = ChannelMap[channel];
        pChannelData = &RowBuffer[mappedchannel];

        if (byte & 0x20)
        {
            pChannelData->note = *pRowData++;
            pChannelData->instrument = *pRowData++;
            ++count;
        }
        if (byte & 0x40)
        {
            pChannelData->volume = *pRowData++;
            ++count;
        }
        if (byte & 0x80)
        {
            pChannelData->command = *pRowData++;
            pChannelData->info = *pRowData++;
            count += 2;
        }
    }

    return count;
}

GCC 4.4.0-produced code:

00000000 <UnpackRow>:
   0:    4e56 0000          linkw %fp,#0
   4:    48e7 3820          moveml %d2-%d4/%a2,%sp@-
   8:    206e 0008          moveal %fp@(8),%a0
   c:    4200               clrb %d0
   e:    45f9 0000 0000     lea 0 <UnpackRow>,%a2
  14:    604e               bras 64 <UnpackRow+0x64>
  16:    5288               addql #1,%a0
  18:    5200               addqb #1,%d0
  1a:    7400               moveq #0,%d2
  1c:    1401               moveb %d1,%d2
  1e:    761f               moveq #31,%d3
  20:    c682               andl %d2,%d3
  22:    1632 3800          moveb %a2@(0000000000000000,%d3:l),%d3
  26:    0283 0000 00ff     andil #255,%d3
  2c:    2803               movel %d3,%d4
  2e:    d883               addl %d3,%d4
  30:    d884               addl %d4,%d4
  32:    2244               moveal %d4,%a1
  34:    d3c3               addal %d3,%a1
  36:    d3fc 0000 0000     addal #0,%a1
  3c:    0802 0005          btst #5,%d2
  40:    6708               beqs 4a <UnpackRow+0x4a>
  42:    1298               moveb %a0@+,%a1@
  44:    1358 0001          moveb %a0@+,%a1@(1)
  48:    5200               addqb #1,%d0
  4a:    0802 0006          btst #6,%d2
  4e:    6706               beqs 56 <UnpackRow+0x56>
  50:    1358 0002          moveb %a0@+,%a1@(2)
  54:    5200               addqb #1,%d0
  56:    4a01               tstb %d1
  58:    6c0a               bges 64 <UnpackRow+0x64>
  5a:    1358 0003          moveb %a0@+,%a1@(3)
  5e:    1358 0004          moveb %a0@+,%a1@(4)
  62:    5400               addqb #2,%d0
  64:    1210               moveb %a0@,%d1
  66:    66ae               bnes 16 <UnpackRow+0x16>
  68:    4cdf 041c          moveml %sp@+,%d2-%d4/%a2
  6c:    4e5e               unlk %fp
  6e:    4e75               rts

GCC 4.5.1-produced code:

00000000 <UnpackRow>:
   0:    4e56 0000          linkw %fp,#0
   4:    48e7 383c          moveml %d2-%d4/%a2-%a5,%sp@-
   8:    206e 0008          moveal %fp@(8),%a0
   c:    4200               clrb %d0
   e:    49f9 0000 0000     lea 0 <UnpackRow>,%a4
  14:    47f9 0000 0000     lea 0 <UnpackRow>,%a3
  1a:    45f9 0000 0000     lea 0 <UnpackRow>,%a2
  20:    606c               bras 8e <UnpackRow+0x8e>
  22:    5288               addql #1,%a0
  24:    5200               addqb #1,%d0
  26:    721f               moveq #31,%d1
  28:    c282               andl %d2,%d1
  2a:    1234 1800          moveb %a4@(0000000000000000,%d1:l),%d1
  2e:    0281 0000 00ff     andil #255,%d1
  34:    7600               moveq #0,%d3
  36:    1602               moveb %d2,%d3
  38:    0803 0005          btst #5,%d3
  3c:    6714               beqs 52 <UnpackRow+0x52>
  3e:    2801               movel %d1,%d4
  40:    d881               addl %d1,%d4
  42:    d884               addl %d4,%d4
  44:    2244               moveal %d4,%a1
  46:    d3c1               addal %d1,%a1
  48:    1398 b800          moveb %a0@+,%a1@(0000000000000000,%a3:l)
  4c:    1398 a800          moveb %a0@+,%a1@(0000000000000000,%a2:l)
  50:    5200               addqb #1,%d0
  52:    0803 0006          btst #6,%d3
  56:    6714               beqs 6c <UnpackRow+0x6c>
  58:    2601               movel %d1,%d3
  5a:    d681               addl %d1,%d3
  5c:    d683               addl %d3,%d3
  5e:    2243               moveal %d3,%a1
  60:    d3c1               addal %d1,%a1
  62:    d3fc 0000 0000     addal #0,%a1
  68:    1298               moveb %a0@+,%a1@
  6a:    5200               addqb #1,%d0
  6c:    4a02               tstb %d2
  6e:    6c1e               bges 8e <UnpackRow+0x8e>
  70:    2401               movel %d1,%d2
  72:    d481               addl %d1,%d2
  74:    d482               addl %d2,%d2
  76:    2242               moveal %d2,%a1
  78:    d3c1               addal %d1,%a1
  7a:    2a49               moveal %a1,%a5
  7c:    dbfc 0000 0000     addal #0,%a5
  82:    1a98               moveb %a0@+,%a5@
  84:    d3fc 0000 0000     addal #0,%a1
  8a:    1298               moveb %a0@+,%a1@
  8c:    5400               addqb #2,%d0
  8e:    1410               moveb %a0@,%d2
  90:    6690               bnes 22 <UnpackRow+0x22>
  92:    4cdf 3c1c          moveml %sp@+,%d2-%d4/%a2-%a5
  96:    4e5e               unlk %fp
  98:    4e75               rts


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

* [Bug target/46393] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
@ 2015-01-17  7:58 ` law at redhat dot com
  2021-05-14  9:46 ` [Bug target/46393] [9/10/11/12 Regression] " jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: law at redhat dot com @ 2015-01-17  7:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-01-17
                 CC|                            |law at redhat dot com
     Ever confirmed|0                           |1


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

* [Bug target/46393] [9/10/11/12 Regression] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
  2015-01-17  7:58 ` [Bug target/46393] " law at redhat dot com
@ 2021-05-14  9:46 ` jakub at gcc dot gnu.org
  2021-06-01  8:05 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-05-14  9:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|8.5                         |9.4

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 8 branch is being closed.

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

* [Bug target/46393] [9/10/11/12 Regression] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
  2015-01-17  7:58 ` [Bug target/46393] " law at redhat dot com
  2021-05-14  9:46 ` [Bug target/46393] [9/10/11/12 Regression] " jakub at gcc dot gnu.org
@ 2021-06-01  8:05 ` rguenth at gcc dot gnu.org
  2022-05-27  9:34 ` [Bug target/46393] [10/11/12/13 " rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-01  8:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.4                         |9.5

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.

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

* [Bug target/46393] [10/11/12/13 Regression] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
                   ` (2 preceding siblings ...)
  2021-06-01  8:05 ` rguenth at gcc dot gnu.org
@ 2022-05-27  9:34 ` rguenth at gcc dot gnu.org
  2022-06-28 10:29 ` jakub at gcc dot gnu.org
  2023-07-07 10:29 ` [Bug target/46393] [11/12/13/14 " rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27  9:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.5                         |10.4

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed

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

* [Bug target/46393] [10/11/12/13 Regression] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
                   ` (3 preceding siblings ...)
  2022-05-27  9:34 ` [Bug target/46393] [10/11/12/13 " rguenth at gcc dot gnu.org
@ 2022-06-28 10:29 ` jakub at gcc dot gnu.org
  2023-07-07 10:29 ` [Bug target/46393] [11/12/13/14 " rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.4                        |10.5

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.

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

* [Bug target/46393] [11/12/13/14 Regression] m68k code size regression
  2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
                   ` (4 preceding siblings ...)
  2022-06-28 10:29 ` jakub at gcc dot gnu.org
@ 2023-07-07 10:29 ` rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-07 10:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46393

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.5                        |11.5

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10 branch is being closed.

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

end of thread, other threads:[~2023-07-07 10:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-09 13:56 [Bug target/46393] New: m68k code size regression Anders.Montonen at iki dot fi
2015-01-17  7:58 ` [Bug target/46393] " law at redhat dot com
2021-05-14  9:46 ` [Bug target/46393] [9/10/11/12 Regression] " jakub at gcc dot gnu.org
2021-06-01  8:05 ` rguenth at gcc dot gnu.org
2022-05-27  9:34 ` [Bug target/46393] [10/11/12/13 " rguenth at gcc dot gnu.org
2022-06-28 10:29 ` jakub at gcc dot gnu.org
2023-07-07 10:29 ` [Bug target/46393] [11/12/13/14 " rguenth 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).