qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] target/arm: Free TCG temps in trans_VMOV_64_sp(


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH] target/arm: Free TCG temps in trans_VMOV_64_sp()
Date: Thu, 29 Aug 2019 21:22:22 +0100
User-agent: mu4e 1.3.4; emacs 27.0.50

Aleksandar Markovic <address@hidden> writes:

> 27.08.2019. 14.20, "Peter Maydell" <address@hidden> је написао/ла:
>>
>> The function neon_store_reg32() doesn't free the TCG temp that it
>> is passed, so the caller must do that. We got this right in most
>> places but forgot to free the TCG temps in trans_VMOV_64_sp().
>>
>> Cc: address@hidden
>> Signed-off-by: Peter Maydell <address@hidden>
>> ---
>
> Hello, Peter,
>
> I am just curious if you found this by manual code inspection, or perhaps
> using a tool?

I'm guessing that if you run code that exercises this while built with
--enable-tcg-debug then TCG's sanity checking complains about unfreed
temps.

>
> Yours,
> Aleksandar
>
>>  target/arm/translate-vfp.inc.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/target/arm/translate-vfp.inc.c
> b/target/arm/translate-vfp.inc.c
>> index 3e8ea80493b..9ae980bef63 100644
>> --- a/target/arm/translate-vfp.inc.c
>> +++ b/target/arm/translate-vfp.inc.c
>> @@ -880,8 +880,10 @@ static bool trans_VMOV_64_sp(DisasContext *s,
> arg_VMOV_64_sp *a)
>>          /* gpreg to fpreg */
>>          tmp = load_reg(s, a->rt);
>>          neon_store_reg32(tmp, a->vm);
>> +        tcg_temp_free_i32(tmp);
>>          tmp = load_reg(s, a->rt2);
>>          neon_store_reg32(tmp, a->vm + 1);
>> +        tcg_temp_free_i32(tmp);
>>      }
>>
>>      return true;
>> --
>> 2.20.1
>>
>>


--
Alex Bennée



reply via email to

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