Lines Matching full:base

52     uint64_t base;  in loongarch_page_table_walker()  local
56 base = env->CSR_PGDH; in loongarch_page_table_walker()
58 base = env->CSR_PGDL; in loongarch_page_table_walker()
60 base &= TARGET_PHYS_MASK; in loongarch_page_table_walker()
71 phys = base | index << 3; in loongarch_page_table_walker()
72 base = ldq_phys(cs->as, phys) & TARGET_PHYS_MASK; in loongarch_page_table_walker()
73 if (FIELD_EX64(base, TLBENTRY, HUGE)) { in loongarch_page_table_walker()
74 /* base is a huge pte */ in loongarch_page_table_walker()
80 if (FIELD_EX64(base, TLBENTRY, HUGE)) { in loongarch_page_table_walker()
81 /* Huge Page. base is pte */ in loongarch_page_table_walker()
82 base = FIELD_DP64(base, TLBENTRY, LEVEL, 0); in loongarch_page_table_walker()
83 base = FIELD_DP64(base, TLBENTRY, HUGE, 0); in loongarch_page_table_walker()
84 if (FIELD_EX64(base, TLBENTRY, HGLOBAL)) { in loongarch_page_table_walker()
85 base = FIELD_DP64(base, TLBENTRY, HGLOBAL, 0); in loongarch_page_table_walker()
86 base = FIELD_DP64(base, TLBENTRY, G, 1); in loongarch_page_table_walker()
89 /* Normal Page. base points to pte */ in loongarch_page_table_walker()
92 phys = base | index << 3; in loongarch_page_table_walker()
93 base = ldq_phys(cs->as, phys); in loongarch_page_table_walker()
98 /* base is pte, in normal pte format */ in loongarch_page_table_walker()
99 if (!FIELD_EX64(base, TLBENTRY, V)) { in loongarch_page_table_walker()
103 if (!FIELD_EX64(base, TLBENTRY, D)) { in loongarch_page_table_walker()
110 base += (address & TARGET_PHYS_MASK) & ((1 << dir_base) - 1); in loongarch_page_table_walker()
112 base = FIELD_DP64(base, TLBENTRY_64, RPLV, 0); in loongarch_page_table_walker()
113 base = FIELD_DP64(base, TLBENTRY_64, NX, 0); in loongarch_page_table_walker()
114 base = FIELD_DP64(base, TLBENTRY_64, NR, 0); in loongarch_page_table_walker()
116 *physical = base & TARGET_PAGE_MASK; in loongarch_page_table_walker()