char *my_strcpy(char *dest, char *src) { char *cpy = dest; while(*src) { *dest = *src; ++src; ++dest; } *dest = *src; return(cpy); } .section __TEXT,__text,regular,pure_instructions .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .machine ppc .text .align 2 .globl _my_strcpy _my_strcpy: stmw r30,-8(r1) stwu r1,-64(r1) mr r30,r1 stw r3,88(r30) stw r4,92(r30) lwz r0,88(r30) stw r0,24(r30) b L2 L3: lwz r2,92(r30) lbz r0,0(r2) extsb r0,r0 lwz r2,88(r30) stb r0,0(r2) lwz r2,92(r30) addi r0,r2,1 stw r0,92(r30) lwz r2,88(r30) addi r0,r2,1 stw r0,88(r30) L2: lwz r2,92(r30) lbz r0,0(r2) extsb r0,r0 cmpwi cr7,r0,0 bne cr7,L3 lwz r2,92(r30) lbz r0,0(r2) extsb r0,r0 lwz r2,88(r30) stb r0,0(r2) lwz r0,24(r30) mr r3,r0 lwz r1,0(r1) lmw r30,-8(r1) blr .subsections_via_symbols .section __TEXT,__text,regular,pure_instructions .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .machine ppc .text .align 2 .globl _my_strcpy _my_strcpy: lbz r0,0(r4) extsb r0,r0 cmpwi cr7,r0,0 beq- cr7,L2 mr r2,r3 L4: stb r0,0(r2) addi r2,r2,1 lbzu r0,1(r4) extsb r0,r0 cmpwi cr7,r0,0 beq- cr7,L5 b L4 L2: mr r2,r3 L5: li r0,0 stb r0,0(r2) blr .subsections_via_symbols