memccpy.s 305 B

1234567891011121314151617181920
  1. TEXT memccpy(SB), $0
  2. MOVV R1, 0(FP)
  3. MOVW n+24(FP), R1
  4. BEQ R1, ret
  5. MOVV s1+0(FP), R3
  6. MOVV s2+8(FP), R2
  7. MOVBU c+16(FP), R4 /* little endian */
  8. ADDVU R1, R2, R5
  9. l1: MOVBU (R2), R6
  10. ADDVU $1, R2
  11. MOVBU R6, (R3)
  12. ADDVU $1, R3
  13. BEQ R4, R6, eq
  14. BNE R2, R5, l1
  15. MOVV $0, R1
  16. RET
  17. eq: MOVV R3, R1
  18. ret: RET