.file "duff-1.c" .section ".text" .align 4 .global duffcpy .type duffcpy, #function .proc 020 duffcpy: !#PROLOGUE# 0 !#PROLOGUE# 1 and %o2, 3, %g1 cmp %g1, 1 be,a .LL14 ldub [%o1], %g1 blu .LL15 cmp %o2, 3 cmp %g1, 2 be .LL7 cmp %g1, 3 bne .LL1 nop .LL6: ldub [%o1], %g1 add %o1, 1, %o1 stb %g1, [%o0] add %o0, 1, %o0 .LL7: ldub [%o1], %g1 add %o1, 1, %o1 stb %g1, [%o0] add %o0, 1, %o0 ldub [%o1], %g1 .LL14: add %o1, 1, %o1 stb %g1, [%o0] add %o0, 1, %o0 cmp %o2, 3 .LL15: bleu .LL1 add %o2, -4, %o2 ldub [%o1], %g1 stb %g1, [%o0] add %o1, 1, %o1 b .LL6 add %o0, 1, %o0 .LL1: retl nop .size duffcpy, .-duffcpy .global testpat .section ".rodata" .align 8 .type testpat, #object .size testpat, 46 testpat: .asciz "The quick brown fox jumped over the lazy dog." .section ".text" .align 4 .global main .type main, #function .proc 04 main: !#PROLOGUE# 0 save %sp, -168, %sp !#PROLOGUE# 1 add %fp, -72, %l0 sethi %hi(testpat), %l1 mov 46, %o2 or %l1, %lo(testpat), %o1 call duffcpy, 0 mov %l0, %o0 mov %l0, %o0 or %l1, %lo(testpat), %o1 call memcmp, 0 mov 46, %o2 orcc %o0, 0, %g1 be .LL17 nop call abort, 0 nop .LL17: call exit, 0 nop nop .size main, .-main .ident "GCC: (GNU) 3.3.2"