clear_page.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: clear_page.S,v 1.1 2001/07/23 10:08:50 gniibe Exp $
  2.  *
  3.  * clear_page implementation of SuperH
  4.  *
  5.  * Copyright (C) 2001  Niibe Yutaka & Kaz Kojima
  6.  *
  7.  */
  8. /*
  9.  * clear_page
  10.  * @to: P1 address
  11.  *
  12.  * void clear_page(void *to)
  13.  */
  14. /*
  15.  * r0 --- scratch
  16.  * r4 --- to
  17.  * r5 --- to + 4096
  18.  */
  19. #include <linux/linkage.h>
  20. ENTRY(clear_page)
  21. mov r4,r5
  22. mov.w .Llimit,r0
  23. add r0,r5
  24. mov #0,r0
  25. !
  26. 1:
  27. #if defined(__sh3__)
  28. mov.l r0,@r4
  29. #elif defined(__SH4__)
  30. movca.l r0,@r4
  31. mov r4,r1
  32. #endif
  33. add #32,r4
  34. mov.l r0,@-r4
  35. mov.l r0,@-r4
  36. mov.l r0,@-r4
  37. mov.l r0,@-r4
  38. mov.l r0,@-r4
  39. mov.l r0,@-r4
  40. mov.l r0,@-r4
  41. #if defined(__SH4__)
  42. ocbwb @r1
  43. #endif
  44. cmp/eq r5,r4
  45. bf/s 1b
  46.  add #28,r4
  47. !
  48. rts
  49.  nop
  50. .Llimit: .word (4096-28)