page-funcs.S 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * Micro-assembler generated clear_page/copy_page functions.
  7. *
  8. * Copyright (C) 2012 MIPS Technologies, Inc.
  9. * Copyright (C) 2012 Ralf Baechle <ralf@linux-mips.org>
  10. */
  11. #include <asm/asm.h>
  12. #include <asm/regdef.h>
  13. #ifdef CONFIG_SIBYTE_DMA_PAGEOPS
  14. #define cpu_clear_page_function_name clear_page_cpu
  15. #define cpu_copy_page_function_name copy_page_cpu
  16. #else
  17. #define cpu_clear_page_function_name clear_page
  18. #define cpu_copy_page_function_name copy_page
  19. #endif
  20. /*
  21. * Maximum sizes:
  22. *
  23. * R4000 128 bytes S-cache: 0x058 bytes
  24. * R4600 v1.7: 0x05c bytes
  25. * R4600 v2.0: 0x060 bytes
  26. * With prefetching, 16 word strides 0x120 bytes
  27. */
  28. EXPORT(__clear_page_start)
  29. LEAF(cpu_clear_page_function_name)
  30. 1: j 1b /* Dummy, will be replaced. */
  31. .space 288
  32. END(cpu_clear_page_function_name)
  33. EXPORT(__clear_page_end)
  34. /*
  35. * Maximum sizes:
  36. *
  37. * R4000 128 bytes S-cache: 0x11c bytes
  38. * R4600 v1.7: 0x080 bytes
  39. * R4600 v2.0: 0x07c bytes
  40. * With prefetching, 16 word strides 0x540 bytes
  41. */
  42. EXPORT(__copy_page_start)
  43. LEAF(cpu_copy_page_function_name)
  44. 1: j 1b /* Dummy, will be replaced. */
  45. .space 1344
  46. END(cpu_copy_page_function_name)
  47. EXPORT(__copy_page_end)