.file "20020529-1.c" .text .align 2 .globl foo .type foo, @function foo: link.w %a6,#0 movm.l #0x3038,-(%sp) move.l 8(%a6),%a2 move.l 12(%a6),%d2 move.l 16(%a6),%d3 move.l 20(%a6),%a3 lea f1,%a4 .align 2 .L16: move.l %a2,-(%sp) jbsr (%a4) addq.l #4,%sp tst.l %d0 jbne .L15 tst.l %d2 jbne .L16 move.w %a3,8(%a2) tst.l (%a2) jbne .L17 .L7: tst.l %d3 jbne .L18 .L8: move.w 8(%a2),%a3 jbra .L16 .align 2 .L18: jbsr f2 jbra .L8 .align 2 .L17: jbsr f2 jbra .L7 .align 2 .L15: clr.l %d0 movm.l -20(%a6),#0x1c0c unlk %a6 rts .size foo, .-foo .align 2 .globl main .type main, @function main: link.w %a6,#-12 move.l %a2,-(%sp) clr.l -10(%a6) lea (-10,%a6),%a2 move.l %a2,-6(%a6) move.w #23,-2(%a6) clr.l -(%sp) clr.l -(%sp) clr.l -(%sp) move.l %a2,-(%sp) jbsr foo lea (16,%sp),%sp tst.l %d0 jbne .L21 tst.l -10(%a6) jbeq .L22 .L21: jbsr abort .align 2 .L22: cmp.l -6(%a6),%a2 jbne .L21 tst.w -2(%a6) jbne .L21 clr.l -(%sp) jbsr exit nop .size main, .-main .local beenhere.0 .comm beenhere.0,4,2 .align 2 .globl f1 .type f1, @function f1: link.w %a6,#0 move.l (beenhere.0),%d0 addq.l #1,(beenhere.0) moveq.l #1,%d1 cmp.l %d0,%d1 jbge .L24 jbsr abort .align 2 .L24: moveq.l #1,%d0 cmp.l (beenhere.0),%d0 slt %d0 extb.l %d0 neg.l %d0 unlk %a6 rts .size f1, .-f1 .align 2 .globl f2 .type f2, @function f2: link.w %a6,#0 jbsr abort nop .size f2, .-f2 .ident "GCC: (GNU) 3.3.2"