From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57750) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDbyy-0002NJ-Up for qemu-devel@nongnu.org; Tue, 20 Jan 2015 11:48:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDbyw-0003Dg-2V for qemu-devel@nongnu.org; Tue, 20 Jan 2015 11:48:48 -0500 Received: from mail.uni-paderborn.de ([131.234.142.9]:42309) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDbyv-0003DH-Sd for qemu-devel@nongnu.org; Tue, 20 Jan 2015 11:48:46 -0500 Message-ID: <54BE9532.9050701@mail.uni-paderborn.de> Date: Tue, 20 Jan 2015 17:49:38 +0000 From: Bastian Koppelmann MIME-Version: 1.0 References: <87oaptn6u3.fsf@blackfin.pond.sub.org> In-Reply-To: <87oaptn6u3.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] target-tricore: Possible bug in get_mtcr() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster , qemu-devel@nongnu.org Hi Markus, On 01/20/2015 09:23 AM, Markus Armbruster wrote: > Coverity[*] points out: > > *** CID 1264337: Logically dead code (DEADCODE) > /target-tricore/translate.c: 348 in gen_mtcr() > 342 #define E(ADDRESS, REG, FEATURE) A(ADDRESS, REG, FEATURE) > 343 static inline void gen_mtcr(CPUTriCoreState *env, DisasContext > *ctx, TCGv r1, > 344 int32_t offset) > 345 { > 346 if (ctx->hflags & TRICORE_HFLAG_SM) { > 347 /* since we're caching PSW make this a special case */ > >>> CID 1264337: Logically dead code (DEADCODE) > >>> Execution cannot reach this statement: "if (offset == 65028) { > ge...". > 348 if (offset == 0xfe04) { > 349 gen_helper_psw_write(cpu_env, r1); > 350 } else { > 351 switch (offset) { > 352 #include "csfr.def" > 353 } > > Correct, because TRICORE_HFLAG_SM is zero: > > #define TRICORE_HFLAG_UM0 0x00002 /* user mode-0 flag */ > #define TRICORE_HFLAG_UM1 0x00001 /* user mode-1 flag */ > #define TRICORE_HFLAG_SM 0x00000 /* kernel mode flag */ Good catch! > > Shouls this perhaps be (ctx->hflags & (1 << TRICORE_HFLAG_SM))? Close. It should be: #define TRICORE_HFLAG_KUU 0x3 ... ((ctx->hflags & TRICORE_HFLAG_KUU) == TRICORE_HFLAG_SM) I will send a patch for this. Thanks, Bastian > [*] https://scan.coverity.com/projects/378 >