ev6-clear_page.S 602 B

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