memccpy.s 297 B

1234567891011121314151617181920212223
  1. TEXT memccpy(SB), $0
  2. #define BDNZ BC 16,0,
  3. MOVW R3, s1+0(FP)
  4. MOVW n+12(FP), R7
  5. MOVW s2+4(FP), R4
  6. MOVBZ c+11(FP), R5
  7. CMP R7, $0
  8. BEQ nf
  9. MOVW R7, CTR
  10. SUB $1, R3
  11. SUB $1, R4
  12. l1:
  13. MOVBZU 1(R4), R6
  14. CMP R6, R5
  15. MOVBZU R6, 1(R3)
  16. BEQ eq
  17. BDNZ l1
  18. nf:
  19. MOVW $0, R3
  20. RETURN
  21. eq:
  22. ADD $1, R3
  23. RETURN