0001
0002
0003 ldxa [%g0] ASI_IMMU_TSB_8KB_PTR, %g1 ! Get TSB 8K pointer
0004 ldxa [%g0] ASI_IMMU, %g6 ! Get TAG TARGET
0005 srlx %g6, 48, %g5 ! Get context
0006 sllx %g6, 22, %g6 ! Zero out context
0007 brz,pn %g5, kvmap_itlb ! Context 0 processing
0008 srlx %g6, 22, %g6 ! Delay slot
0009 TSB_LOAD_QUAD(%g1, %g4) ! Load TSB entry
0010 cmp %g4, %g6 ! Compare TAG
0011
0012
0013 bne,pn %xcc, tsb_miss_itlb ! Miss
0014 mov FAULT_CODE_ITLB, %g3
0015 sethi %hi(_PAGE_EXEC_4U), %g4
0016 andcc %g5, %g4, %g0 ! Executable?
0017 be,pn %xcc, tsb_do_fault
0018 nop ! Delay slot, fill me
0019 stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB
0020 retry ! Trap done
0021
0022
0023 nop
0024 nop
0025 nop
0026 nop
0027 nop
0028 nop
0029 nop
0030 nop
0031
0032
0033 nop
0034 nop
0035 nop
0036 nop
0037 nop
0038 nop
0039 nop
0040 nop