home *** CD-ROM | disk | FTP | other *** search
-
- # EStrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1:LONG)
-
- .text
- .global _EStrAdd
-
- _EStrAdd:
- lhz r6,-2(r3)
- lhz r7,-4(r3)
- mr r3,r8
- sub r7,r7,r6
- add r8,r8,r6
- cmpw r7,r5
- bge .skip
- mr r5,r7
- .skip: mr. r5,r9
- beq .finish
- subi r5,r5,1
- subi r3,r3,1
- subi r4,r4,1
- .loop: lbzu r0,1(r4)
- stbu r0,1(r3)
- mr. r0,r0
- beq .done
- subi r5,r5,1
- mr. r5,r5
- bne .loop
- li r0,0
- stb r0,1(r3)
- .done: addi r5,r5,1
- sub r9,r9,r5
- add r9,r9,r6
- sth r9,-2(r3)
- .finish: blr # r3 contains destination string pointer
-
- .type _EStrAdd,@function
- .size _EStrAdd,$-_EStrAdd
-