From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7XWN-0006M7-Qj for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:13:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V7XWL-0003Iy-5X for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:13:23 -0400 Received: from hall.aurel32.net ([2001:470:1f0b:4a8::1]:52011) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7XWK-0003G1-UT for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:13:21 -0400 Date: Thu, 8 Aug 2013 23:13:08 +0200 From: Aurelien Jarno Message-ID: <20130808211308.GL4193@ohm.aurel32.net> References: <1375972823-25333-1-git-send-email-james.hogan@imgtec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1375972823-25333-1-git-send-email-james.hogan@imgtec.com> Subject: Re: [Qemu-devel] [PATCH] tcg/mips: fix invalid op definition errors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: James Hogan Cc: qemu-devel@nongnu.org, Richard Henderson On Thu, Aug 08, 2013 at 03:40:23PM +0100, James Hogan wrote: > tcg/mips/tcg-target.h defines various operations conditionally depending > upon the isa revision, however these operations are included in > mips_op_defs[] unconditionally resulting in the following runtime errors > if CONFIG_DEBUG_TCG is defined: > > Invalid op definition for movcond_i32 > Invalid op definition for rotl_i32 > Invalid op definition for rotr_i32 > Invalid op definition for deposit_i32 > Invalid op definition for bswap16_i32 > Invalid op definition for bswap32_i32 > tcg/tcg.c:1196: tcg fatal error > > Fix with ifdefs like the i386 backend does for movcond_i32. > > Signed-off-by: James Hogan > Cc: Aurelien Jarno > Cc: Richard Henderson > --- > tcg/mips/tcg-target.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c > index 373c364..793532e 100644 > --- a/tcg/mips/tcg-target.c > +++ b/tcg/mips/tcg-target.c > @@ -1617,19 +1617,29 @@ static const TCGTargetOpDef mips_op_defs[] = { > { INDEX_op_shl_i32, { "r", "rZ", "ri" } }, > { INDEX_op_shr_i32, { "r", "rZ", "ri" } }, > { INDEX_op_sar_i32, { "r", "rZ", "ri" } }, > +#if TCG_TARGET_HAS_rot_i32 > { INDEX_op_rotr_i32, { "r", "rZ", "ri" } }, > { INDEX_op_rotl_i32, { "r", "rZ", "ri" } }, > +#endif > > +#if TCG_TARGET_HAS_bswap16_i32 > { INDEX_op_bswap16_i32, { "r", "r" } }, > +#endif > +#if TCG_TARGET_HAS_bswap32_i32 > { INDEX_op_bswap32_i32, { "r", "r" } }, > +#endif > > { INDEX_op_ext8s_i32, { "r", "rZ" } }, > { INDEX_op_ext16s_i32, { "r", "rZ" } }, > > +#if TCG_TARGET_HAS_deposit_i32 > { INDEX_op_deposit_i32, { "r", "0", "rZ" } }, > +#endif > > { INDEX_op_brcond_i32, { "rZ", "rZ" } }, > +#if TCG_TARGET_HAS_movcond_i32 > { INDEX_op_movcond_i32, { "r", "rZ", "rZ", "rZ", "0" } }, > +#endif > { INDEX_op_setcond_i32, { "r", "rZ", "rZ" } }, > { INDEX_op_setcond2_i32, { "r", "rZ", "rZ", "rZ", "rZ" } }, > Thanks, applied. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net