ev6-clear_page.S 691 B

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