------- Comment #2 from gunnar at greyhound-data dot com 2008-05-28 16:28 ------- (In reply to comment #1) > It would have been nice to check at least gcc 4.3 (or better current trunk). >
I have verified this with the most current GCC source trunk. GCC 4.4 code snapshot 2008-05-23 The problem is still persistant. GCC sets up his work registers inside the work loop. write_32x4: link.w %fp,#0 move.l 16(%fp),%d0 move.l 8(%fp),%a0 lsr.l #4,%d0 jra .L50 .L51: moveq #1,%d1 move.l %d1,(%a0) move.l %d1,4(%a0) move.l %d1,8(%a0) move.l %d1,12(%a0) lea (16,%a0),%a0 subq.l #1,%d0 .L50: tst.l %d0 jne .L51 unlk %fp rts -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36136