From patchwork Fri Mar 2 11:06:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 130500 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp1145318lja; Fri, 2 Mar 2018 03:10:03 -0800 (PST) X-Google-Smtp-Source: AG47ELuI0RQiquAkRM+7YSilPTbk7brRRrueehXLczIJyt74pedtZVuHnLczVqU5qBQ29MxUwB1C X-Received: by 2002:a25:2109:: with SMTP id h9-v6mr3236218ybh.496.1519989003831; Fri, 02 Mar 2018 03:10:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519989003; cv=none; d=google.com; s=arc-20160816; b=yHyM4bvubzXfHHVqIRrY4v3gsiKpObyb8GKYZgHycyBg1kemUjnuA8rc0G14ZmETLU qJwglvaYPsqhlLL8FO5RF2iNwlaHmKAa108UBkgorWsMNu04Ft+6Cu1250EL7hgV1KgG 2YwTzcnpopfN1zfY7GFyAjNUwzYbtzrFOJ8nUl3/AyxaFC8oGFrKAd33OLI4ClQmbifN Zxo5dfIWJ6b0wlyDZkUyV0cPc7zZpoDUUpObtzjJxa/WP5CvDN135ZUEp03URIr7jL/m 2otxsfeFup7V9DPhvoANJM5lGWmf+eyNV3v10QkkZyJmqVkv6ct7GzUJ5XROL163XqRH CiWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from:arc-authentication-results; bh=OFHJ/AYfTkFWitWFvyNe74iSswOy6/ufXPewnOgZWvM=; b=eFIXl60j3udbgl6GfseYuN8OnuqVUQ0DdbpNAtLIl/sz2bNtj9BTh1LaUahQx5dZdN o0MNY7Jk15GiiDCN3aCihXvf0yFdzuqjj3K9xOTt9QTpOlyqeqU9zlbht1t1HXRGwhN0 eiqHeGxUATi/vb8j+RJo3sZPfPVdl78r0LuTtGGdU0BA96Bay08aYjGT+E/l6clBu/xW X82VB2IPvttkzLkER95WtBO7dw1Ku7xT+MXxM2CFovdXAXRTiVe3SMnG8RD4z4s6X/NX XND1CpZdsdN7jYGGvvDmB2eYb7Wcdm3l/MFuOruuv/J5bAjjJWM4s5a09gIrcGAzmfi0 wEpw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id t66si605920ywe.134.2018.03.02.03.10.03 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 02 Mar 2018 03:10:03 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:34066 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eriZf-0005M7-3A for patch@linaro.org; Fri, 02 Mar 2018 06:10:03 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eriWU-0002kx-6C for qemu-devel@nongnu.org; Fri, 02 Mar 2018 06:06:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eriWT-0004kr-9d for qemu-devel@nongnu.org; Fri, 02 Mar 2018 06:06:46 -0500 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:46746) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eriWT-0004jE-29 for qemu-devel@nongnu.org; Fri, 02 Mar 2018 06:06:45 -0500 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1eriWR-0001JE-Th for qemu-devel@nongnu.org; Fri, 02 Mar 2018 11:06:43 +0000 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 2 Mar 2018 11:06:05 +0000 Message-Id: <20180302110640.28004-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180302110640.28004-1-peter.maydell@linaro.org> References: <20180302110640.28004-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PULL 04/39] decodetree: Propagate return value from translate subroutines X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Allow the translate subroutines to return false for invalid insns. At present we can of course invoke an invalid insn exception from within the translate subroutine, but in the short term this consolidates code. In the long term it would allow the decodetree language to support overlapping patterns for ISA extensions. Signed-off-by: Richard Henderson Message-id: 20180227232618.2908-1-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- scripts/decodetree.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- 2.16.2 diff --git a/scripts/decodetree.py b/scripts/decodetree.py index 6a33f8f8dd..41301c84aa 100755 --- a/scripts/decodetree.py +++ b/scripts/decodetree.py @@ -461,7 +461,7 @@ class Pattern(General): global translate_prefix output('typedef ', self.base.base.struct_name(), ' arg_', self.name, ';\n') - output(translate_scope, 'void ', translate_prefix, '_', self.name, + output(translate_scope, 'bool ', translate_prefix, '_', self.name, '(DisasContext *ctx, arg_', self.name, ' *a, ', insntype, ' insn);\n') @@ -474,9 +474,8 @@ class Pattern(General): output(ind, self.base.extract_name(), '(&u.f_', arg, ', insn);\n') for n, f in self.fields.items(): output(ind, 'u.f_', arg, '.', n, ' = ', f.str_extract(), ';\n') - output(ind, translate_prefix, '_', self.name, + output(ind, 'return ', translate_prefix, '_', self.name, '(ctx, &u.f_', arg, ', insn);\n') - output(ind, 'return true;\n') # end Pattern