.set noat .set noreorder .set nomacro .text .align 2 .align 4 .globl duffcpy .ent duffcpy $duffcpy..ng: duffcpy: .frame $30,0,$26,0 .prologue 0 and $18,3,$2 cmpeq $2,1,$1 bne $1,$L8 beq $2,$L9 cmpeq $2,2,$1 bne $1,$L7 cmpeq $2,3,$1 bne $1,$L6 ret $31,($26),1 .align 4 $L6: ldq_u $3,0($17) ldq_u $2,0($16) extbl $3,$17,$1 mskbl $2,$16,$2 insbl $1,$16,$1 lda $17,1($17) bis $1,$2,$1 stq_u $1,0($16) lda $16,1($16) $L7: ldq_u $3,0($17) ldq_u $2,0($16) extbl $3,$17,$1 mskbl $2,$16,$2 insbl $1,$16,$1 lda $17,1($17) bis $1,$2,$1 stq_u $1,0($16) lda $16,1($16) $L8: ldq_u $3,0($17) ldq_u $2,0($16) extbl $3,$17,$1 mskbl $2,$16,$2 insbl $1,$16,$1 lda $17,1($17) bis $1,$2,$1 stq_u $1,0($16) lda $16,1($16) $L9: cmpule $18,3,$1 beq $1,$L13 ret $31,($26),1 .align 4 $L13: ldq_u $3,0($17) bis $31,$31,$31 lda $18,-4($18) ldq_u $2,0($16) extbl $3,$17,$1 mskbl $2,$16,$2 insbl $1,$16,$1 lda $17,1($17) bis $1,$2,$1 stq_u $1,0($16) lda $16,1($16) br $31,$L6 .end duffcpy .globl testpat .section .rodata .type testpat, @object .size testpat, 46 testpat: .ascii "The quick brown fox jumped over the lazy dog.\0" .text .align 2 .align 4 .globl main .ent main main: .frame $30,0,$26,0 .mask 0x4000200,0 ldah $29,0($27) !gpdisp!1 lda $29,0($29) !gpdisp!1 $main..ng: lda $30,-80($30) lda $16,16($30) stq $9,8($30) lda $18,46($31) ldah $9,testpat($29) !gprelhigh stq $26,0($30) .prologue 1 lda $9,testpat($9) !gprellow mov $9,$17 bsr $26,$duffcpy..ng lda $18,46($31) lda $16,16($30) ldq $27,memcmp($29) !literal!4 mov $9,$17 jsr $26,($27),memcmp !lituse_jsr!4 ldah $29,0($26) !gpdisp!5 cpys $f31,$f31,$f31 lda $29,0($29) !gpdisp!5 beq $0,$L15 ldq $27,abort($29) !literal!3 jsr $26,($27),abort !lituse_jsr!3 $L15: mov $31,$16 ldq $27,exit($29) !literal!2 jsr $26,($27),exit !lituse_jsr!2 .end main .ident "GCC: (GNU) 3.3.2"