qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH] target/ppc: Fix SPE unavailable exception triggering


From: Matthieu Bucchianeri
Subject: Re: [PATCH] target/ppc: Fix SPE unavailable exception triggering
Date: Sun, 26 Jul 2020 16:59:16 +0000

Hello Balaton,

Thank you for your thorough review! See my response below.

> > static inline void gen_evmwsmiaa(DisasContext *ctx) {
> > -    TCGv_i64 acc = tcg_temp_new_i64();
> > -    TCGv_i64 tmp = tcg_temp_new_i64();
> > +    TCGv_i64 acc;
> > +    TCGv_i64 tmp;
> > +
> > +    if (unlikely(!ctx->spe_enabled)) {
> > +        gen_exception(ctx, POWERPC_EXCP_SPEU);
> > +        return;
> > +    }
>
> Isn't this missing here:
>
> acc = tcg_temp_new_i64();
> tmp = tcg_temp_new_i64();
>
> You've removed allocating temps but this hunk does not add it back after the
> exception unlike others in this patch.

I should have probably mentioned somewhere that this patch also
fixes a resource leak in that function. It is not very obvious
when looking at it as a patch, but if you take a look at the
original code, you will see that I removed these allocations on
purpose:

https://github.com/qemu/qemu/blob/d577dbaac7553767232faabb6a3e291aebd348ae/target/ppc/translate/spe-impl.inc.c#L532

> static inline void gen_evmwsmiaa(DisasContext *ctx)
> {
>     TCGv_i64 acc = tcg_temp_new_i64();
>     TCGv_i64 tmp = tcg_temp_new_i64();
>
>     gen_evmwsmi(ctx);           /* rD := rA * rB */
>
>     acc = tcg_temp_new_i64();
>     tmp = tcg_temp_new_i64();

I apologize for not making this any more clear in my description.

Let me know if this looks correct now, with the full context in mind.

Thanks.

LeoStella, LLC
A joint venture of Thales Alenia Space and Spaceflight Industries

12501 E Marginal Way S • Tukwila, WA 98168

Proprietary Document: This document may contain trade secrets or otherwise 
proprietary and confidential information owned by LeoStella LLC. It is intended 
only for the individual addressee and may not be copied, distributed, or 
otherwise disclosed without LeoStella LLC express prior written authorization.
Export Controlled: This document may contain technical data whose export is 
restricted by the Arms Export Control Act (Title 22, U.S.C., Sec 2751 et seq.) 
or the Export Administration Act of 1979, as amended, Title 50,U.S.C., app 2401 
et seq. Violation of these export laws are subject to severe criminal 
penalties. Recipient shall not export, re-export, or otherwise transfer or 
share this document to any foreign person (as defined by U.S. export laws) 
without advance written authorization from LeoStella LLC.

reply via email to

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