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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/arch/arm/lib/copypage.S
  3.  *
  4.  *  Copyright (C) 1995-1999 Russell King
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License version 2 as
  8.  * published by the Free Software Foundation.
  9.  *
  10.  *  ASM optimised string functions
  11.  */
  12. #include <linux/linkage.h>
  13. #include <asm/assembler.h>
  14. #include <asm/constants.h>
  15. .text
  16. .align 5
  17. /*
  18.  * StrongARM optimised copy_page routine
  19.  * now 1.78bytes/cycle, was 1.60 bytes/cycle (50MHz bus -> 89MB/s)
  20.  * Note that we probably achieve closer to the 100MB/s target with
  21.  * the core clock switching.
  22.  */
  23. ENTRY(copy_page)
  24. stmfd sp!, {r4, lr} @ 2
  25. mov r2, #PAGE_SZ/64 @ 1
  26. ldmia r1!, {r3, r4, ip, lr} @ 4+1
  27. 1: stmia r0!, {r3, r4, ip, lr} @ 4
  28. ldmia r1!, {r3, r4, ip, lr} @ 4+1
  29. stmia r0!, {r3, r4, ip, lr} @ 4
  30. ldmia r1!, {r3, r4, ip, lr} @ 4+1
  31. stmia r0!, {r3, r4, ip, lr} @ 4
  32. ldmia r1!, {r3, r4, ip, lr} @ 4
  33. subs r2, r2, #1 @ 1
  34. stmia r0!, {r3, r4, ip, lr} @ 4
  35. ldmneia r1!, {r3, r4, ip, lr} @ 4
  36. bne 1b @ 1
  37. LOADREGS(fd, sp!, {r4, pc}) @ 3