summaryrefslogtreecommitdiffstats
path: root/kernel/arch/avr32/mm/copy_page.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/avr32/mm/copy_page.S')
-rw-r--r--kernel/arch/avr32/mm/copy_page.S28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/arch/avr32/mm/copy_page.S b/kernel/arch/avr32/mm/copy_page.S
new file mode 100644
index 000000000..c2b375294
--- /dev/null
+++ b/kernel/arch/avr32/mm/copy_page.S
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2004-2006 Atmel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/linkage.h>
+#include <asm/page.h>
+
+/*
+ * copy_page
+ *
+ * r12 to (P1 address)
+ * r11 from (P1 address)
+ * r8-r10 scratch
+ */
+ .text
+ .global copy_page
+copy_page:
+ sub r10, r11, -(1 << PAGE_SHIFT)
+ /* pref r11[0] */
+1: /* pref r11[8] */
+ ld.d r8, r11++
+ st.d r12++, r8
+ cp r11, r10
+ brlo 1b
+ mov pc, lr