Commit 4601f8d1 authored by Richard Henderson's avatar Richard Henderson Committed by Alex Bennée
Browse files

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.

Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Tested-by: default avatarMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
parent 2dd92606
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1413,9 +1413,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);
@@ -1514,7 +1514,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;
    }