aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/ktlb.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/ktlb.S')
-rw-r--r--arch/sparc64/kernel/ktlb.S12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/ktlb.S b/arch/sparc64/kernel/ktlb.S
index c1335432124e..2e55084a0c12 100644
--- a/arch/sparc64/kernel/ktlb.S
+++ b/arch/sparc64/kernel/ktlb.S
@@ -16,12 +16,16 @@
16 .text 16 .text
17 .align 32 17 .align 32
18 18
19 .globl kvmap_itlb
20kvmap_itlb: 19kvmap_itlb:
21 /* g6: TAG TARGET */ 20 /* g6: TAG TARGET */
22 mov TLB_TAG_ACCESS, %g4 21 mov TLB_TAG_ACCESS, %g4
23 ldxa [%g4] ASI_IMMU, %g4 22 ldxa [%g4] ASI_IMMU, %g4
24 23
24 /* sun4v_itlb_miss branches here with the missing virtual
25 * address already loaded into %g4
26 */
27kvmap_itlb_4v:
28
25kvmap_itlb_nonlinear: 29kvmap_itlb_nonlinear:
26 /* Catch kernel NULL pointer calls. */ 30 /* Catch kernel NULL pointer calls. */
27 sethi %hi(PAGE_SIZE), %g5 31 sethi %hi(PAGE_SIZE), %g5
@@ -94,11 +98,15 @@ kvmap_dtlb_obp:
94 nop 98 nop
95 99
96 .align 32 100 .align 32
97 .globl kvmap_dtlb
98kvmap_dtlb: 101kvmap_dtlb:
99 /* %g6: TAG TARGET */ 102 /* %g6: TAG TARGET */
100 mov TLB_TAG_ACCESS, %g4 103 mov TLB_TAG_ACCESS, %g4
101 ldxa [%g4] ASI_DMMU, %g4 104 ldxa [%g4] ASI_DMMU, %g4
105
106 /* sun4v_dtlb_miss branches here with the missing virtual
107 * address already loaded into %g4
108 */
109kvmap_dtlb_4v:
102 brgez,pn %g4, kvmap_dtlb_nonlinear 110 brgez,pn %g4, kvmap_dtlb_nonlinear
103 nop 111 nop
104 112