> > I am not sure when/where __stl_mmu/__ldl_mmu are used. I do set > > They are called from the places in TBs where > tcg_gen_qemu_{ld,st}{8,16,32,64}{u,s} were injected.
So you mean __stl_mmu/__ldl_mmu are called from the code cache. > > breakpoint on __stl_mmu/__ldl_mmu, but the backtrace can only show > > something like, > > > > #0 鍮_stl_mmu (addr=196608, val=0, mmu_idx=0) at > > /tmp/chenwj/temp/qemu-0.13.0/softmmu_template.h:228 > > #1 ?0x00000000400028e1 in ?? () > > #2 ?0x00000000000000b4 in ?? () > > #3 ?0xecc68ff412fa4137 in ?? () > > #4 ?0x0000000000000000 in ?? () Does those ?? mean since we are in the code cache, so GDB cannot show their backtarce? > > When retaddr == NULL, then the calling sequence of tlb_fill is, > > > > 慯b_find_slow -> get_page_addr_code -> ldub_code -> __ldb_cmmu > > > > I can only guest the b in __ldb_cmmu means load byte, but I can't > > figure out what's the difference between _cmmu and _mmu. Could you > > give me some hint? Thanks! > > _cmmu is used to access code, _mmu is for data. I see. Thanks, and I find building QEMU with --extra-cflags="-save-temps" is really help. Those *.i files make things much clear. Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667