copy_page.S 581 B

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