qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] translate: cleanup gen_intermediate_code_intern


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] translate: cleanup gen_intermediate_code_internal
Date: Wed, 10 Apr 2013 11:54:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

Il 10/04/2013 09:55, li guang ha scritto:
> 在 2013-04-10三的 09:44 +0200,Paolo Bonzini写道:
>> Il 10/04/2013 05:30, liguang ha scritto:
>>> Signed-off-by: liguang <address@hidden>
>>> ---
>>>  target-arm/translate.c  |   17 ++++++++---------
>>>  target-i386/translate.c |   17 ++++++++---------
>>>  target-mips/translate.c |   16 ++++++++--------
>>>  3 files changed, 24 insertions(+), 26 deletions(-)
>>>
>>> diff --git a/target-arm/translate.c b/target-arm/translate.c
>>> index 35a21be..c0c080d 100644
>>> --- a/target-arm/translate.c
>>> +++ b/target-arm/translate.c
>>> @@ -9806,11 +9806,10 @@ static inline void 
>>> gen_intermediate_code_internal(CPUARMState *env,
>>>      cpu_M0 = tcg_temp_new_i64();
>>>      next_page_start = (pc_start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
>>>      lj = -1;
>>> -    num_insns = 0;
>>
>> Nack.  Did you even try to read what I and Wei-Ren Chen were trying to
>> tell you?
>>
> 
> well, you ask if I tested, and I answer yes,
> you doubt if this line really could be removed,
> and I said compiler will not complain this.

I don't care if the compiler doesn't complain (though I doubt it
doesn't; are you using --enable-debug?).  It is wrong.

You are removing the initialization of num_insns.  The only instruction
that modifies it is now "num_insns++".  That is wrong, period.  Even if
GCC ends up producing code that works, what happens when you access
uninitialized memory is undefined.

> what should I do?
> Isn't it enough?
> did you read my answer for your comment?

You didn't reply to this message from Wei-Ren Chen:

>> I think 'max_insns = tb->cflags & CF_COUNT_MASK;' is enough
>> to feed compiler.
> 
>   num_insns and max_insns are two different variables, right? So this
> assignment does not do anything with num_insns.

So yes, I read your answers and no, they were not enough.

Paolo



reply via email to

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