.file "cleanup-3.c" .text .align 2 .type handler, @function handler: link.w %a6,#0 move.l 8(%a6),%a0 move.l (%a0),%a0 cmp.l expected,%a0 jbeq .L1 jbsr abort .align 2 .L1: unlk %a6 rts .size handler, .-handler .align 2 .type bar, @function bar: link.w %a6,#0 unlk %a6 rts .size bar, .-bar .align 2 .type doit, @function doit: link.w %a6,#-4 move.l %d3,-(%sp) move.l %d2,-(%sp) move.l 8(%a6),%d3 move.l 12(%a6),%d2 cmp.l %d3,%d2 jble .L5 clr.l -4(%a6) jbra .L6 .align 2 .L5: jbsr bar add.l %d2,%d3 move.l %d3,-4(%a6) .L6: pea -4(%a6) jbsr handler addq.l #4,%sp move.l -12(%a6),%d2 move.l -8(%a6),%d3 unlk %a6 rts .size doit, .-doit .align 2 .globl main .type main, @function main: link.w %a6,#0 move.l %a2,-(%sp) clr.l expected pea 2.w pea 1.w lea doit,%a2 jbsr (%a2) moveq.l #3,%d0 move.l %d0,expected pea 1.w pea 2.w jbsr (%a2) clr.l %d0 move.l -4(%a6),%a2 unlk %a6 rts .size main, .-main .local expected .comm expected,4,2 .ident "GCC: (GNU) 3.3.2"