.file "loop-15.c" .text .align 2 .globl foo .type foo, @function foo: link.w %a6,#0 move.l %a2,-(%sp) move.l 8(%a6),%d0 move.l 12(%a6),%a2 lea (-4,%a2),%a0 move.l %a0,%a1 cmp.l %a2,%d0 jbcc .L7 .align 2 .L5: move.l (%a1),(%a2) subq.l #4,%a1 move.l %a0,%a2 cmp.l %a0,%d0 jbcc .L7 subq.l #4,%a0 jbra .L5 .align 2 .L7: move.l (%sp)+,%a2 unlk %a6 rts .size foo, .-foo .align 2 .globl main .type main, @function main: link.w %a6,#-20 movm.l #0x3c30,-(%sp) clr.l %d4 lea (-20,%a6),%a2 lea foo,%a3 .L42: clr.l %d3 move.l %d4,%d5 lsl.l #2,%d5 .align 2 .L41: clr.l -20(%a6) moveq.l #1,%d0 move.l %d0,-16(%a6) moveq.l #2,%d0 move.l %d0,-12(%a6) moveq.l #3,%d0 move.l %d0,-8(%a6) moveq.l #4,%d0 move.l %d0,-4(%a6) pea (%a2,%d3.l*4) pea (%a2,%d5.l) jbsr (%a3) clr.l %d1 addq.l #8,%sp cmp.l %d1,%d4 jblt .L50 lea (-20,%a6),%a0 .align 2 .L28: cmp.l (%a0)+,%d1 jbne .L65 addq.l #1,%d1 cmp.l %d1,%d4 jbge .L28 .L50: move.l %d4,%d2 addq.l #1,%d2 move.l %d2,%d1 cmp.l %d2,%d3 jblt .L52 lea -20(%a6,%d2.l*4),%a0 .align 2 .L34: move.l %d1,%d0 subq.l #1,%d0 cmp.l (%a0)+,%d0 jbne .L65 addq.l #1,%d1 cmp.l %d1,%d3 jbge .L34 .L52: move.l %d3,%d0 addq.l #1,%d0 move.l %d0,%d1 moveq.l #4,%d3 cmp.l %d0,%d3 jblt .L54 lea -20(%a6,%d0.l*4),%a0 .align 2 .L40: cmp.l (%a0)+,%d1 jbne .L65 addq.l #1,%d1 moveq.l #4,%d3 cmp.l %d1,%d3 jbge .L40 .L54: move.l %d0,%d3 moveq.l #4,%d0 cmp.l %d3,%d0 jbge .L41 move.l %d2,%d4 cmp.l %d2,%d0 jbge .L42 jbra .L66 .align 2 .L65: jbsr abort .align 2 .L66: clr.l %d0 movm.l -44(%a6),#0xc3c unlk %a6 rts .size main, .-main .ident "GCC: (GNU) 3.3.2"