.file "20010915-1.c" .globl check .section .bss .align 2 .type check, @object .size check, 4 check: .zero 4 .globl o .align 2 .type o, @object .size o, 4 o: .zero 4 .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "a" .LC1: .string "b" .LC2: .string "c" .LC3: .string "d" .LC4: .string "e" .text .align 2 .globl main .type main, @function main: link.w %a6,#-20 move.l #.LC0,-20(%a6) move.l #.LC1,-16(%a6) move.l #.LC2,-12(%a6) move.l #.LC3,-8(%a6) move.l #.LC4,-4(%a6) pea -20(%a6) pea 5.w jbsr x addq.l #8,%sp tst.l %d0 jbne .L3 moveq.l #2,%d0 cmp.l check,%d0 jbeq .L4 .L3: jbsr abort .align 2 .L4: moveq.l #5,%d0 cmp.l o,%d0 jbne .L3 clr.l -(%sp) jbsr exit nop .size main, .-main .align 2 .globl x .type x, @function x: link.w %a6,#-4 movm.l #0x2038,-(%sp) move.l 8(%a6),%d2 move.l 12(%a6),%a3 clr.l -4(%a6) move.l o,%d0 cmp.l %d2,%d0 jbge .L6 moveq.l #2,%d1 cmp.l %d2,%d1 jblt .L19 .L6: jbsr abort .align 2 .L19: move.l (%a3,%d0.l*4),%d0 jbeq .L6 pea -4(%a6) move.l %d0,-(%sp) lea s,%a4 jbsr (%a4) move.l %a0,%a2 addq.l #8,%sp tst.l %a0 jbeq .L7 clr.b (%a2)+ pea -4(%a6) move.l %a2,-(%sp) jbsr (%a4) move.l %a0,h addq.l #8,%sp cmp.l -4(%a6),%a2 jbeq .L20 .L7: pea -4(%a6) move.l o,%d0 move.l (%a3,%d0.l*4),-(%sp) jbsr (%a4) move.l %a0,u move.l o,%d0 move.l (%a3,%d0.l*4),%d1 addq.l #8,%sp cmp.l -4(%a6),%d1 jbeq .L21 .L10: addq.l #1,%d0 move.l %d0,o cmp.l %d0,%d2 jble .L17 lea r,%a2 .align 2 .L15: move.l (%a3,%d0.l*4),-(%sp) jbsr (%a2) addq.l #4,%sp moveq.l #1,%d1 tst.l %d0 jbeq .L5 move.l o,%d0 addq.l #1,%d0 move.l %d0,o cmp.l %d0,%d2 jbgt .L15 .L17: clr.l %d1 jbra .L5 .align 2 .L21: move.l %d1,-(%sp) jbsr m move.l %a0,u addq.l #4,%sp move.l o,%d0 jbra .L10 .align 2 .L20: move.l %a2,-(%sp) jbsr m move.l %a0,h addq.l #4,%sp jbra .L7 .align 2 .L5: move.l %d1,%d0 movm.l -20(%a6),#0x1c04 unlk %a6 rts .size x, .-x .align 2 .globl m .type m, @function m: link.w %a6,#0 jbsr abort nop .size m, .-m .align 2 .globl s .type s, @function s: link.w %a6,#0 move.l %d2,-(%sp) move.l 8(%a6),%d2 pea 2.w pea .LC0 move.l %d2,-(%sp) jbsr memcmp lea (12,%sp),%sp tst.l %d0 jbne .L25 move.l check,%d0 addq.l #1,check moveq.l #1,%d1 cmp.l %d0,%d1 jbge .L24 .L25: jbsr abort .align 2 .L24: move.l 12(%a6),%a0 addq.l #1,%d2 move.l %d2,(%a0) sub.l %a0,%a0 move.l %a0,%d0 move.l -4(%a6),%d2 unlk %a6 rts .size s, .-s .data .type c.0, @object .size c.0, 2 c.0: .string "b" .local cnt.1 .comm cnt.1,4,2 .text .align 2 .globl r .type r, @function r: link.w %a6,#0 move.l %d2,-(%sp) move.l 8(%a6),%a0 move.b (%a0),%d0 cmp.b (c.0),%d0 jbne .L28 move.b 1(%a0),%d1 cmp.b c.0+1,%d1 jbeq .L29 .L28: jbsr abort .align 2 .L29: move.l (cnt.1),%d1 moveq.l #3,%d2 cmp.l %d1,%d2 jblt .L28 addq.b #1,%d0 move.b %d0,(c.0) addq.l #1,%d1 move.l %d1,(cnt.1) moveq.l #1,%d0 move.l -4(%a6),%d2 unlk %a6 rts .size r, .-r .comm u,4,2 .comm h,4,2 .ident "GCC: (GNU) 3.3.2"