^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* DTLB ** ICACHE line 1: Context 0 check and TSB load */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ldxa [%g0] ASI_DMMU_TSB_8KB_PTR, %g1 ! Get TSB 8K pointer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ldxa [%g0] ASI_DMMU, %g6 ! Get TAG TARGET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) srlx %g6, 48, %g5 ! Get context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) sllx %g6, 22, %g6 ! Zero out context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) brz,pn %g5, kvmap_dtlb ! Context 0 processing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) srlx %g6, 22, %g6 ! Delay slot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) TSB_LOAD_QUAD(%g1, %g4) ! Load TSB entry
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) cmp %g4, %g6 ! Compare TAG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /* DTLB ** ICACHE line 2: TSB compare and TLB load */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) bne,pn %xcc, tsb_miss_dtlb ! Miss
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) mov FAULT_CODE_DTLB, %g3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) stxa %g5, [%g0] ASI_DTLB_DATA_IN ! Load TLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) retry ! Trap done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) /* DTLB ** ICACHE line 3: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* DTLB ** ICACHE line 4: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) nop