]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
74bf4312 DM |
2 | /* ITLB ** ICACHE line 1: Context 0 check and TSB load */ |
3 | ldxa [%g0] ASI_IMMU_TSB_8KB_PTR, %g1 ! Get TSB 8K pointer | |
4 | ldxa [%g0] ASI_IMMU, %g6 ! Get TAG TARGET | |
5 | srlx %g6, 48, %g5 ! Get context | |
8b234274 | 6 | sllx %g6, 22, %g6 ! Zero out context |
74bf4312 | 7 | brz,pn %g5, kvmap_itlb ! Context 0 processing |
8b234274 | 8 | srlx %g6, 22, %g6 ! Delay slot |
517af332 | 9 | TSB_LOAD_QUAD(%g1, %g4) ! Load TSB entry |
74bf4312 | 10 | cmp %g4, %g6 ! Compare TAG |
74bf4312 DM |
11 | |
12 | /* ITLB ** ICACHE line 2: TSB compare and TLB load */ | |
13 | bne,pn %xcc, tsb_miss_itlb ! Miss | |
14 | mov FAULT_CODE_ITLB, %g3 | |
67929299 DM |
15 | sethi %hi(_PAGE_EXEC_4U), %g4 |
16 | andcc %g5, %g4, %g0 ! Executable? | |
74bf4312 DM |
17 | be,pn %xcc, tsb_do_fault |
18 | nop ! Delay slot, fill me | |
45f791eb DM |
19 | stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB |
20 | retry ! Trap done | |
74bf4312 DM |
21 | |
22 | /* ITLB ** ICACHE line 3: */ | |
45f791eb DM |
23 | nop |
24 | nop | |
74bf4312 DM |
25 | nop |
26 | nop | |
27 | nop | |
28 | nop | |
29 | nop | |
30 | nop | |
31 | ||
32 | /* ITLB ** ICACHE line 4: */ | |
33 | nop | |
34 | nop | |
35 | nop | |
36 | nop | |
37 | nop | |
38 | nop | |
39 | nop | |
40 | nop |