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:
Родитель
c7914834ef
Коммит
d14d751ff9
|
@ -52,7 +52,6 @@ EXPORT_SYMBOL(__get_user_asm_l);
|
|||
EXPORT_SYMBOL(__get_user_asm_q);
|
||||
EXPORT_SYMBOL(__strnlen_user);
|
||||
EXPORT_SYMBOL(__strncpy_from_user);
|
||||
EXPORT_SYMBOL(clear_page);
|
||||
EXPORT_SYMBOL(__clear_user);
|
||||
EXPORT_SYMBOL(copy_page);
|
||||
EXPORT_SYMBOL(__copy_user);
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
# Panic should really be compiled as PIC
|
||||
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
|
||||
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
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче