* [Qemu-devel] MMU Modes @ 2012-01-06 12:45 Xin Tong 2012-01-06 12:55 ` Peter Maydell 0 siblings, 1 reply; 3+ messages in thread From: Xin Tong @ 2012-01-06 12:45 UTC (permalink / raw) To: qemu-devel In qemu soft TLB, there is a MMU modes. what is it and what does it do ? I see target-mips, NB_MMU_MODES is defined to be 3, unfortunately, there is no comments on what each one of them means in the code. Thanks ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] MMU Modes 2012-01-06 12:45 [Qemu-devel] MMU Modes Xin Tong @ 2012-01-06 12:55 ` Peter Maydell 2012-01-07 14:40 ` Xin Tong 0 siblings, 1 reply; 3+ messages in thread From: Peter Maydell @ 2012-01-06 12:55 UTC (permalink / raw) To: Xin Tong; +Cc: qemu-devel On 6 January 2012 12:45, Xin Tong <xerox.time.tech@gmail.com> wrote: > In qemu soft TLB, there is a MMU modes. what is it and what does it do > ? I see target-mips, NB_MMU_MODES is defined to be 3, unfortunately, > there is no comments on what each one of them means in the code. This distinguishes TLB entries for kernel mode from those for user mode and so on. Look in target-mips/cpu.h for the MMU_MODE[012]_SUFFIX definitions and the cpu_mmu_index() function, which should tell you what MIPS in particular uses them for. -- PMM ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] MMU Modes 2012-01-06 12:55 ` Peter Maydell @ 2012-01-07 14:40 ` Xin Tong 0 siblings, 0 replies; 3+ messages in thread From: Xin Tong @ 2012-01-07 14:40 UTC (permalink / raw) To: Peter Maydell; +Cc: qemu-devel I am investigating how LW is emulated from target-mips on x86 host. However, i can not find where the OFFSET is passed in. case OPC_LW: save_cpu_state(ctx, 0); op_ld_lw(t0, t0, ctx); gen_store_gpr(t0, rt); opn = "lw"; break; || || \||/ static inline void op_ld_##insn(TCGv ret, TCGv arg1, DisasContext *ctx) \ { \ tcg_gen_qemu_##fname(ret, arg1, ctx->mem_idx); \ } I think ctx->mem_idx here contains the MMU modes. || || \||/ static inline void tcg_gen_qemu_ld32u(TCGv ret, TCGv addr, int mem_index) { #if TARGET_LONG_BITS == 32 tcg_gen_op3i_i32(INDEX_op_qemu_ld32, ret, addr, mem_index); #else tcg_gen_op4i_i32(INDEX_op_qemu_ld32, TCGV_LOW(ret), TCGV_LOW(addr), TCGV_HIGH(addr), mem_index); tcg_gen_movi_i32(TCGV_HIGH(ret), 0); #endif } || || \||/ case INDEX_op_qemu_ld32: tcg_out_qemu_ld(s, args, 2); break; Thanks Xin On Fri, Jan 6, 2012 at 7:55 AM, Peter Maydell <peter.maydell@linaro.org> wrote: > On 6 January 2012 12:45, Xin Tong <xerox.time.tech@gmail.com> wrote: >> In qemu soft TLB, there is a MMU modes. what is it and what does it do >> ? I see target-mips, NB_MMU_MODES is defined to be 3, unfortunately, >> there is no comments on what each one of them means in the code. > > This distinguishes TLB entries for kernel mode from those for user mode > and so on. Look in target-mips/cpu.h for the MMU_MODE[012]_SUFFIX > definitions and the cpu_mmu_index() function, which should tell you what > MIPS in particular uses them for. > > -- PMM ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-01-07 14:40 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-01-06 12:45 [Qemu-devel] MMU Modes Xin Tong 2012-01-06 12:55 ` Peter Maydell 2012-01-07 14:40 ` Xin Tong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).