summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/mm/ultra.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-03-17 22:05:47 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-03-17 22:05:47 +0000
commit27cfca1ec98e91261b1a5355d10a8996464b63af (patch)
tree8e895a53e372fa682b4c0a585b9377d67ed70d0e /arch/sparc64/mm/ultra.S
parent6a76fb7214c477ccf6582bd79c5b4ccc4f9c41b1 (diff)
Look Ma' what I found on my harddisk ...
o New faster syscalls for 2.1.x, too o Upgrade to 2.1.89. Don't try to run this. It's flaky as hell. But feel free to debug ...
Diffstat (limited to 'arch/sparc64/mm/ultra.S')
-rw-r--r--arch/sparc64/mm/ultra.S21
1 files changed, 12 insertions, 9 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S
index 8a745bf0a..ea0faa16b 100644
--- a/arch/sparc64/mm/ultra.S
+++ b/arch/sparc64/mm/ultra.S
@@ -1,4 +1,4 @@
-/* $Id: ultra.S,v 1.18 1997/08/08 08:34:23 jj Exp $
+/* $Id: ultra.S,v 1.20 1997/10/03 20:42:46 davem Exp $
* ultra.S: Don't expand these all over the place...
*
* Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
@@ -46,26 +46,29 @@ __flush_tlb_range: /* %o0 == (mm->context & 0x1fff), %o1 == start, %o2 == end */
cmp %o4, 96
bgu,pn %icc, 9b
mov SECONDARY_CONTEXT, %g7
- rdpr %pstate, %g1
- wrpr %g1, PSTATE_IE, %pstate
ldxa [%g7] ASI_DMMU, %g2
- cmp %g2, %o0
+ nop
+ nop
+ cmp %g2, %o0
be,pt %icc, 1f
sub %o3, %g5, %o3
+ rdpr %pstate, %g1
+ wrpr %g1, PSTATE_IE, %pstate
stxa %o0, [%g7] ASI_DMMU
+
1: stxa %g0, [%o1 + %o3] ASI_DMMU_DEMAP
stxa %g0, [%o1 + %o3] ASI_IMMU_DEMAP
brnz,pt %o3, 1b
sub %o3, %g5, %o3
flush %g6
-
- be,a,pt %icc, 1f
+ be,pt %icc, 1f
nop
stxa %g2, [%g7] ASI_DMMU
-1: flush %g6
+
+ flush %g6
wrpr %g1, 0, %pstate
- retl
+1: retl
nop
.align 32
@@ -73,7 +76,7 @@ __flush_tlb_page: /* %o0 == (mm->context & 0x1fff), %o1 == page & PAGE_MASK */
mov SECONDARY_CONTEXT, %g7
ldxa [%g7] ASI_DMMU, %g2
cmp %g2, %o0
- be,pt %icc, 1f
+ bne,pt %icc, 1f
or %o1, 0x10, %g3
stxa %g0, [%g3] ASI_DMMU_DEMAP
stxa %g0, [%g3] ASI_IMMU_DEMAP