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

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: __copy_user_page-sh4.S,v 1.1 2001/07/23 09:02:17 gniibe Exp $
  2.  *
  3.  * __copy_user_page implementation of SuperH
  4.  *
  5.  * Copyright (C) 2001  Niibe Yutaka & Kaz Kojima
  6.  *
  7.  */
  8. /*
  9.  * __copy_user_page
  10.  * @to: P1 address (with same color)
  11.  * @from: P1 address
  12.  * @orig_to: P1 address
  13.  *
  14.  * void __copy_user_page(void *to, void *from, void *orig_to)
  15.  */
  16. /*
  17.  * r0, r1, r2, r3, r4, r5, r6, r7 --- scratch 
  18.  * r8 --- from + 4096
  19.  * r9 --- orig_to
  20.  * r10 --- to
  21.  * r11 --- from
  22.  */
  23. #include <linux/linkage.h>
  24. ENTRY(__copy_user_page)
  25. mov.l r8,@-r15
  26. mov.l r9,@-r15
  27. mov.l r10,@-r15
  28. mov.l r11,@-r15
  29. mov r4,r10
  30. mov r5,r11
  31. mov r6,r9
  32. mov r5,r8
  33. mov.w .L4096,r0
  34. add r0,r8
  35. !
  36. 1: ocbi @r9
  37. add #32,r9
  38. mov.l @r11+,r0
  39. mov.l @r11+,r1
  40. mov.l @r11+,r2
  41. mov.l @r11+,r3
  42. mov.l @r11+,r4
  43. mov.l @r11+,r5
  44. mov.l @r11+,r6
  45. mov.l @r11+,r7
  46. movca.l r0,@r10
  47. mov r10,r0
  48. add #32,r10
  49. mov.l r7,@-r10
  50. mov.l r6,@-r10
  51. mov.l r5,@-r10
  52. mov.l r4,@-r10
  53. mov.l r3,@-r10
  54. mov.l r2,@-r10
  55. mov.l r1,@-r10
  56. ocbwb @r0
  57. cmp/eq r11,r8
  58. bf/s 1b
  59.  add #28,r10
  60. !
  61. mov.l @r15+,r11
  62. mov.l @r15+,r10
  63. mov.l @r15+,r9
  64. mov.l @r15+,r8
  65. rts
  66.  nop
  67. .L4096: .word 4096