Lines Matching refs:vaddr

26 static void mips64_undef_access(cpu_mips_t *cpu,m_uint64_t vaddr,  in mips64_undef_access()  argument
34 if (cpu->gen->undef_mem_handler(cpu->gen,vaddr,op_size,op_type,data)) in mips64_undef_access()
42 "pc=0x%llx (size=%u)\n",vaddr,cpu->pc,op_size); in mips64_undef_access()
47 vaddr,cpu->pc,*data,op_size); in mips64_undef_access()
53 static void mips64_tlb_error(cpu_mips_t *cpu,m_uint64_t vaddr,int error, in mips64_tlb_error() argument
63 vaddr,cpu->pc,(op_type == MTS_READ) ? "read":"write",op_size); in mips64_tlb_error()
70 mips64_prepare_tlb_exception(cpu,vaddr); in mips64_tlb_error()
80 if (vaddr == 0) { in mips64_tlb_error()
84 vaddr,cpu->pc,(op_type == MTS_READ) ? in mips64_tlb_error()
93 mips64_tlb_miss_exception(cpu,MIPS_CP0_CAUSE_TLB_LOAD,vaddr); in mips64_tlb_error()
95 mips64_tlb_miss_exception(cpu,MIPS_CP0_CAUSE_TLB_SAVE,vaddr); in mips64_tlb_error()
100 mips64_gen_exception_badva(cpu,MIPS_CP0_CAUSE_TLB_LOAD,vaddr); in mips64_tlb_error()
102 mips64_gen_exception_badva(cpu,MIPS_CP0_CAUSE_TLB_SAVE,vaddr); in mips64_tlb_error()
106 mips64_gen_exception_badva(cpu,MIPS_CP0_CAUSE_TLB_MOD,vaddr); in mips64_tlb_error()
114 static void mips64_ae_error(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_ae_error() argument
123 vaddr,cpu->pc,(op_type == MTS_READ) ? "read":"write"); in mips64_ae_error()
127 mips64_gen_exception_badva(cpu,MIPS_CP0_CAUSE_ADDR_LOAD,vaddr); in mips64_ae_error()
129 mips64_gen_exception_badva(cpu,MIPS_CP0_CAUSE_ADDR_SAVE,vaddr); in mips64_ae_error()
156 mips64_mts64_slow_lookup(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts64_slow_lookup() argument
166 hash_bucket = MTS64_HASH(vaddr); in mips64_mts64_slow_lookup()
168 zone = vaddr >> 40; in mips64_mts64_slow_lookup()
179 tlb_res = mips64_cp0_tlb_lookup(cpu,vaddr,op_type,&map); in mips64_mts64_slow_lookup()
190 sub_zone = (vaddr >> 29) & 0x7FF; in mips64_mts64_slow_lookup()
194 map.vaddr = vaddr & MIPS_MIN_PAGE_MASK; in mips64_mts64_slow_lookup()
195 map.paddr = map.vaddr - 0xFFFFFFFF80000000ULL; in mips64_mts64_slow_lookup()
196 map.offset = vaddr & MIPS_MIN_PAGE_IMASK; in mips64_mts64_slow_lookup()
207 map.vaddr = vaddr & MIPS_MIN_PAGE_MASK; in mips64_mts64_slow_lookup()
208 map.paddr = map.vaddr - 0xFFFFFFFFA0000000ULL; in mips64_mts64_slow_lookup()
209 map.offset = vaddr & MIPS_MIN_PAGE_IMASK; in mips64_mts64_slow_lookup()
222 tlb_res = mips64_cp0_tlb_lookup(cpu,vaddr,op_type,&map); in mips64_mts64_slow_lookup()
248 cca = (vaddr >> MIPS64_XKPHYS_CCA_SHIFT) & 0x03; in mips64_mts64_slow_lookup()
250 map.vaddr = vaddr & MIPS_MIN_PAGE_MASK; in mips64_mts64_slow_lookup()
251 map.paddr = (vaddr & MIPS64_XKPHYS_PHYS_MASK); in mips64_mts64_slow_lookup()
253 map.offset = vaddr & MIPS_MIN_PAGE_IMASK; in mips64_mts64_slow_lookup()
267 mips64_undef_access(cpu,vaddr,op_code,op_type,op_size,data); in mips64_mts64_slow_lookup()
270 mips64_ae_error(cpu,vaddr,op_code,op_type,op_size); in mips64_mts64_slow_lookup()
273 mips64_tlb_error(cpu,vaddr,tlb_res,op_code,op_type,op_size); in mips64_mts64_slow_lookup()
279 void *mips64_mts64_access(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts64_access() argument
291 memlog_rec_access(cpu->gen,vaddr,*data,op_size,op_type); in mips64_mts64_access()
294 hash_bucket = MTS64_HASH(vaddr); in mips64_mts64_access()
305 if (unlikely(((vaddr & MIPS_MIN_PAGE_MASK) != entry->gvpa) || wr_catch)) { in mips64_mts64_access()
306 entry = mips64_mts64_slow_lookup(cpu,vaddr,op_code,op_size,op_type, in mips64_mts64_access()
323 haddr = entry->hpa + (vaddr & MIPS_MIN_PAGE_IMASK); in mips64_mts64_access()
331 static fastcall int mips64_mts64_translate(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts64_translate() argument
338 hash_bucket = MTS64_HASH(vaddr); in mips64_mts64_translate()
342 if (unlikely((vaddr & MIPS_MIN_PAGE_MASK) != entry->gvpa)) { in mips64_mts64_translate()
343 entry = mips64_mts64_slow_lookup(cpu,vaddr,MIPS_MEMOP_LOOKUP,4,MTS_READ, in mips64_mts64_translate()
357 mips64_mts32_slow_lookup(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts32_slow_lookup() argument
367 hash_bucket = MTS32_HASH(vaddr); in mips64_mts32_slow_lookup()
369 zone = (vaddr >> 29) & 0x7; in mips64_mts32_slow_lookup()
378 tlb_res = mips64_cp0_tlb_lookup(cpu,vaddr,op_type,&map); in mips64_mts32_slow_lookup()
389 map.vaddr = vaddr & MIPS_MIN_PAGE_MASK; in mips64_mts32_slow_lookup()
390 map.paddr = map.vaddr - 0xFFFFFFFF80000000ULL; in mips64_mts32_slow_lookup()
391 map.offset = vaddr & MIPS_MIN_PAGE_IMASK; in mips64_mts32_slow_lookup()
401 map.vaddr = vaddr & MIPS_MIN_PAGE_MASK; in mips64_mts32_slow_lookup()
402 map.paddr = map.vaddr - 0xFFFFFFFFA0000000ULL; in mips64_mts32_slow_lookup()
403 map.offset = vaddr & MIPS_MIN_PAGE_IMASK; in mips64_mts32_slow_lookup()
415 tlb_res = mips64_cp0_tlb_lookup(cpu,vaddr,op_type,&map); in mips64_mts32_slow_lookup()
427 mips64_undef_access(cpu,vaddr,op_code,op_type,op_size,data); in mips64_mts32_slow_lookup()
431 mips64_ae_error(cpu,vaddr,op_code,op_type,op_size); in mips64_mts32_slow_lookup()
435 mips64_tlb_error(cpu,vaddr,tlb_res,op_code,op_type,op_size); in mips64_mts32_slow_lookup()
441 void *mips64_mts32_access(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts32_access() argument
453 memlog_rec_access(cpu->gen,vaddr,*data,op_size,op_type); in mips64_mts32_access()
456 hash_bucket = MTS32_HASH(vaddr); in mips64_mts32_access()
467 if (unlikely((((m_uint32_t)vaddr & MIPS_MIN_PAGE_MASK) != entry->gvpa) || in mips64_mts32_access()
470 entry = mips64_mts32_slow_lookup(cpu,vaddr,op_code,op_size,op_type, in mips64_mts32_access()
487 haddr = entry->hpa + (vaddr & MIPS_MIN_PAGE_IMASK); in mips64_mts32_access()
495 static fastcall int mips64_mts32_translate(cpu_mips_t *cpu,m_uint64_t vaddr, in mips64_mts32_translate() argument
502 hash_bucket = MTS32_HASH(vaddr); in mips64_mts32_translate()
506 if (unlikely(((m_uint32_t)vaddr & MIPS_MIN_PAGE_MASK) != entry->gvpa)) { in mips64_mts32_translate()
507 entry = mips64_mts32_slow_lookup(cpu,vaddr,MIPS_MEMOP_LOOKUP,4,MTS_READ, in mips64_mts32_translate()