.file "duff-2.c" .text .align 2 .globl cksum .type cksum, @function cksum: link.w %a6,#0 move.l %d3,-(%sp) move.l %d2,-(%sp) move.l 8(%a6),%a0 move.l 12(%a6),%d1 clr.l %d2 moveq.l #3,%d0 and.l %d1,%d0 moveq.l #1,%d3 cmp.l %d0,%d3 jbeq .L9 jbhi .L6 moveq.l #2,%d3 cmp.l %d0,%d3 jbeq .L8 moveq.l #3,%d3 cmp.l %d0,%d3 jbne .L2 .align 2 .L7: clr.l %d0 move.b (%a0)+,%d0 swap %d0 clr.w %d0 eor.l %d0,%d2 subq.l #1,%d1 .L8: clr.l %d0 move.b (%a0)+,%d0 lsl.l #8,%d0 eor.l %d0,%d2 subq.l #1,%d1 .L9: clr.l %d0 move.b (%a0)+,%d0 eor.l %d0,%d2 subq.l #1,%d1 jbeq .L2 .L6: clr.l %d0 move.b (%a0)+,%d0 moveq.l #24,%d3 lsl.l %d3,%d0 eor.l %d0,%d2 subq.l #1,%d1 jbra .L7 .align 2 .L2: move.l %d2,%d0 move.l (%sp)+,%d2 move.l (%sp)+,%d3 unlk %a6 rts .size cksum, .-cksum .globl testpat .section .rodata .type testpat, @object .size testpat, 46 testpat: .string "The quick brown fox jumped over the lazy dog." .text .align 2 .globl main .type main, @function main: link.w %a6,#0 pea 46.w pea testpat jbsr cksum addq.l #8,%sp cmp.l #925902908,%d0 jbeq .L14 jbsr abort .align 2 .L14: clr.l -(%sp) jbsr exit nop .size main, .-main .ident "GCC: (GNU) 3.3.2"