diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 19:25:53 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 19:25:53 +0000 |
commit | 57445428488a2862840c4d7c96d7746c11031aaf (patch) | |
tree | 60b88b3a21896a33ee4dccc727d88b745a9ff731 /arch/sparc64/mm/ultra.S | |
parent | 2e837819b1563679b55363d469239fdf4f17fbbb (diff) |
Merge with Linu 2.4.0-test6-pre6.
Diffstat (limited to 'arch/sparc64/mm/ultra.S')
-rw-r--r-- | arch/sparc64/mm/ultra.S | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 85e62ad25..7940218d2 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S @@ -1,4 +1,4 @@ -/* $Id: ultra.S,v 1.44 2000/07/10 20:57:35 davem Exp $ +/* $Id: ultra.S,v 1.46 2000/08/05 13:30:33 davem Exp $ * ultra.S: Don't expand these all over the place... * * Copyright (C) 1997, 2000 David S. Miller (davem@redhat.com) @@ -206,6 +206,30 @@ iflush2:sub %o1, 0x20, %g3 flush %g6 ba,a,pt %xcc, 3b + .align 64 + .globl __flush_dcache_page +__flush_dcache_page: + sub %o0, %g4, %o0 + clr %o1 + srlx %o0, 11, %o0 + sethi %hi(1 << 14), %o2 +1: ldxa [%o1] ASI_DCACHE_TAG, %o3 + andn %o3, 0x3, %o3 + cmp %o0, %o3 + bne,pt %xcc, 2f + nop + stxa %g0, [%o1] ASI_DCACHE_TAG + membar #Sync +2: add %o1, (1 << 5), %o1 + cmp %o1, %o2 + bne,pt %xcc, 1b + nop + /* The I-cache does not snoop local stores so we + * better flush that too. + */ + ba,pt %xcc, __flush_icache_page + sllx %o0, 11, %o0 + .align 32 __prefill_dtlb: rdpr %pstate, %g7 |