sh: Kill off dcache writeback from copy_page().
Now that the cache purging is handled manually by all copy_page() callers, we can kill off copy_page()'s on writeback. This optimizes the non-aliasing case. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
6e4154d4c2
commit
a2494b9b5f
1 changed files with 3 additions and 8 deletions
|
@ -30,7 +30,9 @@ ENTRY(copy_page)
|
||||||
mov r4,r10
|
mov r4,r10
|
||||||
mov r5,r11
|
mov r5,r11
|
||||||
mov r5,r8
|
mov r5,r8
|
||||||
mov.l .Lpsz,r0
|
mov #(PAGE_SIZE >> 10), r0
|
||||||
|
shll8 r0
|
||||||
|
shll2 r0
|
||||||
add r0,r8
|
add r0,r8
|
||||||
!
|
!
|
||||||
1: mov.l @r11+,r0
|
1: mov.l @r11+,r0
|
||||||
|
@ -43,7 +45,6 @@ ENTRY(copy_page)
|
||||||
mov.l @r11+,r7
|
mov.l @r11+,r7
|
||||||
#if defined(CONFIG_CPU_SH4)
|
#if defined(CONFIG_CPU_SH4)
|
||||||
movca.l r0,@r10
|
movca.l r0,@r10
|
||||||
mov r10,r0
|
|
||||||
#else
|
#else
|
||||||
mov.l r0,@r10
|
mov.l r0,@r10
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,9 +56,6 @@ ENTRY(copy_page)
|
||||||
mov.l r3,@-r10
|
mov.l r3,@-r10
|
||||||
mov.l r2,@-r10
|
mov.l r2,@-r10
|
||||||
mov.l r1,@-r10
|
mov.l r1,@-r10
|
||||||
#if defined(CONFIG_CPU_SH4)
|
|
||||||
ocbwb @r0
|
|
||||||
#endif
|
|
||||||
cmp/eq r11,r8
|
cmp/eq r11,r8
|
||||||
bf/s 1b
|
bf/s 1b
|
||||||
add #28,r10
|
add #28,r10
|
||||||
|
@ -68,9 +66,6 @@ ENTRY(copy_page)
|
||||||
rts
|
rts
|
||||||
nop
|
nop
|
||||||
|
|
||||||
.balign 4
|
|
||||||
.Lpsz: .long PAGE_SIZE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
|
* __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
|
||||||
* Return the number of bytes NOT copied
|
* Return the number of bytes NOT copied
|
||||||
|
|
Loading…
Reference in a new issue