.file "duff-1.c" .text .little .text .align 1 .align 5 .global duffcpy .type duffcpy, @function duffcpy: mov #3,r3 mov.l r14,@-r15 and r6,r3 mov #3,r1 cmp/hi r1,r3 mov r15,r14 bt/s .L15 mov r6,r2 mova .L11,r0 mov.b @(r0,r3),r1 braf r1 nop .L13: .align 2 .L11: .byte .L9-.L13 .byte .L8-.L13 .byte .L7-.L13 .byte .L6-.L13 .align 5 .L9: mov #3,r1 cmp/hi r1,r2 bt .L14 .L15: mov r14,r15 rts mov.l @r15+,r14 .align 5 .L14: mov.b @r5+,r1 add #-4,r2 mov.b r1,@r4 add #1,r4 .L6: 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 bra .L9 add #1,r4 .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 .L18,r1 add #-64,r15 mov r15,r14 mov.l .L21,r5 jsr @r1 mov r14,r4 mov.l .L20,r0 mov r14,r4 mov.l .L21,r5 jsr @r0 mov #46,r6 tst r0,r0 bt .L17 mov.l .L22,r1 jsr @r1 nop .align 5 .L17: mov.l .L23,r1 jsr @r1 mov #0,r4 .L24: .align 2 .L18: .long duffcpy .L21: .long testpat .L20: .long memcmp .L22: .long abort .L23: .long exit .size main, .-main .ident "GCC: (GNU) 3.3.2"