NG4clear_page.S 642 B

1234567891011121314151617181920212223242526272829
  1. /* NG4copy_page.S: Niagara-4 optimized clear page.
  2. *
  3. * Copyright (C) 2012 (davem@davemloft.net)
  4. */
  5. #include <asm/asi.h>
  6. #include <asm/page.h>
  7. .text
  8. .register %g3, #scratch
  9. .align 32
  10. .globl NG4clear_page
  11. .globl NG4clear_user_page
  12. NG4clear_page: /* %o0=dest */
  13. NG4clear_user_page: /* %o0=dest, %o1=vaddr */
  14. set PAGE_SIZE, %g7
  15. mov 0x20, %g3
  16. 1: stxa %g0, [%o0 + %g0] ASI_ST_BLKINIT_MRU_P
  17. subcc %g7, 0x40, %g7
  18. stxa %g0, [%o0 + %g3] ASI_ST_BLKINIT_MRU_P
  19. bne,pt %xcc, 1b
  20. add %o0, 0x40, %o0
  21. membar #StoreLoad|#StoreStore
  22. retl
  23. nop
  24. .size NG4clear_page,.-NG4clear_page
  25. .size NG4clear_user_page,.-NG4clear_user_page