.file "duff-3.c" .text .little .text .align 1 .align 5 .global duffcpy .type duffcpy, @function duffcpy: mov r6,r2 mov #7,r3 add #7,r2 mov.l r14,@-r15 shlr2 r2 mov #7,r1 shlr r2 and r6,r3 cmp/hi r1,r3 bt/s .L18 mov r15,r14 mova .L15,r0 mov.b @(r0,r3),r1 braf r1 nop .L17: .align 2 .L15: .byte .L4-.L17 .byte .L13-.L17 .byte .L12-.L17 .byte .L11-.L17 .byte .L10-.L17 .byte .L9-.L17 .byte .L8-.L17 .byte .L7-.L17 .align 5 .L4: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L7: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L8: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L9: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L10: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L11: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L12: mov.b @r5+,r1 mov.b r1,@r4 add #1,r4 .L13: mov.b @r5+,r1 dt r2 mov.b r1,@r4 bf/s .L4 add #1,r4 .L18: mov r14,r15 rts mov.l @r15+,r14 .size duffcpy, .-duffcpy .global testpat .section .rodata .align 2 .type testpat, @object .size testpat, 46 testpat: .string "The quick brown fox jumped over the lazy dog." .text .align 1 .align 5 .global main .type main, @function main: mov.l r14,@-r15 mov #46,r6 sts.l pr,@-r15 mov.l .L21,r1 add #-64,r15 mov r15,r14 mov.l .L24,r5 jsr @r1 mov r14,r4 mov.l .L23,r0 mov r14,r4 mov.l .L24,r5 jsr @r0 mov #46,r6 tst r0,r0 bt .L20 mov.l .L25,r1 jsr @r1 nop .align 5 .L20: mov.l .L26,r1 jsr @r1 mov #0,r4 .L27: .align 2 .L21: .long duffcpy .L24: .long testpat .L23: .long memcmp .L25: .long abort .L26: .long exit .size main, .-main .ident "GCC: (GNU) 3.3.2"