ev6-clear_page.S 652 B

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