mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
sh64: Kill off special clear_page() implementation.
This can use the now generic clear_page() implementation, which is backed by the sh64 optimized memset routine. This also fixes up the case where PAGE_SIZE != 4kB. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
c7914834ef
commit
d14d751ff9
3 changed files with 1 additions and 56 deletions
|
@ -52,7 +52,6 @@ EXPORT_SYMBOL(__get_user_asm_l);
|
||||||
EXPORT_SYMBOL(__get_user_asm_q);
|
EXPORT_SYMBOL(__get_user_asm_q);
|
||||||
EXPORT_SYMBOL(__strnlen_user);
|
EXPORT_SYMBOL(__strnlen_user);
|
||||||
EXPORT_SYMBOL(__strncpy_from_user);
|
EXPORT_SYMBOL(__strncpy_from_user);
|
||||||
EXPORT_SYMBOL(clear_page);
|
|
||||||
EXPORT_SYMBOL(__clear_user);
|
EXPORT_SYMBOL(__clear_user);
|
||||||
EXPORT_SYMBOL(copy_page);
|
EXPORT_SYMBOL(copy_page);
|
||||||
EXPORT_SYMBOL(__copy_user);
|
EXPORT_SYMBOL(__copy_user);
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
# Panic should really be compiled as PIC
|
# Panic should really be compiled as PIC
|
||||||
lib-y := udelay.o dbg.o panic.o memcpy.o memset.o \
|
lib-y := udelay.o dbg.o panic.o memcpy.o memset.o \
|
||||||
copy_user_memcpy.o copy_page.o clear_page.o strcpy.o strlen.o
|
copy_user_memcpy.o copy_page.o strcpy.o strlen.o
|
||||||
|
|
||||||
# Extracted from libgcc
|
# Extracted from libgcc
|
||||||
lib-y += udivsi3.o udivdi3.o sdivsi3.o
|
lib-y += udivsi3.o udivdi3.o sdivsi3.o
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue