summary refs log tree commit diff
path: root/arch/sh/lib64/page_copy.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/lib64/page_copy.S')
-rw-r--r--arch/sh/lib64/page_copy.S56
1 files changed, 27 insertions, 29 deletions
diff --git a/arch/sh/lib64/page_copy.S b/arch/sh/lib64/page_copy.S
index e159c3cd2582..0ec6fca63b56 100644
--- a/arch/sh/lib64/page_copy.S
+++ b/arch/sh/lib64/page_copy.S
@@ -10,8 +10,8 @@
    of SH5-101 cut2 eval chip with Cayman board DDR memory.
 
    Parameters:
-   r2 : source effective address (start of page)
-   r3 : destination effective address (start of page)
+   r2 : destination effective address (start of page)
+   r3 : source effective address (start of page)
 
    Always copies 4096 bytes.
 
@@ -27,10 +27,10 @@
 	.little
 
 	.balign 8
-	.global sh64_page_copy
-sh64_page_copy:
+	.global copy_page
+copy_page:
 
-	/* Copy 4096 bytes worth of data from r2 to r3.
+	/* Copy 4096 bytes worth of data from r3 to r2.
 	   Do prefetches 4 lines ahead.
 	   Do alloco 2 lines ahead */
 
@@ -41,21 +41,21 @@ sh64_page_copy:
 
 #if 0
 	/* TAKum03020 */
-	ld.q r2, 0x00, r63
-	ld.q r2, 0x20, r63
-	ld.q r2, 0x40, r63
-	ld.q r2, 0x60, r63
+	ld.q r3, 0x00, r63
+	ld.q r3, 0x20, r63
+	ld.q r3, 0x40, r63
+	ld.q r3, 0x60, r63
 #endif
-	alloco r3, 0x00
+	alloco r2, 0x00
 	synco		! TAKum03020
-	alloco r3, 0x20
+	alloco r2, 0x20
 	synco		! TAKum03020
 
 	movi 3968, r6
-	add  r3, r6, r6
+	add  r2, r6, r6
 	addi r6, 64, r7
 	addi r7, 64, r8
-	sub r2, r3, r60
+	sub r3, r2, r60
 	addi r60, 8, r61
 	addi r61, 8, r62
 	addi r62, 8, r23
@@ -67,25 +67,23 @@ sh64_page_copy:
 1:
 #if 0
 	/* TAKum03020 */
-	bge/u r3, r6, tr2  ! skip prefetch for last 4 lines
-	ldx.q r3, r22, r63 ! prefetch 4 lines hence
+	bge/u r2, r6, tr2  ! skip prefetch for last 4 lines
+	ldx.q r2, r22, r63 ! prefetch 4 lines hence
 #endif
 2:
-	bge/u r3, r7, tr3  ! skip alloco for last 2 lines
-	alloco r3, 0x40    ! alloc destination line 2 lines ahead
+	bge/u r2, r7, tr3  ! skip alloco for last 2 lines
+	alloco r2, 0x40    ! alloc destination line 2 lines ahead
 	synco		! TAKum03020
 3:
-	ldx.q r3, r60, r36
-	ldx.q r3, r61, r37
-	ldx.q r3, r62, r38
-	ldx.q r3, r23, r39
-	st.q  r3,   0, r36
-	st.q  r3,   8, r37
-	st.q  r3,  16, r38
-	st.q  r3,  24, r39
-	addi r3, 32, r3
-	bgt/l r8, r3, tr1
+	ldx.q r2, r60, r36
+	ldx.q r2, r61, r37
+	ldx.q r2, r62, r38
+	ldx.q r2, r23, r39
+	st.q  r2,   0, r36
+	st.q  r2,   8, r37
+	st.q  r2,  16, r38
+	st.q  r2,  24, r39
+	addi r2, 32, r2
+	bgt/l r8, r2, tr1
 
 	blink tr0, r63	   ! return
-
-