/* get next level page directory */
index = (address >> dir_base) & ((1 << dir_width) - 1);
phys = base | index << 3;
- base = ldq_phys(cs->as, phys);
+ base = ldq_le_phys(cs->as, phys);
if (level) {
if (FIELD_EX64(base, TLBENTRY, HUGE)) {
/* base is a huge pte */
} else if (cpu_has_ptw(env)) {
index &= 1;
context->pte_buddy[index] = base;
- context->pte_buddy[1 - index] = ldq_phys(cs->as,
- phys + 8 * (1 - 2 * index));
+ context->pte_buddy[1 - index] = ldq_le_phys(cs->as,
+ phys + 8 * (1 - 2 * index));
}
context->ps = dir_base;
ret1 = loongarch_cmpxchg_phys(cs, phys, pte, base);
/* PTE updated by other CPU, reload PTE entry */
if (ret1 == MEMTX_DECODE_ERROR) {
- base = ldq_phys(cs->as, phys);
+ base = ldq_le_phys(cs->as, phys);
goto restart;
}
uint64_t helper_iocsrrd_h(CPULoongArchState *env, target_ulong r_addr)
{
- return address_space_lduw(env->address_space_iocsr, r_addr,
- GET_MEMTXATTRS(env), NULL);
+ return address_space_lduw_le(env->address_space_iocsr, r_addr,
+ GET_MEMTXATTRS(env), NULL);
}
uint64_t helper_iocsrrd_w(CPULoongArchState *env, target_ulong r_addr)
{
- return address_space_ldl(env->address_space_iocsr, r_addr,
- GET_MEMTXATTRS(env), NULL);
+ return address_space_ldl_le(env->address_space_iocsr, r_addr,
+ GET_MEMTXATTRS(env), NULL);
}
uint64_t helper_iocsrrd_d(CPULoongArchState *env, target_ulong r_addr)
{
- return address_space_ldq(env->address_space_iocsr, r_addr,
- GET_MEMTXATTRS(env), NULL);
+ return address_space_ldq_le(env->address_space_iocsr, r_addr,
+ GET_MEMTXATTRS(env), NULL);
}
void helper_iocsrwr_b(CPULoongArchState *env, target_ulong w_addr,
void helper_iocsrwr_h(CPULoongArchState *env, target_ulong w_addr,
target_ulong val)
{
- address_space_stw(env->address_space_iocsr, w_addr,
- val, GET_MEMTXATTRS(env), NULL);
+ address_space_stw_le(env->address_space_iocsr, w_addr,
+ val, GET_MEMTXATTRS(env), NULL);
}
void helper_iocsrwr_w(CPULoongArchState *env, target_ulong w_addr,
target_ulong val)
{
- address_space_stl(env->address_space_iocsr, w_addr,
- val, GET_MEMTXATTRS(env), NULL);
+ address_space_stl_le(env->address_space_iocsr, w_addr,
+ val, GET_MEMTXATTRS(env), NULL);
}
void helper_iocsrwr_d(CPULoongArchState *env, target_ulong w_addr,
target_ulong val)
{
- address_space_stq(env->address_space_iocsr, w_addr,
- val, GET_MEMTXATTRS(env), NULL);
+ address_space_stq_le(env->address_space_iocsr, w_addr,
+ val, GET_MEMTXATTRS(env), NULL);
}
get_dir_base_width(env, &dir_base, &dir_width, level);
index = (badvaddr >> dir_base) & ((1 << dir_width) - 1);
phys = base | index << 3;
- return ldq_phys(cs->as, phys) & TARGET_PHYS_MASK;
+ return ldq_le_phys(cs->as, phys) & TARGET_PHYS_MASK;
}
void helper_ldpte(CPULoongArchState *env, target_ulong base, target_ulong odd,
ptoffset0 = ptindex << 3;
ptoffset1 = (ptindex + 1) << 3;
phys = base | (odd ? ptoffset1 : ptoffset0);
- tmp0 = ldq_phys(cs->as, phys) & TARGET_PHYS_MASK;
+ tmp0 = ldq_le_phys(cs->as, phys) & TARGET_PHYS_MASK;
ps = ptbase;
}