diff options
author | Matthieu Bucchianeri <matthieu.bucchianeri@leostella.com> | 2020-07-27 10:21:14 -0700 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2020-08-12 13:16:27 +1000 |
commit | 6d592c557e2d7131585ea7f6a3f214aba71e8776 (patch) | |
tree | 1621e39b77dd7a9831aec35f62cc7f9d53ff8576 /target/ppc | |
parent | d0ed6a69d399ae193959225cdeaa9382746c91cc (diff) | |
download | qemu-6d592c557e2d7131585ea7f6a3f214aba71e8776.zip qemu-6d592c557e2d7131585ea7f6a3f214aba71e8776.tar.gz qemu-6d592c557e2d7131585ea7f6a3f214aba71e8776.tar.bz2 |
target/ppc: Fix TCG leak with the evmwsmiaa instruction
Fix double-call to tcg_temp_new_i64(), where a temp is allocated both at
declaration time and further down the implementation of gen_evmwsmiaa().
Note that gen_evmwsmia() and gen_evmwsmiaa() are still not implemented
correctly, as they invoke gen_evmwsmi() which may return early, but the
return is not propagated. This will be fixed in my patch for bug #1888918.
Signed-off-by: Matthieu Bucchianeri <matthieu.bucchianeri@leostella.com>
Message-Id: <20200727172114.31415-1-matthieu.bucchianeri@leostella.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target/ppc')
-rw-r--r-- | target/ppc/translate/spe-impl.inc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/target/ppc/translate/spe-impl.inc.c b/target/ppc/translate/spe-impl.inc.c index 36b4d56..42a0d1c 100644 --- a/target/ppc/translate/spe-impl.inc.c +++ b/target/ppc/translate/spe-impl.inc.c @@ -531,8 +531,8 @@ static inline void gen_evmwsmia(DisasContext *ctx) 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; gen_evmwsmi(ctx); /* rD := rA * rB */ |