copy_page.S 620 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * arch/alpha/lib/copy_page.S
  4. *
  5. * Copy an entire page.
  6. */
  7. #include <asm/export.h>
  8. .text
  9. .align 4
  10. .global copy_page
  11. .ent copy_page
  12. copy_page:
  13. .prologue 0
  14. lda $18,128
  15. nop
  16. unop
  17. nop
  18. 1: ldq $0,0($17)
  19. ldq $1,8($17)
  20. ldq $2,16($17)
  21. ldq $3,24($17)
  22. ldq $4,32($17)
  23. ldq $5,40($17)
  24. ldq $6,48($17)
  25. ldq $7,56($17)
  26. stq $0,0($16)
  27. subq $18,1,$18
  28. stq $1,8($16)
  29. addq $17,64,$17
  30. stq $2,16($16)
  31. stq $3,24($16)
  32. stq $4,32($16)
  33. stq $5,40($16)
  34. stq $6,48($16)
  35. stq $7,56($16)
  36. addq $16,64,$16
  37. bne $18, 1b
  38. ret
  39. nop
  40. unop
  41. nop
  42. .end copy_page
  43. EXPORT_SYMBOL(copy_page)