I know about post_inc method for byte vars and it IS implemented.
I have no idea why this does not work. still investigating.

~d

On Thursday 21 August 2003 12:14, Ralf Guetlein wrote:
> Dmitry,
>
> I posted a suggestion for optimization a week ago.
> This seems to be a good candidate for the peephole optimizer.
> See original post below.
>
> Ralf
>
> -----------------------
>
>
> "Ralf Guetlein" <ralf.guetl...@web.de> schrieb im Newsbeitrag
> news:bh819s$5v...@sea.gmane.org...
>
> > Hi all,
> >
> > as you see in the disassembly listing below, there is
> > a small lack of optimisation:
> >
> > The compiler refuses to use autoincrement when moving
> > byte blocks. With integer values it works ok.
> >
> > move bytes:
> >    6: ee 4f 00 00  mov.b @r15, 0(r14) ;
> >    a: 1f 53        inc r15  ;
> >    c: 1e 53        inc r14  ;
> >
> > move integers:
> >   1c: be 4f 00 00  mov @r15+, 0(r14) ;
> >   20: 2e 53        incd r14  ;
> >
> > I assume this can be fixed easily, but I'm not too much
> > involved in gcc programming now, so I ask for your support.
> >
> > Regards,
> > Ralf
> >
> > See the whole listing below:
> >
> >
> >
> > test.o:     file format elf32-msp430
> >
> > Disassembly of section .text:
> >
> > 00000000 <copybytes>:
> > void copybytes(char *src, char *dst, int len)
> > {
> >   while (len--)
> >    0: 3d 53        add #-1, r13 ;r3 As==11
> >    2: 3d 93        cmp #-1, r13 ;r3 As==11
> >    4: 07 24        jz $+16      ;abs 0x14
> >     *dst++ = *src++;
> >    6: ee 4f 00 00  mov.b @r15, 0(r14) ;
> >    a: 1f 53        inc r15  ;
> >    c: 1e 53        inc r14  ;
> >    e: 3d 53        add #-1, r13 ;r3 As==11
> >   10: 3d 93        cmp #-1, r13 ;r3 As==11
> >   12: f9 23        jnz $-12      ;abs 0x6
> > }
> >   14: 30 41        ret
> >
> > 00000016 <copywords>:
> >
> >
> > void copywords(int *src, int *dst, int len)
> > {
> >   while (len--)
> >   16: 3d 53        add #-1, r13 ;r3 As==11
> >   18: 3d 93        cmp #-1, r13 ;r3 As==11
> >   1a: 06 24        jz $+14      ;abs 0x28
> >     *dst++ = *src++;
> >   1c: be 4f 00 00  mov @r15+, 0(r14) ;
> >   20: 2e 53        incd r14  ;
> >   22: 3d 53        add #-1, r13 ;r3 As==11
> >   24: 3d 93        cmp #-1, r13 ;r3 As==11
> >   26: fa 23        jnz $-10      ;abs 0x1c
> > }
> >   28: 30 41        ret
>
> -------------------------------------------------------
> This SF.net email is sponsored by: VM Ware
> With VMware you can run multiple operating systems on a single machine.
> WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
> at the same time. Free trial click
> here:http://www.vmware.com/wl/offer/358/0
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users

-- 
/*****************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild     UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  State Polytechnical Univ.
      (_Y_.)'  ._   )  `._ `. ``-..-'   Radio-Physics Departament
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,  Russia
   (il),-''  (li),'  ((!.-'             +7 (812) 5403923, 5585314
 *****************************************************************/


Reply via email to