[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] MIPS 'move' insn emulation
From: |
Yongbok Kim |
Subject: |
Re: [Qemu-devel] MIPS 'move' insn emulation |
Date: |
Wed, 13 Sep 2017 15:20:55 +0100 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 13/09/2017 12:01, Peter Maydell wrote:
> On 13 September 2017 at 08:29, Sergey Smolov <address@hidden> wrote:
>> -d options are a bit high-level for me, because I just see the execution
>> result for every instruction. So it will be a mistake to think that every
>> change of some register's value is just a new value writing.
>>
>> As I understand, at "translate time" QEMU creates a TCG model that can be
>> run as x86 code on the host machine. May be it is possible to find some
>> mapping in this model between x86 and MIPS registers? Having such a mapping,
>> one can detect that some value has been written in a x86 register that
>> conforms to some GPR MIPS register. Am I right?
>
> No. The process of code generation does not care about
> having consistent mapping between MIPS registers and
> x86 registers -- all it does is ensure that architecturally
> the right values are in the guest-visible registers when
> they are visible to the guest.
>
> As I say, we may some day have a tracing API that allows you
> to look at things at the level of detail that you want;
> for now -d is the best we have.
>
> thanks
> -- PMM
>
(Especially while implementing new instructions), I tended to add couple of
helper functions for tracing temporally.
op_helper.c:
void helper_trace_reg_access(CPUMIPSState *env, target_ulong val)
{
printf("reg = "TARGET_FMT_lx"\n", val);
}
helper.h:
DEF_HELPER_2(trace_reg_access, void, env, tl)
After this you could use the helper function where you want to trace the
register value.
For your case, you can add following line after the tcg_gen_mov_tl().
gen_helper_trace_reg_access(cpu_env, cpu_gpr[rs]);
You will get the printf every time the part of code is being executed
(which might be too often).
Regards,
Yongbok
- [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/12
- Re: [Qemu-devel] MIPS 'move' insn emulation, Peter Maydell, 2017/09/12
- Re: [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/12
- Re: [Qemu-devel] MIPS 'move' insn emulation, Peter Maydell, 2017/09/12
- Re: [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/13
- Re: [Qemu-devel] MIPS 'move' insn emulation, Peter Maydell, 2017/09/13
- Re: [Qemu-devel] MIPS 'move' insn emulation,
Yongbok Kim <=
- Re: [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/14
- Re: [Qemu-devel] MIPS 'move' insn emulation, Peter Maydell, 2017/09/14
- Re: [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/14
- Re: [Qemu-devel] MIPS 'move' insn emulation, Yongbok Kim, 2017/09/14
- Re: [Qemu-devel] MIPS 'move' insn emulation, Peter Maydell, 2017/09/14
- Re: [Qemu-devel] MIPS 'move' insn emulation, Sergey Smolov, 2017/09/14