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

Georg-Johann Lay <gjl at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |WORKSFORME

--- Comment #9 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-12-15 
19:07:02 UTC ---
Code looks much better now. Great!

With options
$ avr-gcc in.c -c -save-temps -dp -Os -mmcu=avr4 -mstrict-X

The code is:

func1:
    push r28     ;  43    pushqi1/1    [length = 1]
    push r29     ;  44    pushqi1/1    [length = 1]
/* prologue: function */
/* frame size = 0 */
/* stack size = 2 */
.L__stack_usage = 2
    movw r18,r24     ;  2    *movhi/1    [length = 1]
    movw r28,r22     ;  3    *movhi/1    [length = 1]
    ld r24,Y     ;  8    movqi_insn/4    [length = 1]
    movw r26,r18     ;  37    *movhi/1    [length = 1]
    ld r25,X     ;  9    movqi_insn/4    [length = 1]
    add r24,r25     ;  10    addqi3/1    [length = 1]
    movw r30,r20     ;  38    *movhi/1    [length = 1]
    ld r25,Z     ;  11    movqi_insn/4    [length = 1]
    add r24,r25     ;  12    addqi3/1    [length = 1]
    movw r30,r18     ;  39    *movhi/1    [length = 1]
    ldd r25,Z+1     ;  13    movqi_insn/4    [length = 1]
    add r24,r25     ;  14    addqi3/1    [length = 1]
    ldd r25,Y+1     ;  15    movqi_insn/4    [length = 1]
    add r24,r25     ;  16    addqi3/1    [length = 1]
    movw r30,r20     ;  40    *movhi/1    [length = 1]
    ldd r25,Z+1     ;  17    movqi_insn/4    [length = 1]
    add r24,r25     ;  18    addqi3/1    [length = 1]
    movw r30,r18     ;  41    *movhi/1    [length = 1]
    ldd r25,Z+2     ;  19    movqi_insn/4    [length = 1]
    add r24,r25     ;  20    addqi3/1    [length = 1]
    ldd r25,Y+2     ;  21    movqi_insn/4    [length = 1]
    add r24,r25     ;  22    addqi3/1    [length = 1]
    movw r30,r20     ;  42    *movhi/1    [length = 1]
    ldd r25,Z+2     ;  23    movqi_insn/4    [length = 1]
    add r24,r25     ;  29    addqi3/1    [length = 1]
/* epilogue start */
    pop r29     ;  47    popqi    [length = 1]
    pop r28     ;  48    popqi    [length = 1]
    ret     ;  49    return_from_epilogue    [length = 1]

Reply via email to