------- Comment #2 from gunnar at greyhound-data dot com 2008-05-28 16:18 ------- (In reply to comment #1) > It would have been nice to check at least gcc 4.3 (or better current trunk). >
I've verified with latest source gcc source "version 4.4.0 20080523 (experimental) (GCC)" The most current GCC source still has the problem that ADD.L instructions are used for incrementing pointers instead using shorter LEA instruction. Code generated by GCC 4.4 for the testcase. copy_32x4: link.w %fp,#-12 movem.l #3076,(%sp) move.l 16(%fp),%d2 lsr.l #4,%d2 move.l 8(%fp),%a3 move.l 12(%fp),%a2 jra .L6 .L7: move.l (%a2),%a1 subq.l #1,%d2 move.l 4(%a2),%d0 move.l 8(%a2),%d1 move.l 12(%a2),%a0 add.l #16,%a2 move.l %a1,(%a3) move.l %d0,4(%a3) move.l %d1,8(%a3) move.l %a0,12(%a3) add.l #16,%a3 .L6: tst.l %d2 jne .L7 movem.l (%sp),#3076 unlk %fp rts Regards Gunnar -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36134