|
@@ -1,54 +0,0 @@
|
|
-/*
|
|
|
|
- Copyright 2003 Richard Curnow, SuperH (UK) Ltd.
|
|
|
|
-
|
|
|
|
- This file is subject to the terms and conditions of the GNU General Public
|
|
|
|
- License. See the file "COPYING" in the main directory of this archive
|
|
|
|
- for more details.
|
|
|
|
-
|
|
|
|
- Tight version of memset for the case of just clearing a page. It turns out
|
|
|
|
- that having the alloco's spaced out slightly due to the increment/branch
|
|
|
|
- pair causes them to contend less for access to the cache. Similarly,
|
|
|
|
- keeping the stores apart from the allocos causes less contention. => Do two
|
|
|
|
- separate loops. Do multiple stores per loop to amortise the
|
|
|
|
- increment/branch cost a little.
|
|
|
|
-
|
|
|
|
- Parameters:
|
|
|
|
- r2 : source effective address (start of page)
|
|
|
|
-
|
|
|
|
- Always clears 4096 bytes.
|
|
|
|
-
|
|
|
|
- Note : alloco guarded by synco to avoid TAKum03020 erratum
|
|
|
|
-
|
|
|
|
-*/
|
|
|
|
-
|
|
|
|
- .section .text..SHmedia32,"ax"
|
|
|
|
- .little
|
|
|
|
-
|
|
|
|
- .balign 8
|
|
|
|
- .global clear_page
|
|
|
|
-clear_page:
|
|
|
|
- pta/l 1f, tr1
|
|
|
|
- pta/l 2f, tr2
|
|
|
|
- ptabs/l r18, tr0
|
|
|
|
-
|
|
|
|
- movi 4096, r7
|
|
|
|
- add r2, r7, r7
|
|
|
|
- add r2, r63, r6
|
|
|
|
-1:
|
|
|
|
- alloco r6, 0
|
|
|
|
- synco ! TAKum03020
|
|
|
|
- addi r6, 32, r6
|
|
|
|
- bgt/l r7, r6, tr1
|
|
|
|
-
|
|
|
|
- add r2, r63, r6
|
|
|
|
-2:
|
|
|
|
- st.q r6, 0, r63
|
|
|
|
- st.q r6, 8, r63
|
|
|
|
- st.q r6, 16, r63
|
|
|
|
- st.q r6, 24, r63
|
|
|
|
- addi r6, 32, r6
|
|
|
|
- bgt/l r7, r6, tr2
|
|
|
|
-
|
|
|
|
- blink tr0, r63
|
|
|
|
-
|
|
|
|
-
|
|
|