.file "sibcall-3.c" .text .align 2 .globl main .type main, @function main: link.w %a6,#0 clr.l -(%sp) jbsr recurser_void1 clr.l -(%sp) jbsr exit nop .size main, .-main .align 2 .type recurser_void1, @function recurser_void1: link.w %a6,#0 move.l %a2,-(%sp) move.l 8(%a6),%a2 tst.l %a2 jbeq .L4 moveq.l #7,%d0 cmp.l %a2,%d0 jbeq .L4 moveq.l #8,%d0 cmp.l %a2,%d0 jbeq .L4 .L3: moveq.l #10,%d0 cmp.l %a2,%d0 jbeq .L2 pea 1(%a2) jbsr recurser_void2 jbra .L2 .align 2 .L4: move.l %a2,-(%sp) jbsr track addq.l #4,%sp jbra .L3 .align 2 .L2: move.l -4(%a6),%a2 unlk %a6 rts .size recurser_void1, .-recurser_void1 .align 2 .type recurser_void2, @function recurser_void2: link.w %a6,#0 move.l %a2,-(%sp) move.l 8(%a6),%a2 tst.l %a2 jbeq .L8 moveq.l #7,%d0 cmp.l %a2,%d0 jbeq .L8 moveq.l #8,%d0 cmp.l %a2,%d0 jbeq .L8 .L7: moveq.l #10,%d0 cmp.l %a2,%d0 jbeq .L6 pea 1(%a2) jbsr recurser_void1 jbra .L6 .align 2 .L8: move.l %a2,-(%sp) jbsr track addq.l #4,%sp jbra .L7 .align 2 .L6: move.l -4(%a6),%a2 unlk %a6 rts .size recurser_void2, .-recurser_void2 .align 2 .globl track .type track, @function track: link.w %a6,#-4 move.l 8(%a6),%d0 jbne .L11 lea (-1,%a6),%a0 move.l %a0,trackpoint jbra .L10 .align 2 .L11: subq.l #7,%d0 moveq.l #1,%d1 cmp.l %d0,%d1 jbcs .L14 move.l %a6,%d0 subq.l #1,%d0 cmp.l trackpoint,%d0 jbeq .L10 .L14: jbsr abort .align 2 .L10: unlk %a6 rts .size track, .-track .comm trackpoint,4,2 .ident "GCC: (GNU) 3.3.2"