mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-22 18:11:02 +00:00
cputlb: Do unaligned store recursion to outermost function
This is less tricky than for loads, because we always fall back to single byte stores to implement unaligned stores. Backports commit 4601f8d10d7628bcaf2a8179af36e04b42879e91 from qemu
This commit is contained in:
parent
bcab6f1719
commit
9a02741c13
|
@ -1175,9 +1175,9 @@ tcg_target_ulong helper_be_ldsl_mmu(CPUArchState *env, target_ulong addr,
|
|||
* Store Helpers
|
||||
*/
|
||||
|
||||
static void store_helper(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||
TCGMemOpIdx oi, uintptr_t retaddr, size_t size,
|
||||
bool big_endian)
|
||||
static inline void __attribute__((always_inline))
|
||||
store_helper(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||
TCGMemOpIdx oi, uintptr_t retaddr, size_t size, bool big_endian)
|
||||
{
|
||||
uintptr_t mmu_idx = get_mmuidx(oi);
|
||||
uintptr_t index = tlb_index(env, mmu_idx, addr);
|
||||
|
@ -1338,7 +1338,7 @@ static void store_helper(CPUArchState *env, target_ulong addr, uint64_t val,
|
|||
/* Little-endian extract. */
|
||||
val8 = val >> (i * 8);
|
||||
}
|
||||
store_helper(env, addr + i, val8, oi, retaddr, 1, big_endian);
|
||||
helper_ret_stb_mmu(env, addr + i, val8, oi, retaddr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue