qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 2/2] trace: [all] Add "guest_mem_before" even


From: Lluís Vilanova
Subject: Re: [Qemu-devel] [PATCH v4 2/2] trace: [all] Add "guest_mem_before" event
Date: Thu, 09 Jun 2016 19:07:36 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Richard Henderson writes:

> On 05/27/2016 09:01 AM, Lluís Vilanova wrote:
>> -void tcg_gen_qemu_ld_i32(TCGv_i32 val, TCGv addr, TCGArg idx, TCGMemOp 
>> memop)
>> +static inline void do_tcg_gen_qemu_ld_i32(TCGv_i32 val, TCGv addr, TCGArg 
>> idx,
>> +                                          TCGMemOp memop)
>> {
>> memop = tcg_canonicalize_memop(memop, 0, 0);
>> gen_ldst_i32(INDEX_op_qemu_ld_i32, val, addr, memop, idx);
>> }
>> 
>> -void tcg_gen_qemu_st_i32(TCGv_i32 val, TCGv addr, TCGArg idx, TCGMemOp 
>> memop)
>> +void tcg_gen_qemu_ld_i32(TCGv_i32 val, TCGv addr, TCGArg idx, TCGMemOp 
>> memop)
>> +{
>> +    trace_guest_mem_before_tcg(tcg_ctx.cpu, tcg_ctx.tcg_env,
>> +                               addr, trace_mem_get_info(memop, 0));
>> +    do_tcg_gen_qemu_ld_i32(val, addr, idx, memop);
>> +}
> ...

>> void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)
>> {
>> +    trace_guest_mem_before_tcg(tcg_ctx.cpu, tcg_ctx.tcg_env,
>> +                               addr, trace_mem_get_info(memop, 0));
>> +
>> if (TCG_TARGET_REG_BITS == 32 && (memop & MO_SIZE) < MO_64) {
>> -        tcg_gen_qemu_ld_i32(TCGV_LOW(val), addr, idx, memop);
>> +        do_tcg_gen_qemu_ld_i32(TCGV_LOW(val), addr, idx, memop);
>> if (memop & MO_SIGN) {
>> tcg_gen_sari_i32(TCGV_HIGH(val), TCGV_LOW(val), 31);
>> } else {

> I think the better solution here is to move the tracing for 64-bit operations
> below this IF, rather than fiddling around with inline functions et al.

Much cleaner, thanks.


Lluis



reply via email to

[Prev in Thread] Current Thread [Next in Thread]