strncpy.S 467 B

123456789101112131415161718192021222324252627282930313233343536
  1. ;;; SPDX-License-Identifier: GPL-2.0
  2. ;;; strncpy.S
  3. #include <asm/linkage.h>
  4. .text
  5. .global strncpy_from_user
  6. ;;; long strncpy_from_user(void *to, void *from, size_t n)
  7. strncpy_from_user:
  8. mov.l er2,er2
  9. bne 1f
  10. sub.l er0,er0
  11. rts
  12. 1:
  13. mov.l er4,@-sp
  14. sub.l er3,er3
  15. 2:
  16. mov.b @er1+,r4l
  17. mov.b r4l,@er0
  18. adds #1,er0
  19. beq 3f
  20. inc.l #1,er3
  21. dec.l #1,er2
  22. bne 2b
  23. 3:
  24. dec.l #1,er2
  25. 4:
  26. mov.b r4l,@er0
  27. adds #1,er0
  28. dec.l #1,er2
  29. bne 4b
  30. mov.l er3,er0
  31. mov.l @sp+,er4
  32. rts