char *my_strcpy(char *dest, char *src) { char *cpy = dest; while(*src) { *dest = *src; ++src; ++dest; } *dest = *src; return(cpy); } .set noreorder .set volatile .set noat .file 1 "strcpy.c" gcc2_compiled.: __gnu_compiled_c: .text .align 3 .globl my_strcpy .ent my_strcpy my_strcpy: my_strcpy..ng: lda $30,-48($30) .frame $15,48,$26,0 stq $26,0($30) stq $15,8($30) .mask 0x4008000,-48 bis $30,$30,$15 .prologue 0 stq $16,16($15) stq $17,24($15) ldt $f1,16($15) stt $f1,32($15) $34: ldq $2,24($15) ldq_u $1,0($2) extbl $1,$2,$1 sll $1,56,$2 sra $2,56,$1 bis $31,$31,$2 subq $1,$2,$1 bne $1,$36 br $31,$35 $36: ldq $1,16($15) ldq $3,24($15) ldq_u $2,0($3) extbl $2,$3,$2 ldq_u $3,0($1) bis $1,$1,$4 mskbl $3,$4,$3 insbl $2,$4,$2 bis $2,$3,$2 stq_u $2,0($1) ldq $2,24($15) addq $2,1,$1 bis $1,$1,$5 stq $5,40($15) ldt $f1,40($15) stt $f1,24($15) ldq $2,16($15) addq $2,1,$1 bis $1,$1,$5 stq $5,40($15) ldt $f1,40($15) stt $f1,16($15) br $31,$34 $35: ldq $1,16($15) ldq $3,24($15) ldq_u $2,0($3) extbl $2,$3,$2 ldq_u $3,0($1) bis $1,$1,$4 mskbl $3,$4,$3 insbl $2,$4,$2 bis $2,$3,$2 stq_u $2,0($1) ldq $0,32($15) br $31,$33 $33: bis $15,$15,$30 ldq $26,0($30) ldq $15,8($30) addq $30,48,$30 ret $31,($26),1 .end my_strcpy .set noreorder .set volatile .set noat .file 1 "strcpy.c" gcc2_compiled.: __gnu_compiled_c: .text .align 3 .globl my_strcpy .ent my_strcpy my_strcpy: my_strcpy..ng: .frame $30,0,$26,0 .prologue 0 ldq_u $2,0($17) extbl $2,$17,$1 zapnot $1,1,$1 bis $16,$16,$0 beq $1,$40 .align 5 $41: ldq_u $1,0($16) extbl $2,$17,$2 insbl $2,$16,$2 mskbl $1,$16,$1 bis $2,$1,$2 stq_u $2,0($16) addq $17,1,$17 ldq_u $2,0($17) extbl $2,$17,$1 zapnot $1,1,$1 addq $16,1,$16 bne $1,$41 $40: ldq_u $1,0($17) ldq_u $2,0($16) extbl $1,$17,$1 mskbl $2,$16,$2 insbl $1,$16,$1 bis $1,$2,$1 stq_u $1,0($16) ret $31,($26),1 .end my_strcpy