From nobody Tue Feb 10 20:08:42 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1619745743; cv=none; d=zohomail.com; s=zohoarc; b=G3ZLzhxokfPMIVYSB4EyvVj2qBTyxIAT0NKe+BNS021x2V6lg1ofJPXF6geQF8LeREQDECf6t3StIIzWaBoUyeJAR2tlh+BYNf0KDJrI95SCjj4EHDFrVspYEWI2t3ibUwd3btEC6pkBUsVdYFQv+DJtZ2Mb2mPaggRePgmfAoQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619745743; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XDA7d3QjWWFtV2qtFhcmd5DNvHMTMh2+SFPB7dy5cBY=; b=HXYazK1Dq0rzPvvW8bisnV/VlODqyE26mO+C8HUZjGHy6AoVR+dU3wfUV6FEKzE6Qe07oRoIVfAW0axbYBHolxUD24u0Tuie6YQ4hEwvhkaBXnhhSAZvSKX8ROh//cIxzMYy+0QxYG5kPMp9nhDh55Jhv+maRSYDqh5Bfrex1cc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1619745743310438.421556608915; Thu, 29 Apr 2021 18:22:23 -0700 (PDT) Received: from localhost ([::1]:46758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lcHrK-0000Su-AX for importer@patchew.org; Thu, 29 Apr 2021 21:22:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcHlD-0002mK-3I for qemu-devel@nongnu.org; Thu, 29 Apr 2021 21:16:03 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]:38901) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lcHky-0007U5-20 for qemu-devel@nongnu.org; Thu, 29 Apr 2021 21:16:02 -0400 Received: by mail-pj1-x102c.google.com with SMTP id f11-20020a17090a638bb02901524d3a3d48so827974pjj.3 for ; Thu, 29 Apr 2021 18:15:47 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id 1sm161277pjx.46.2021.04.29.18.15.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Apr 2021 18:15:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XDA7d3QjWWFtV2qtFhcmd5DNvHMTMh2+SFPB7dy5cBY=; b=AEFId7+IGe3+y2uGgLt5bTbhVM3Tfl47D6lroUbNEdXDn8eFyGEXo84Dv+a6Dx64BO lh8o0H4blkdQXVS4oY9OBIPedzHhPl0cUwiIcM+DncBNQCXgDMapgoIfme5Ju7BoYitk AR/TTUFLPttsjCt0ntp784jDCsSIbU++vM80w5f4IdSyU4C/TPw0lctlLY2dpgxbq3+B QWPoyvpIz7NqtVjiezVu+NQtq4DIWZcldOI/hFp+L3CINxZ9wDjJqk2atHwzJew4gk36 boghk08zoqR+iW1aotluHIJ5G3YQ4oDqiJ8ub8VBtKCJhTyg/dHXOL5aE8lJSH7QEokq EjLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XDA7d3QjWWFtV2qtFhcmd5DNvHMTMh2+SFPB7dy5cBY=; b=GHKAAJfihA3JH+SkJl3yYUMHmSkT2qBqxm6D2M5X2BOIY4hlCAiD4+elxIutbaDTYG rBI7oJtlXO1DmjiHl133qU8CnXMRVSRaBBY7aPJvOaLETEW3no2ulIdh+jFLCLiBPhkK frSwW8o44u56po0jbd69j6NwhEZxIheMVcPe3y+nIS0SkuV5VKTto1E15bGMvTBzZHlD sYbd1gCfDZHuVLKAiw1MK9zLQsEvqolOkUSB0Pz0tksxdxeXVU5lWgat2iHrfwfbcvZN yQhHiK4iB/qm6y/2irZiBEw6dpT3TNXO9JEH7hNBH1Yc4dIuLszq5lg/ieK+AjdNcPor f1Lg== X-Gm-Message-State: AOAM533qHyLQUrUnUn1VDjvn32G5W7t0Zq9wDzooswRyQCpBYUN2TqAr 5kKYBEu2IEhXG9MD4agCGLdBtDfU8IiF7Q== X-Google-Smtp-Source: ABdhPJzVWj195awrtpIEdyH5GtefpchxUuET5R+QXuuGUez+aRAX4uwxUllNp4CoTOWcMRZyd2GN+w== X-Received: by 2002:a17:90b:4a4e:: with SMTP id lb14mr11979641pjb.115.1619745346670; Thu, 29 Apr 2021 18:15:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 03/30] decodetree: Add support for 64-bit instructions Date: Thu, 29 Apr 2021 18:15:16 -0700 Message-Id: <20210430011543.1017113-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210430011543.1017113-1-richard.henderson@linaro.org> References: <20210430011543.1017113-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: f4bug@amsat.org, luis.pires@eldorado.org.br, qemu-ppc@nongnu.org, lagarcia@br.ibm.com, bruno.larsen@eldorado.org.br, matheus.ferst@eldorado.org.br, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Luis Fernando Fujita Pires Allow '64' to be specified for the instruction width command line params and use the appropriate extract and deposit functions in that case. This will be used to implement the new 64-bit Power ISA 3.1 instructions. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Luis Pires Message-Id: [rth: Drop the change to the field type; use bitop_width instead of separate variables for extract/deposit; use "ull" for 64-bit constants.] Signed-off-by: Richard Henderson Reviewed-by: Luis Pires --- scripts/decodetree.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/scripts/decodetree.py b/scripts/decodetree.py index d5da101167..f85da45ee3 100644 --- a/scripts/decodetree.py +++ b/scripts/decodetree.py @@ -27,6 +27,7 @@ import getopt =20 insnwidth =3D 32 +bitop_width =3D 32 insnmask =3D 0xffffffff variablewidth =3D False fields =3D {} @@ -112,7 +113,9 @@ def whexC(val): """Return a hex string for val padded for insnwidth, and with the proper suffix for a C constant.""" suffix =3D '' - if val >=3D 0x80000000: + if val >=3D 0x100000000: + suffix =3D 'ull' + elif val >=3D 0x80000000: suffix =3D 'u' return whex(val) + suffix =20 @@ -199,11 +202,9 @@ def __str__(self): return str(self.pos) + ':' + s + str(self.len) =20 def str_extract(self): - if self.sign: - extr =3D 'sextract32' - else: - extr =3D 'extract32' - return f'{extr}(insn, {self.pos}, {self.len})' + global bitop_width + s =3D 's' if self.sign else '' + return f'{s}extract{bitop_width}(insn, {self.pos}, {self.len})' =20 def __eq__(self, other): return self.sign =3D=3D other.sign and self.mask =3D=3D other.mask @@ -224,6 +225,7 @@ def __str__(self): return str(self.subs) =20 def str_extract(self): + global bitop_width ret =3D '0' pos =3D 0 for f in reversed(self.subs): @@ -231,7 +233,7 @@ def str_extract(self): if pos =3D=3D 0: ret =3D ext else: - ret =3D f'deposit32({ret}, {pos}, {32 - pos}, {ext})' + ret =3D f'deposit{bitop_width}({ret}, {pos}, {bitop_width = - pos}, {ext})' pos +=3D f.len return ret =20 @@ -1270,6 +1272,7 @@ def main(): global insntype global insnmask global decode_function + global bitop_width global variablewidth global anyextern =20 @@ -1299,6 +1302,10 @@ def main(): if insnwidth =3D=3D 16: insntype =3D 'uint16_t' insnmask =3D 0xffff + elif insnwidth =3D=3D 64: + insntype =3D 'uint64_t' + insnmask =3D 0xffffffffffffffff + bitop_width =3D 64 elif insnwidth !=3D 32: error(0, 'cannot handle insns of width', insnwidth) else: --=20 2.25.1