------- Comment #1 from ramana at gcc dot gnu dot org  2009-12-30 00:19 -------
This appears to be a 4.4 only size regression and this  appears to be fixed on
trunk.

With -Os -march=armv5te -mthumb size is 44 bytes on trunk as of today. gcc
version 4.5.0 20091229 (experimental) (GCC) 


00000000 <number_blocks>:
   0:   b5f0            push    {r4, r5, r6, r7, lr}
   2:   4b09            ldr     r3, [pc, #36]   ; (28 <number_blocks+0x28>)
   4:   2200            movs    r2, #0
   6:   681b            ldr     r3, [r3, #0]
   8:   2503            movs    r5, #3
   a:   e007            b.n     1c <number_blocks+0x1c>
   c:   c910            ldmia   r1!, {r4}
   e:   009f            lsls    r7, r3, #2
  10:   6826            ldr     r6, [r4, #0]
  12:   3201            adds    r2, #1
  14:   402e            ands    r6, r5
  16:   433e            orrs    r6, r7
  18:   3301            adds    r3, #1
  1a:   6026            str     r6, [r4, #0]
  1c:   4282            cmp     r2, r0
  1e:   dbf5            blt.n   c <number_blocks+0xc>
  20:   4a01            ldr     r2, [pc, #4]    ; (28 <number_blocks+0x28>)
  22:   6013            str     r3, [r2, #0]
  24:   bdf0            pop     {r4, r5, r6, r7, pc}
  26:   46c0            nop                     ; (mov r8, r8)
  28:   00000000        .word   0x00000000


-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-12-30 00:19:26
               date|                            |
            Summary|Code bloating on operations |[4.4 only] Code bloating on
                   |with bit fields             |operations with bit fields


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

Reply via email to