summaryrefslogtreecommitdiffstats
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
-
-
OpenPOWER on IntegriCloud