.file "991016-1.c" .text .align 2 .globl doit .type doit, @function doit: link.w %a6,#0 move.l 8(%a6),%d0 move.l 12(%a6),%a0 move.l 16(%a6),%a1 moveq.l #1,%d1 cmp.l %d0,%d1 jbeq .L8 jbge .L26 moveq.l #2,%d1 cmp.l %d0,%d1 jbeq .L13 .L18: jbsr abort .align 2 .L13: move.l (%a1),%d0 move.l 4(%a1),%d1 .align 2 .L14: add.l %d1,%d1 addx.l %d0,%d0 subq.l #1,%a0 tst.l %a0 jbne .L14 move.l %d0,(%a1) move.l %d1,4(%a1) move.l (%a1),%d0 or.l 4(%a1),%d0 .align 2 .L24: tst.l %d0 seq %d0 extb.l %d0 neg.l %d0 jbra .L1 .align 2 .L26: tst.l %d0 jbne .L18 move.l (%a1),%d0 .align 2 .L4: add.l %d0,%d0 subq.l #1,%a0 tst.l %a0 jbne .L4 .align 2 .L25: move.l %d0,(%a1) jbra .L24 .align 2 .L8: move.l (%a1),%d0 .align 2 .L9: add.l %d0,%d0 subq.l #1,%a0 tst.l %a0 jbne .L9 jbra .L25 .align 2 .L1: unlk %a6 rts .size doit, .-doit .align 2 .globl main .type main, @function main: link.w %a6,#-16 movm.l #0x3020,-(%sp) moveq.l #1,%d0 move.l %d0,-4(%a6) pea -4(%a6) pea 5.w clr.l -(%sp) lea doit,%a2 jbsr (%a2) moveq.l #1,%d2 move.l %d2,-8(%a6) pea -8(%a6) pea 5.w pea 1.w jbsr (%a2) clr.l -16(%a6) move.l #1,-12(%a6) pea -16(%a6) pea 5.w pea 2.w jbsr (%a2) lea (36,%sp),%sp moveq.l #32,%d3 cmp.l -4(%a6),%d3 jbne .L31 moveq.l #32,%d0 cmp.l -8(%a6),%d0 jbne .L31 move.l -16(%a6),%d0 move.l -12(%a6),%d1 clr.l %d2 moveq.l #32,%d3 sub.l %d3,%d1 subx.l %d2,%d0 jbeq .L30 .L31: jbsr abort .align 2 .L30: clr.l -(%sp) jbsr exit nop .size main, .-main .ident "GCC: (GNU) 3.3.2"