diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-08-17 17:34:10 +1000 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2015-09-11 08:15:28 -0700 |
commit | 97ed5ccdee95f0b98bedc601ff979e368583472c (patch) | |
tree | 5ee711528010f3700f13983b8222c2ca7ae85c83 /target-s390x | |
parent | ba9cef7b6e487a5a8969db81d09b8eec8a2b50c6 (diff) | |
download | qemu-97ed5ccdee95f0b98bedc601ff979e368583472c.tar.gz qemu-97ed5ccdee95f0b98bedc601ff979e368583472c.tar.bz2 qemu-97ed5ccdee95f0b98bedc601ff979e368583472c.zip |
tlb: Add "ifetch" argument to cpu_mmu_index()
This is set to true when the index is for an instruction fetch
translation.
The core get_page_addr_code() sets it, as do the SOFTMMU_CODE_ACCESS
acessors.
All targets ignore it for now, and all other callers pass "false".
This will allow targets who wish to split the mmu index between
instruction and data accesses to do so. A subsequent patch will
do just that for PowerPC.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Message-Id: <1439796853-4410-2-git-send-email-benh@kernel.crashing.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-s390x')
-rw-r--r-- | target-s390x/cpu.h | 2 | ||||
-rw-r--r-- | target-s390x/mem_helper.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index b650890130..9aeb0241fb 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -308,7 +308,7 @@ static inline CPU_DoubleU *get_freg(CPUS390XState *cs, int nr) #define MMU_SECONDARY_IDX 1 #define MMU_HOME_IDX 2 -static inline int cpu_mmu_index (CPUS390XState *env) +static inline int cpu_mmu_index (CPUS390XState *env, bool ifetch) { switch (env->psw.mask & PSW_MASK_ASC) { case PSW_ASC_PRIMARY: diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c index 84bf198e2b..90399f1b0b 100644 --- a/target-s390x/mem_helper.c +++ b/target-s390x/mem_helper.c @@ -69,7 +69,7 @@ static inline uint64_t adj_len_to_page(uint64_t len, uint64_t addr) static void fast_memset(CPUS390XState *env, uint64_t dest, uint8_t byte, uint32_t l) { - int mmu_idx = cpu_mmu_index(env); + int mmu_idx = cpu_mmu_index(env, false); while (l > 0) { void *p = tlb_vaddr_to_host(env, dest, MMU_DATA_STORE, mmu_idx); @@ -92,7 +92,7 @@ static void fast_memset(CPUS390XState *env, uint64_t dest, uint8_t byte, static void fast_memmove(CPUS390XState *env, uint64_t dest, uint64_t src, uint32_t l) { - int mmu_idx = cpu_mmu_index(env); + int mmu_idx = cpu_mmu_index(env, false); while (l > 0) { void *src_p = tlb_vaddr_to_host(env, src, MMU_DATA_LOAD, mmu_idx); |