From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619360; cv=none; d=zohomail.com; s=zohoarc; b=GbtsY7I21qYxUSPzF5cdxVPLKmhdjDOVaXR0jU2p2Bpncx8obMkVJnGyUE49Pa/LBWu2FczeMQpZTZgbWlgHQ/oQ1+rGitLuKl05Wol9sAHJkRShNq3D95vqO4JxNMz8IZ4XbmiiexAvP4/WbQ7HYcl4ICkcZTzQbRDr6jtBgMU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619360; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=K0rAvylJFCDebhzyBWGh1HPRhJRm/GjXARu1Rx20O7U=; b=frio4DbRLWyZM12QoEComB7psNt4j4Jm33WCNoNcmCtgH9Y8umbMbcVPxFP/M8yPXFDIZ4ZvtDjbLQ/GLmKkCLxt384ASJ8JxSuj3M+eYLqjndiPPvuMEFucWgLJobOw7Z7AEpeJhVg/zWe0tXv2le/CoYW3ANv59buXtlvhJjQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619360720837.4293341340241; Wed, 16 Sep 2026 21:29:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73k0-0003BO-Ve; Thu, 17 Sep 2026 00:28:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jb-000398-1r for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:32 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jZ-0006lE-Fo for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:30 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cebad4adso268247a12.1 for ; Wed, 16 Sep 2026 21:28:29 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619308; x=1790224108; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=K0rAvylJFCDebhzyBWGh1HPRhJRm/GjXARu1Rx20O7U=; b=rtJ6QsyFgrS1tUo+8sak0N7D3USn4xhDFVGtmm6jirebnbuay8ufl7EujueYH9HDtw 7H+NNzQAMYVgNYUaqwiHBYHyTcisxlGedxycLpd4X/K3/HJWw4anGu06FGlhLK5w0k7X w+7pXlDjKLaxHm4DI0Qch9eOduP3dnW0o/9fzAhigT6jo2SjXYC7hFY5NIYGbxEhVbm3 464KmrLeHm+1nChirIkbp1xNZX4vL7IzlNjYNjb1yx0ZmVpbrEyv4qWDkeMQD2Sfiw8Z Qj6kr/jrpUrvcLkw/xa34D3PXxkAVIckZuAdFXyWkbEOvjulA2QPOdQ5x6y3SusZ41Pg /jdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619308; x=1790224108; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=K0rAvylJFCDebhzyBWGh1HPRhJRm/GjXARu1Rx20O7U=; b=DmLOwXBe+bpAKXStZU+R4j37V9ZjidbU3HfCQLUl6QoULKdcypLSCWTLSTdmAb0tGm rBfFnFAVleXIlxmsxrm/YTfLWhC+jyFvrGrsPYKeidusfaEZ4mSjzYqyvEaAkqs6Qhcz xQAFByZhbM2x6Mf0ufO8D8MmpzACjmT3R0GlcpzDxQaUMkYa1y4ly52VQ0bakAEfhDMv 4ULw6/h9QxPANf5J7v6LmQogEFNkFKWsgOEPqLhhw/NpcqUNkdB9pdnp1hYmVjgt+vyq veFzyGfHOd9HHghDHIkANEwyjq8/vFd9lHK2hjAMWoeLc9rReR2ohZW3gJAdeoQT/BSz HPJg== X-Gm-Message-State: AFuF++mmiOdgTwZSghqQmOOONwKQFR7lm/Ku+pt+8jChRd5L1ZMblaG7 cTpbjrIgwSTFhPNA78YtSB5Z9TSXyR67AL/Hg1WNBzFtP5RQlFSpqFlfL/6EJkelpq4BZYlB/C0 pyERdunU= X-Gm-Gg: AYBFou0I1k/2pC7IQ+4S74jtU/iSNJZlcF/uyCEhBwywiQkp3GOCBQHcrht/78jOx6B S7PEaV8aG5rtyZoa+yzAaYK7lQ8el78oJ2z6UN3IrBkR3EMPUjfPlXWDuIyokiTwu2KKTSJVoZk l06T+5Qx/ngDwZ5ZeJ+yCicvdvKS8N8fmr71H96hjytADSK+lhNEgnB39gmVqHwzNsXcKaibjqY DoL2IBFQ4Ho6HtcXVfc5Dt4IcIJguxLOMU041Oq//OmMLargYR4fhkNP4lqGCh2YWfFJSz+uXPy CIFwq8Ruu2QJR5ICey0Yq0HwQiJrZIuFNBCPlv3NMk9BYMwaNRfOxBZ9ODAL8SgnsKtR1ZbWaya 2QKH3wObmdLL/5MwjSkc3ZVZoJKS1yYyN90BVaKt9pr7BxY81Bb9k3KknhERLhv6y9b8I12jlR3 ei0FjmQdikSZO6gcjmWpTm21IS7VTycougvYA8K0Ko8ifqqoLr+LVAPzl+3bYfeBSPnlQUD60iQ f1WtFE= X-Received: by 2002:a17:90b:4c09:b0:39d:ec44:28b8 with SMTP id 98e67ed59e1d1-39e1e4674d9mr14479094a91.13.1789619307732; Wed, 16 Sep 2026 21:28:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 001/101] include/qemu/compiler: Add QEMU_*_NONNULL attributes Date: Wed, 16 Sep 2026 18:26:43 -1000 Message-ID: <20260917042823.542588-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619362090158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/qemu/compiler.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 4c49f52eb07..3661dc5fbaa 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -25,6 +25,14 @@ #define QEMU_PACKED __attribute__((packed)) #define QEMU_ALIGNED(X) __attribute__((aligned(X))) =20 +#define QEMU_ARG_NONNULL __attribute__((nonnull)) +#define QEMU_ARG_LIST_NONNULL(...) __attribute__((nonnull(__VA_LIST__= ))) +#define QEMU_RET_NONNULL __attribute__((returns_nonnull)) +#define QEMU_RET_ARG_NONNULL \ + __attribute__((returns_nonnull, nonnull)) +#define QEMU_RET_ARG_LIST_NONNULL(...) \ + __attribute__((returns_nonnull, nonnull(__VA_ARGS__))) + #ifndef glue #define xglue(x, y) x ## y #define glue(x, y) xglue(x, y) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619372; cv=none; d=zohomail.com; s=zohoarc; b=JCYB+6w2QQur7SbEDqpno287ufevHIXl3+X9wo6ZMALFNZv20xwIDXTz7zhCO2LpJiUdVvLHoESQgX1xZj/nT8FoqUWtENiBFApTeTnlGc8G/UrB6NJ2ndGg5JRRR4Qr91STHJYu69BCy5iuKFZMELGQhZzowUV5sPQmX6AOHmM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619372; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=+yjjV+A7iYyzKjGgR+UNc4f/t+ifl8d6M9mByR9w2bU=; b=S9/uClT2/jhWyooW/6Ei3sxTRLcB9vvLVaRZjMV7sceazVung1TwGExEPBaAOJjY/PRvFJotBtvt9HfAL3wXvsR6O4hQWKAMRmnUREpPrfSQqMgxv6OolvktNad2zG5sFSYN8exdJqZAiz30ir4cX7GyRtWcPwJeBQxB95DiGPk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619372642701.1322336847088; Wed, 16 Sep 2026 21:29:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kE-0003Db-WE; Thu, 17 Sep 2026 00:29:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jc-00039M-De for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:34 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ja-0006lN-AV for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:32 -0400 Received: by mail-pj2-x10.google.com with SMTP id d9443c01a7336-2d8fb334ddcso3655715ad.0 for ; Wed, 16 Sep 2026 21:28:29 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619309; x=1790224109; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=+yjjV+A7iYyzKjGgR+UNc4f/t+ifl8d6M9mByR9w2bU=; b=kynXoVqYkQm7DTte8ClDDM5swOafsu1latOxP78KbYB0Bu34iEGJUXV0Mr8z4wxTbt zDMhDxG4oSm8ebncFE0N6z+HUXkQLxmObSmJjTqfyzYxF9gFJJ9L2NScAPCm8Bfkd/pM 7Faj0SBT6z/ufezTkslwk0n7gtOsxHPVqj+ZP2jY9doVugbyDy1hmcV51sm4PIi+Nrsz Kkpw/tT8AFTlEdBsnsTVP3uzXbbQ7OxAqCrSKeXigg8JujSlMiBiD3KW+tX2A8RirPJV 8o1sN2LbfSVYDeSUC/ljWR3MieCKUaUP3N1j7+bKKxYUajfSUYxiXLfSF4ibS3xN4kAy WxMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619309; x=1790224109; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+yjjV+A7iYyzKjGgR+UNc4f/t+ifl8d6M9mByR9w2bU=; b=wUN64RBJADnwOxsN9DW699EMEu6mrx2EPEaJErVxdVCuS8rBoYragcLfug+8LU59HP /ldFmBJG0RW8j41v0PSBIMPPAP57fb4eDboxcnhnJLVM+5afMFCsnJBtOQy+KbsRRI0p UnHLZ7w6g9iGkLrpCzjStZzKQ+Y/aWzNLUTXsJGF/+J2aMeHFNpvuQym4shLBy82kLjv nKP+yI7/Mv6DXwTjcrmD+3b2Lp8cUWYO/hWMTLzKF/Edpy1mDjwyyqVN5ZKn25AFJW0s 79wnAKLWj6dVJbzSN11c+3nJRijYwAx9mB6D/K0O38f3bc4cKekedP41anRqncueeAUu HRTw== X-Gm-Message-State: AFuF++kHGKVlDbPv8ZGmiHMS4t2zXczAxJAC+6Lch7g3+0JM6v/VZGvx vLe9SsHT6Pbdh/TXhKwlvWwl8ENrVhF5p9jlPjDyLS/qux6zy4hiYl0rHZMLUK/26UMFsD68cSZ miMVD X-Gm-Gg: AYBFou3YoFpMD5AZbVdolbrMSM3pRguPMpdO4rzHz1I4P+lw+Wxoj2IMjO6Iu1PgnXj 6RmmUckkMuaPxU0zKN8GrXYuGTRqUtj3jvfYfmLQXB8nKflvNweo3KKwAKLkOcAazgIDQoM1MGI /L+X8MQckUBlVTpxSc0MFxyzdbQKsAS99KyGaW5928UsmMp2bXuxO0bPnM5e4u6rzVWPeLAGtrq Q90EOU0C46yZjIX+nDPe2QuEclWeo525k+0cz1NwMt7teahYm0lawC0J1jdidpdT3xqqzrG5dTM 8RZ7XnK+QYA3edEtzHmFlhtg4pusjQjyOyjYdAQdW0NMQsFbAuUyKEXX8tLk3ZWIANTz25uZzvA /mQpWzvILd5snHzDN5KG0aMOWEjw1faPCLHDOeFJA1CR/EpHP6e3d9zCjGchSB2XxqbOOyNcl41 tfeHLlO4x/qkvwg4EjqooYF6bcbwR0eSbQvQF0S7Rv7WXfe6u9plF9Eum74OPiXZ/nJgyFDG37t 5U2qyI= X-Received: by 2002:a17:90b:5386:b0:39b:3510:49e7 with SMTP id 98e67ed59e1d1-39e1df52290mr13327070a91.0.1789619308694; Wed, 16 Sep 2026 21:28:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 002/101] include/qemu/compiler: Define QEMU_ALIAS Date: Wed, 16 Sep 2026 18:26:44 -1000 Message-ID: <20260917042823.542588-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619373574158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/qemu/compiler.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 3661dc5fbaa..8fa4552ef8f 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -230,6 +230,13 @@ # define QEMU_UNINITIALIZED #endif =20 +/* + * Alias the current function definition to another. + */ + +#define QEMU_ALIAS(N) \ + __attribute__((alias(stringify(glue(__USER_LABEL_PREFIX__, N))))) + /* * http://clang.llvm.org/docs/ThreadSafetyAnalysis.html * --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619431; cv=none; d=zohomail.com; s=zohoarc; b=LXHsthjR2anianVR965Z0++WzNWpi5QwmwAwlF25DHkLTxVbPhhaIwofobyDz/lb9yKe40A4IboG/tyQBvZSejV505QkFU15Qzmr8Wb3Dy7gd72lS5UH/HIeqwPtBWJnY4gj5Ti4dNFI/mTcgORYFZJfdryEs2b7U4i6Gx5l/Vc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619431; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=iGTYR7UCITvKY2ETDmItcN5Fwca4QkduNfX2aKwaQfk=; b=NnmFaKtJRA9gjfxjMd6CmGNuZs8nJitYhTzxYBPfoQ324EVCw7jwjSCwgsg5FFed0GCyhmaoXvtrr13TH/e5v1F1X5byZI6O5cUlHdDqhifDjH42RGb3VoDu5SKtcw6Gm77T0FjgPJEB/Yw0N0mVXnQcfj2PhNB1oBaHQlZ3wxg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961943162439.74870392599291; Wed, 16 Sep 2026 21:30:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kg-0003XW-BF; Thu, 17 Sep 2026 00:29:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jd-00039P-O5 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:34 -0400 Received: from mail-pj2-x0e.google.com ([2607:f8b0:4864:39::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jb-0006lc-Rb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:33 -0400 Received: by mail-pj2-x0e.google.com with SMTP id 98e67ed59e1d1-396ccc09d65so328240a91.3 for ; Wed, 16 Sep 2026 21:28:31 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619310; x=1790224110; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=iGTYR7UCITvKY2ETDmItcN5Fwca4QkduNfX2aKwaQfk=; b=P5MAFKJ8i4i22/mD3qJwjAEfC8+amu3WGocKl60wRlZursFcEoTNYPPyfoHUd9WIFr CD3AFhHb4yEeYbuBFMmn2NsDoHYr3mmwqcLFBtg0uzlb9M2AJ9lBI1el00JcsMkw+Two /NqbYS/omiAUhfFXvhCa4vb+d+/5veq/Pc6I3TIjQ4KL6RIQc/ExTcFfZ+i+GB67yi3C Se9bkkdO4mO1YAHPtPU5ktLWkfen9Qy1qpqrDxDtJzGxc+cbvf6L8wLQBVHFP2FsYdsv zWoLASfFWRMsc2GSbNgDkMqHogwZt2O0YyTVxx+iL5j9FPDpuWAPJuFA0hfmXM4nMYWu GKEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619310; x=1790224110; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=iGTYR7UCITvKY2ETDmItcN5Fwca4QkduNfX2aKwaQfk=; b=LfJsrA977rGlZ6UOcTUpg3nLS2BYRzD3y0aTBMf7eLV8eKawnCEvP+8Y6XgOZw9Gva OKR4haZ1LCkfwM6u4UHGVZ9I0FwcHdUT4I7pm1z4Zik11iU0YmMFV1p/vePuD4UuiKac fJZek+qh+aJixpQQ89do4GCQV+9ma1D0BMaVPRSUO6u/LRdVqhVCeeU68upfsQgHQ/Bc YPQjo7ZBr2kag5EXBUbZDsgAVd0l4VyZtT//ODWJhrw+9UCdtVGIn+wssZ7MDChJHJAO iMfz3Wo7p+G4GqrQ294ZGMc99YNA347SAE6A3sXnfsSwOfgio3JhazWY7K/Nj3Hv0DBj My9w== X-Gm-Message-State: AFuF++nnDcRGToiwpg/HhPtmqYQqoRxRWok/67sNStgDB+7M0CS2AJpl 8anBicLz/WMU6sREGkq82WNV6FztKEH36Ci3r5c5UmiZWSXTVOezs0OGPuCmcsgDhleEh4H/9Vx K+oJaGTk= X-Gm-Gg: AYBFou1nlqO/uDXWbVnyqXEN+SP4BOxnbG3KvbJVNU3tCkdRfW4gq7hBrN7wUpadvjD smbyCXC5EITOrFZnQPfzPgf5LR7EdTBhDd0VDuKGSrFfcAuUACxSWscNg1qRe3WFN9LsZQW5AWf rrinam8P75j4utWpv0fzMNt3NbIDiiZT+9aLi31/ZUWFnMn2zeVgrDoeEXTe97GKgJb/KSQUWWr /JIK9ZjSYSQCTEzUU6iqBvRL9kC6P4n6W6kqnxHU8br6Zf7R8x58Twtq44dzDczIX1y4gquHjeu OgjOVPgPMB9GAeJGZd1///aHFuxtdhuqbqwe7E67plzAj7zed/eXPug8U/vpicaJAMYC0v+shY9 PIu0EtjLCfi29BsKd1OK2C9I5Rj6Ri3ifp45gr9KmceUa1BFfmCLnbeJqHv8FBKdeGpNacObtDS 66jxTj0TglVvsyb4WOie94Qmp6pY35BJiiyS4ON5YynSrUCeyDCC2HXxWnpTVGBgitiyP2TD/5z 3Q3Xxs= X-Received: by 2002:a17:90b:274a:b0:39d:f2a1:31 with SMTP id 98e67ed59e1d1-39e1e489a60mr12063087a91.17.1789619309782; Wed, 16 Sep 2026 21:28:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 003/101] tcg: Annontate functions in tcg.h with QEMU_*_NONNULL Date: Wed, 16 Sep 2026 18:26:45 -1000 Message-ID: <20260917042823.542588-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::e; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619434059158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg.h | 58 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 7669dc1c2db..27ea86ce02a 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -478,9 +478,10 @@ static inline TCGTemp *arg_temp(TCGArg a) } =20 #ifdef CONFIG_DEBUG_TCG -size_t temp_idx(TCGTemp *ts); -TCGTemp *tcgv_i32_temp(TCGv_i32 v); +QEMU_ARG_NONNULL size_t temp_idx(TCGTemp *ts); +QEMU_RET_ARG_NONNULL TCGTemp *tcgv_i32_temp(TCGv_i32 v); #else +QEMU_ARG_NONNULL static inline size_t temp_idx(TCGTemp *ts) { return ts - tcg_ctx->temps; @@ -491,104 +492,124 @@ static inline size_t temp_idx(TCGTemp *ts) * its index means that we don't use 0. That leaves offset 0 free for * a NULL representation without having to leave index 0 unused. */ +QEMU_RET_ARG_NONNULL static inline TCGTemp *tcgv_i32_temp(TCGv_i32 v) { return (void *)tcg_ctx + (uintptr_t)v; } #endif =20 +QEMU_RET_ARG_NONNULL static inline TCGTemp *tcgv_i64_temp(TCGv_i64 v) { return tcgv_i32_temp((TCGv_i32)v); } =20 +QEMU_RET_ARG_NONNULL static inline TCGTemp *tcgv_i128_temp(TCGv_i128 v) { return tcgv_i32_temp((TCGv_i32)v); } =20 +QEMU_RET_ARG_NONNULL static inline TCGTemp *tcgv_ptr_temp(TCGv_ptr v) { return tcgv_i32_temp((TCGv_i32)v); } =20 +QEMU_RET_ARG_NONNULL static inline TCGTemp *tcgv_vec_temp(TCGv_vec v) { return tcgv_i32_temp((TCGv_i32)v); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcgv_i32_arg(TCGv_i32 v) { return temp_arg(tcgv_i32_temp(v)); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcgv_i64_arg(TCGv_i64 v) { return temp_arg(tcgv_i64_temp(v)); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcgv_i128_arg(TCGv_i128 v) { return temp_arg(tcgv_i128_temp(v)); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcgv_ptr_arg(TCGv_ptr v) { return temp_arg(tcgv_ptr_temp(v)); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcgv_vec_arg(TCGv_vec v) { return temp_arg(tcgv_vec_temp(v)); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_i32 temp_tcgv_i32(TCGTemp *t) { (void)temp_idx(t); /* trigger embedded assert */ return (TCGv_i32)((void *)t - (void *)tcg_ctx); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_i64 temp_tcgv_i64(TCGTemp *t) { return (TCGv_i64)temp_tcgv_i32(t); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_i128 temp_tcgv_i128(TCGTemp *t) { return (TCGv_i128)temp_tcgv_i32(t); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_ptr temp_tcgv_ptr(TCGTemp *t) { return (TCGv_ptr)temp_tcgv_i32(t); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_vaddr temp_tcgv_vaddr(TCGTemp *t) { return (TCGv_vaddr)temp_tcgv_i32(t); } =20 +QEMU_RET_ARG_NONNULL static inline TCGv_vec temp_tcgv_vec(TCGTemp *t) { return (TCGv_vec)temp_tcgv_i32(t); } =20 +QEMU_ARG_NONNULL static inline TCGArg tcg_get_insn_param(TCGOp *op, unsigned arg) { return op->args[arg]; } =20 +QEMU_ARG_NONNULL static inline void tcg_set_insn_param(TCGOp *op, unsigned arg, TCGArg v) { op->args[arg] =3D v; } =20 +QEMU_ARG_NONNULL static inline uint64_t tcg_get_insn_start_param(TCGOp *op, unsigned arg) { tcg_debug_assert(arg < INSN_START_WORDS); return tcg_get_insn_param(op, arg); } =20 +QEMU_ARG_NONNULL static inline void tcg_set_insn_start_param(TCGOp *op, unsigned arg, uint6= 4_t v) { tcg_debug_assert(arg < INSN_START_WORDS); @@ -617,9 +638,9 @@ static inline bool tcg_op_buf_full(void) /* pool based memory allocation */ =20 /* user-mode: mmap_lock must be held for tcg_malloc_internal. */ -void *tcg_malloc_internal(TCGContext *s, int size); -void tcg_pool_reset(TCGContext *s); -TranslationBlock *tcg_tb_alloc(TCGContext *s); +QEMU_RET_ARG_NONNULL void *tcg_malloc_internal(TCGContext *s, int size); +QEMU_ARG_NONNULL void tcg_pool_reset(TCGContext *s); +QEMU_RET_ARG_NONNULL TranslationBlock *tcg_tb_alloc(TCGContext *s); =20 void tcg_region_reset_all(void); =20 @@ -632,7 +653,7 @@ size_t tcg_code_capacity(void); * * Insert @tb into the region trees. */ -void tcg_tb_insert(TranslationBlock *tb); +QEMU_ARG_NONNULL void tcg_tb_insert(TranslationBlock *tb); =20 /** * tcg_tb_remove: @@ -640,7 +661,7 @@ void tcg_tb_insert(TranslationBlock *tb); * * Remove @tb from the region trees. */ -void tcg_tb_remove(TranslationBlock *tb); +QEMU_ARG_NONNULL void tcg_tb_remove(TranslationBlock *tb); =20 /** * tcg_tb_lookup: @@ -674,6 +695,7 @@ void tcg_tb_foreach(GTraverseFunc func, gpointer user_d= ata); size_t tcg_nb_tbs(void); =20 /* user-mode: Called with mmap_lock held. */ +QEMU_RET_NONNULL static inline void *tcg_malloc(int size) { TCGContext *s =3D tcg_ctx; @@ -692,8 +714,10 @@ static inline void *tcg_malloc(int size) } } =20 +QEMU_ARG_NONNULL void tcg_func_start(TCGContext *s); =20 +QEMU_ARG_NONNULL int tcg_gen_code(TCGContext *s, TranslationBlock *tb, uint64_t pc_start); =20 void tb_target_set_jmp_target(const TranslationBlock *, int, @@ -783,7 +807,10 @@ void tcg_gen_call7(void *func, TCGHelperInfo *, TCGTem= p *ret, TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *); =20 +QEMU_RET_NONNULL TCGOp *tcg_emit_op(TCGOpcode opc, unsigned nargs); + +QEMU_ARG_NONNULL void tcg_op_remove(TCGContext *s, TCGOp *op); =20 /** @@ -794,10 +821,13 @@ void tcg_op_remove(TCGContext *s, TCGOp *op); * a starting point with tcg_last_op(), speculatively emit opcodes, * then decide whether or not to keep those opcodes after the fact. */ +QEMU_ARG_NONNULL void tcg_remove_ops_after(TCGOp *op); =20 +QEMU_ARG_NONNULL void tcg_optimize(TCGContext *s); =20 +QEMU_RET_NONNULL TCGLabel *gen_new_label(void); =20 /** @@ -806,7 +836,7 @@ TCGLabel *gen_new_label(void); * * Encode a label for storage in the TCG opcode stream. */ - +QEMU_ARG_NONNULL static inline TCGArg label_arg(TCGLabel *l) { return (uintptr_t)l; @@ -837,7 +867,7 @@ static inline TCGLabel *arg_label(TCGArg i) * This version relies on GCC's void pointer arithmetic to get the * correct result. */ - +QEMU_ARG_NONNULL static inline ptrdiff_t tcg_ptr_byte_diff(const void *a, const void *b) { return a - b; @@ -851,7 +881,7 @@ static inline ptrdiff_t tcg_ptr_byte_diff(const void *a= , const void *b) * Produce a pc-relative difference, from the current code_ptr * to the destination address. */ - +QEMU_ARG_NONNULL static inline ptrdiff_t tcg_pcrel_diff(TCGContext *s, const void *target) { return tcg_ptr_byte_diff(target, tcg_splitwx_to_rx(s->code_ptr)); @@ -865,6 +895,7 @@ static inline ptrdiff_t tcg_pcrel_diff(TCGContext *s, c= onst void *target) * Produce a difference, from the beginning of the current TB code * to the destination address. */ +QEMU_ARG_NONNULL static inline ptrdiff_t tcg_tbrel_diff(TCGContext *s, const void *target) { return tcg_ptr_byte_diff(target, tcg_splitwx_to_rx(s->code_buf)); @@ -877,7 +908,7 @@ static inline ptrdiff_t tcg_tbrel_diff(TCGContext *s, c= onst void *target) * Compute the current code size within the translation block. * This is used to fill in qemu's data structures for goto_tb. */ - +QEMU_ARG_NONNULL static inline size_t tcg_current_code_size(TCGContext *s) { return tcg_ptr_byte_diff(s->code_ptr, s->code_buf); @@ -935,12 +966,15 @@ static inline size_t tcg_current_code_size(TCGContext= *s) #define TB_EXIT_REQUESTED 3 =20 #ifdef CONFIG_TCG_INTERPRETER +QEMU_ARG_NONNULL uintptr_t tcg_qemu_tb_exec(CPUArchState *env, const void *tb_ptr); #else -typedef uintptr_t tcg_prologue_fn(CPUArchState *env, const void *tb_ptr); +typedef QEMU_ARG_NONNULL uintptr_t + tcg_prologue_fn(CPUArchState *env, const void *tb_ptr); extern tcg_prologue_fn *tcg_qemu_tb_exec; #endif =20 +QEMU_ARG_NONNULL void tcg_register_jit(const void *buf, size_t buf_size); =20 /* Return zero if the tuple (opc, type, vece) is unsupportable; --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619507; cv=none; d=zohomail.com; s=zohoarc; b=KJ13QJ8q2jXVXfs5PKTojstIBvaNJpSydGH9Qwi/SYYtSP2gDgrpeHyLxi1IfW+0rZ5lhS/n4QH2+sFENpmR456BOuuF+YUJvgPjusz1Ar/BV3laLjd3NBMbXIFq/2WNA4E/Hb3ZCfwVy1e2RJXjTTnO1ebx6Faa5ACO5ztu1RA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619507; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=mvlxbvvBT6L4tozjt59kyDDd3bACtbqGjYtcp/gb1fc=; b=Wk/SDEzWUGZS8OGqbbZoXpfrRmoHxtJ8SN15uEMoqQID0CJmEOJQEUyelUCsXB+2/f/+039qGjhbQWlUTVSaQHUb+Zw6GamXXPFAC52Av0CwRQYsY5lCb934cmGPuerbGhMLyn4aRh+GG3Mj2g/05s9zpzSzVqW4TYlhW72I+C4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619507695355.6312237147879; Wed, 16 Sep 2026 21:31:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73k4-0003Ba-RF; Thu, 17 Sep 2026 00:29:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jd-00039Q-Q8 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:34 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jc-0006lj-9S for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:33 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccb1a98fso327682a91.1 for ; Wed, 16 Sep 2026 21:28:31 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619311; x=1790224111; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=mvlxbvvBT6L4tozjt59kyDDd3bACtbqGjYtcp/gb1fc=; b=PrVo0l2+iMmvfYWOqCJpJCBfIHc8ygXcOuXsnDzZVizEQgU6YkhJZgPNhCrzP/zvG4 2wJGhKVqh3RT21C3++47Du8sxXB4/TZRBz/ylNJoe6bRiQdnZniQNRQ3uuVh0p8rIZIu chn/9x6mdw6go3pCyxkXMQfZXh9p12L72jlJ0UP1M0j5VwoNvxOLguU1lHB/7eZCtLsF pZ8uC932oPvndnyX11reR5h09UZB2dD4a5BfG70aWUrJYWOq1P2FH3HMNOyGuL6CL9Fo UE3DCHx0/FPA7lNB/C/3oitVjRqQNW1KoiM58ibomlg/Sa1Tfi8WdEQdh16SFU8+2agi F5OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619311; x=1790224111; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=mvlxbvvBT6L4tozjt59kyDDd3bACtbqGjYtcp/gb1fc=; b=u9K5q2MtwN9rWRLOWvJMdDXazRgYn/t8tmmpR+/myBVpL2uWDugqiiJ36cSXH/wCzH MebTKDZLRm8BYp2P+O/8kNn+Te1ro39Twrdp1LtABrq7wOmQ8moZDSw7UTpjsXZRobIQ DzSGggYHocQT7q0sI/c3HKwUmU2cXR/a6wPrK33fZVBP82TCgAi0llNObPIja0BhatoC hyHX4pGTVyCBlJ4lM9vCzhSoX+pc6udWgwT5mQqcsSmuSQZBb5+lHHLPN/aRY69ngab1 MNBmg6gE9T/139f4IZzPYH8HERYWhg9tsGV4VQjkEEYw3qzfi9pXPTcupLs0OlWofZng yycA== X-Gm-Message-State: AFuF++lQlckK6l1zdkwBL1ZSet07qrb3zklgl9l9+2/FlBYQ6JXdw5VX ltvn3pUNb/+rmA8Q1VqYrztExBGIF9mVK59fSNnQEd+VZWbLfunADI+ZjSmXuqZT8+tPuV/1ETw OdYiNmKs= X-Gm-Gg: AYBFou3k1v5xUqNRFcdwK0gLmpsZUm5PmQ1SfO/6YHhC1RTzCXhTen6CI7rQg98XfEL 1659kDMATx0EbfnEoHwtFEGemT1Hox+J8BK7OpqpItOgu+Q3MaFl62gWJxY9nsKpXRGV9YSakcd 3U3GKiaWwAODbD03OvOv9uhyawQ4cSRzw3xgcucINo+DNYtJXQ4iZ40ASuYIM9jaVUV3zo1aYYI YpbYetJpJy2gH4IEz5DHnvPmKkCICpTDki6fNaftPAIG/+bsBEL4zJzmoUyGu9tYv+IfOn87jmL vUYtpm+nlZa/V4yigR1jB+QzhX45q82oJsuPnYjuq55PQMBJyAn+cxDpQpHL1bKNbMAjgYzPvUG T2qDeF1AxjxKJxCHnw8gHedVtcQhFcmYD/03HDKsQZhrXGHQLpuY7CbqzuOBeo9U7OmRBLzdm7h wdvFAyBRvolDlE9ggymym7rPPQXTtAnPVng6GotYj0p05CaVgZ0vj9mrMkPeoeH6+L72oUpiQtg jpbgLQ= X-Received: by 2002:a17:90b:3842:b0:39e:3ce1:d22f with SMTP id 98e67ed59e1d1-39e3ce1d970mr2109727a91.16.1789619310845; Wed, 16 Sep 2026 21:28:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 004/101] tcg: Annontate functions in tcg-op-mem.h with QEMU_*_NONNULL Date: Wed, 16 Sep 2026 18:26:46 -1000 Message-ID: <20260917042823.542588-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619508328158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-mem.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/include/tcg/tcg-op-mem.h b/include/tcg/tcg-op-mem.h index ea35a02fb40..29e7c02f256 100644 --- a/include/tcg/tcg-op-mem.h +++ b/include/tcg/tcg-op-mem.h @@ -28,50 +28,50 @@ typedef TCGv_i64 TCGv_va; #error #endif =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_ld_i32(TCGv_i32 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_ld_i32_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_st_i32(TCGv_i32 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_st_i32_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_ld_i64(TCGv_i64 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_ld_i64_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_st_i64(TCGv_i64 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_st_i64_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_ld_i128(TCGv_i128 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_ld_i128_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 -static inline void +QEMU_ARG_NONNULL static inline void tcg_gen_qemu_st_i128(TCGv_i128 v, TCGv_va a, TCGArg i, MemOp m) { tcg_gen_qemu_st_i128_chk(v, tcgv_va_temp(a), i, m, TCG_TYPE_VA); } =20 #define DEF_ATOMIC2(N, S) \ - static inline void N##_##S(TCGv_##S r, TCGv_va a, TCGv_##S v, \ - TCGArg i, MemOp m) \ + QEMU_ARG_NONNULL static inline void \ + N##_##S(TCGv_##S r, TCGv_va a, TCGv_##S v, TCGArg i, MemOp m) \ { N##_##S##_chk(r, tcgv_va_temp(a), v, i, m, TCG_TYPE_VA); } =20 #define DEF_ATOMIC3(N, S) \ - static inline void N##_##S(TCGv_##S r, TCGv_va a, TCGv_##S o, \ - TCGv_##S n, TCGArg i, MemOp m) \ + QEMU_ARG_NONNULL static inline void \ + N##_##S(TCGv_##S r, TCGv_va a, TCGv_##S o, TCGv_##S n, TCGArg i, MemOp= m) \ { N##_##S##_chk(r, tcgv_va_temp(a), o, n, i, m, TCG_TYPE_VA); } =20 DEF_ATOMIC3(tcg_gen_atomic_cmpxchg, i32) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619360; cv=none; d=zohomail.com; s=zohoarc; b=gKCmgzS3leTPkFfixjzsOUXV8oUlUwXJ6xUAFlUMSdvUaqgXllkevOnL1RuQ+8VFAfFC8fCSdiaEdDF99RPiRMuJiOaN432iHAwpjftkX80lbrE47GBbsULzYF7BDdPHpy3i+RaH4Qm/PSJND0tWUlDITQtJ0wvfhVsepEI4TOk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619360; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=zppA5F7u5jRNskJwrLWeML9tlG0yJ4S2s1Br5DXJWCE=; b=hmDOjzPMDAWjilB5SROgwX19K8wAq8fIalZuG+DPe14FkaN1GiUncOG9g84OPvY7BsVXIcoxO2T8O01qLtha8vrxWqQ3/gbbtIiLATgOgetdyhWl+xsKYQB1wdQihqhfhmqsVLELdNyQZ92v7o/f2nj2bzob0c5mwu0NgUxui9U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619360487427.84943732813247; Wed, 16 Sep 2026 21:29:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73jr-0003AK-0s; Thu, 17 Sep 2026 00:28:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jf-00039X-2O for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:35 -0400 Received: from mail-pj2-x0e.google.com ([2607:f8b0:4864:39::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jd-0006lw-DB for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:34 -0400 Received: by mail-pj2-x0e.google.com with SMTP id 98e67ed59e1d1-39b5b07ec78so281193a91.3 for ; Wed, 16 Sep 2026 21:28:33 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619312; x=1790224112; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zppA5F7u5jRNskJwrLWeML9tlG0yJ4S2s1Br5DXJWCE=; b=CdbYPcj6+6HswkuieSAYfDVrm/5B9AOulwdKTjEt3SmN1Yq+mTD3dgksYfikE/5I2A O513UqpKgcaKEqUUKkQz8snpAnhnyC9qJFAwfkTfOHutTXVQ9PwzguuP2rBEgWkKgIhP OoIfqXbn/QRY14g9XVWHKFTy+5q/miZdcRZplyT6qFK8ns0gHDWF63LcT0DZESVl2aDN eoQRJUlg9V/7BB95BoMb/4yLxYS1CFuXECrE+R75hnviPnMSpZJ1rBIVMow3J7KsTDx8 feGJNqqAXLyMtDCSh+KrkOIrvhgWU29xeTBMDlXr2SlEe0f1ca+lWL0DVOj0SB5IzJEg i6bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619312; x=1790224112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=zppA5F7u5jRNskJwrLWeML9tlG0yJ4S2s1Br5DXJWCE=; b=RWIje20BfbIiySSMoBsscK5Jzl7Q6/PQ19OZwq0/pxSSm6Z7QxJ2vHYrst6tlMNtSc TqexOd84BE2wrwOp3LutPdsOiBE3DfLlHYJyr7X7KRLSk3KyFgKQcAGpwlcrwhhqrxnU V/aKYqCAR2qm4hZDToay90EiyEHP4vHugbD1QR29gUTIEBIvnkE+tNrjT4xKzeL8JXzF Z2e9XRMAU3rC209LNHSjC8HaOiPktGQ/J0ZAK5v6+Ffqnq8hCYh+JPDeUL0pZkT1f1rG JnayjjJ+Ww2SXG+35rg6jqS92yNDK0ZrCbZXuG6Aor0fSTgylr9/PY4bYnu1UWRwP5Zt ku9g== X-Gm-Message-State: AFuF++lFEgu+VeKCRcHp3UM436rjQmVL2kOLiRw1rw+GWTc0ubTx+XvI UZBZchp4X1a8ikrm5Q3MgM8J5NUDdc63wEPEOx9qoKzDILwPbmeewnT44od1oPHSA/SdJ9cKEu2 bfhgWMbw= X-Gm-Gg: AYBFou23whOqTaiqUAw1h0DUWbmyTsbZArXve0gywJLfLf42uHBLVNfduzcg9JNtXpe h230IE9GcTQgbmh2XvBxpEBDXyP96/uwzem9rRu06+fntdnVVP8cRjEe2KFqNZKhpHeGz3VJr6c nLsy7UtONtxEK7M6TednuC500zOiqyW3rEnJcVN7aLOXQTYSNQZDqrku0R50NG1xyGg20NfWeyz aoNythHePta9GPcywije4wCNbOwbFRt4uko8M8IkzzwsTgGvpiflpyd3sEvxoucf9umWz7Y/R42 Al50fUEq3Xr0Dke0isfGFoE0QAGNEMaiVsYuTmzlzZzKVmRqbOv83aFKD6BdFYC/QMXumNcouzh fu2kB09c2pkto0w5Q1OzFupWR0fk3eCM012lv+/nlrXmvfrE7t6EaWZH5r4uBkGaAKXVYflkjyV D2iJ1A14YxksdWpTn4B62U/Y/aYb5gZAInUDoguRnakWDOQXBo6vLHW/bJJU2FEUDHEQTQlRrfD 8j/i4I= X-Received: by 2002:a17:90b:3c06:b0:39d:fcee:8d10 with SMTP id 98e67ed59e1d1-39e1e48f686mr12684291a91.16.1789619311929; Wed, 16 Sep 2026 21:28:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 005/101] tcg: Annontate functions in tcg-internal.h with QEMU_*_NONNULL Date: Wed, 16 Sep 2026 18:26:47 -1000 Message-ID: <20260917042823.542588-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::e; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619363616158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- tcg/tcg-internal.h | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/tcg/tcg-internal.h b/tcg/tcg-internal.h index e35440dc8c0..2620c23b448 100644 --- a/tcg/tcg-internal.h +++ b/tcg/tcg-internal.h @@ -41,53 +41,55 @@ extern unsigned int tcg_max_ctxs; #endif =20 void tcg_region_init(size_t tb_size, int splitwx, unsigned max_threads); -bool tcg_region_alloc(TCGContext *s); -void tcg_region_thread_initial_alloc(TCGContext *s); -void tcg_region_prologue_set(TCGContext *s); +QEMU_ARG_NONNULL bool tcg_region_alloc(TCGContext *s); +QEMU_ARG_NONNULL void tcg_region_thread_initial_alloc(TCGContext *s); +QEMU_ARG_NONNULL void tcg_region_prologue_set(TCGContext *s); =20 -static inline void *tcg_call_func(TCGOp *op) +QEMU_RET_ARG_NONNULL static inline void *tcg_call_func(TCGOp *op) { return (void *)(uintptr_t)op->args[TCGOP_CALLO(op) + TCGOP_CALLI(op)]; } =20 -static inline const TCGHelperInfo *tcg_call_info(TCGOp *op) +QEMU_RET_ARG_NONNULL static inline const TCGHelperInfo *tcg_call_info(TCGO= p *op) { return (void *)(uintptr_t)op->args[TCGOP_CALLO(op) + TCGOP_CALLI(op) += 1]; } =20 -static inline unsigned tcg_call_flags(TCGOp *op) +QEMU_ARG_NONNULL static inline unsigned tcg_call_flags(TCGOp *op) { return tcg_call_info(op)->flags; } =20 -static inline TCGv_i64 TCGV128_LOW(TCGv_i128 t) +QEMU_RET_ARG_NONNULL static inline TCGv_i64 TCGV128_LOW(TCGv_i128 t) { return temp_tcgv_i64(tcgv_i128_temp(t) + HOST_BIG_ENDIAN); } =20 -static inline TCGv_i64 TCGV128_HIGH(TCGv_i128 t) +QEMU_RET_ARG_NONNULL static inline TCGv_i64 TCGV128_HIGH(TCGv_i128 t) { return temp_tcgv_i64(tcgv_i128_temp(t) + !HOST_BIG_ENDIAN); } =20 bool tcg_target_has_memory_bswap(MemOp memop); =20 -TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind kind); +QEMU_RET_NONNULL TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind = kind); =20 /* * Locate or create a read-only temporary that is a constant. * This kind of temporary need not be freed, but for convenience * will be silently ignored by tcg_temp_free_*. */ -TCGTemp *tcg_constant_internal(TCGType type, int64_t val); +QEMU_RET_NONNULL TCGTemp *tcg_constant_internal(TCGType type, int64_t val); =20 -TCGOp *tcg_gen_op1(TCGOpcode, TCGType, TCGArg); -TCGOp *tcg_gen_op2(TCGOpcode, TCGType, TCGArg, TCGArg); -TCGOp *tcg_gen_op3(TCGOpcode, TCGType, TCGArg, TCGArg, TCGArg); -TCGOp *tcg_gen_op4(TCGOpcode, TCGType, TCGArg, TCGArg, TCGArg, TCGArg); -TCGOp *tcg_gen_op5(TCGOpcode, TCGType, TCGArg, TCGArg, TCGArg, TCGArg, TCG= Arg); -TCGOp *tcg_gen_op6(TCGOpcode, TCGType, TCGArg, TCGArg, - TCGArg, TCGArg, TCGArg, TCGArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op1(TCGOpcode, TCGType, TCGArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op2(TCGOpcode, TCGType, TCGArg, TCGArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op3(TCGOpcode, TCGType, TCGArg, TCGArg, TC= GArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op4(TCGOpcode, TCGType, TCGArg, TCGArg, + TCGArg, TCGArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op5(TCGOpcode, TCGType, TCGArg, TCGArg, + TCGArg, TCGArg, TCGArg); +QEMU_RET_NONNULL TCGOp *tcg_gen_op6(TCGOpcode, TCGType, TCGArg, TCGArg, + TCGArg, TCGArg, TCGArg, TCGArg); =20 void vec_gen_2(TCGOpcode, TCGType, unsigned, TCGArg, TCGArg); void vec_gen_3(TCGOpcode, TCGType, unsigned, TCGArg, TCGArg, TCGArg); @@ -95,8 +97,10 @@ void vec_gen_4(TCGOpcode, TCGType, unsigned, TCGArg, TCG= Arg, TCGArg, TCGArg); void vec_gen_6(TCGOpcode opc, TCGType type, unsigned vece, TCGArg r, TCGArg a, TCGArg b, TCGArg c, TCGArg d, TCGArg e); =20 +QEMU_RET_ARG_NONNULL TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *op, TCGOpcode, TCGType, unsigned nargs); +QEMU_RET_ARG_NONNULL TCGOp *tcg_op_insert_after(TCGContext *s, TCGOp *op, TCGOpcode, TCGType, unsigned nargs); =20 --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619514; cv=none; d=zohomail.com; s=zohoarc; b=FCCZ8sRIF+vTLI7rFZmNuNH/dDrkCiPIMe3EKIElkxu4/g6oT8MSyyPr8EO+nE4hsi7Xtv4tyk4TVrsaGCrSJzb4eDtCZZeM96VaQYUY9Uo+GXaLEMSCTKdSQUYrKTZb14pLMokYk0orprzY9lX6xxmPWZz/NWdcmR94Im4k2Y0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619514; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=47puM7envmbLsBYn4NN2JvYgQw7NFohb4tsZxNlNnyg=; b=kgDaqp/qfEQaB7ZrxaiJg/fwy9YV6icyoVNgXRyQVmR3v8XZvuVYXQkwgiN9l2W2UthLAm964dtVsnbLhalT2ftV43WvaYIz3WJjDC5mZyGgMsCIaOveQvWLScwJAObeFyk0sLsJHwfJW9CTGfgPtctr8PFhd3IbFPKRIQzpdZs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619514047799.7114770397422; Wed, 16 Sep 2026 21:31:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kG-0003HP-2b; Thu, 17 Sep 2026 00:29:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jg-0003A2-G7 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:36 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73je-0006m9-M2 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:36 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-cc147d86bebso536676a12.0 for ; Wed, 16 Sep 2026 21:28:34 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619313; x=1790224113; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=47puM7envmbLsBYn4NN2JvYgQw7NFohb4tsZxNlNnyg=; b=BcDzT8zgtBMS86FEffOyR0VSTX9GDU/6OYXgPpt6FPNK6KCeiPeF4rc+fR09eGHoq3 MWPu6u90Ds+LeWyY1AryMqEboJKMTbQstwuXTuOwjdxOqsGRZRwjZGJEB48GCcidtrMM cu0KOUirBOQI2uwmLWpyAzBV3w+uV1U410k2Bppl0hWued0CBNOVyB+b6bfw4CipdyVI iJ55vi03Hs/RwJT+nBBr+Jf7VNJ7S8IOmnhMWwNL7vrOR3BxR+9xfjLcFdlGSzdf5We4 zVhCgRNXYsEibIrvzOw9dYBve8xA5AjmH/cpBnZyk7MfYJDBpwpmgRmNiOvWZJ2mFvrx BmEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619313; x=1790224113; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=47puM7envmbLsBYn4NN2JvYgQw7NFohb4tsZxNlNnyg=; b=2MYbKxj0gq5zd2DYTIJNGEJB4eaL7HIngH3wyzo4Xlx8J5dEDUjOwKUkQvhVn8b7Gc anqIB3VySpC0hjr4vpbt0dAM72Crzn+bOrKFN1MiqTtAg6Y4ko8OFftBlThdVF7EF8x1 mekdOl9HuoeX8kBA5Ll4RI/RXG5KUspZj061vf54lScyhukkKpdI+M8hhof3k3mROovr F3JOcYaWw6sl5jaS407KdA74h8d7YiIp0Eg4RHucg6BGdi2nuqpmMavUP2LE/rNUDX4I EkK/TLWv87nh1eMKcKEBj5bwTqHwaklxbDnZcuLNRWyLHcwrWVI30eZ/chEzT6ANuo1M dyhQ== X-Gm-Message-State: AFuF++mkSP+Kz/nOzVg8BsI17/+jaEGbCR+B5KS46eln6WWaq1uA/6Bj n5+XXz43tmMTA805L31zUZK1SSGOQ91qo8vZW7tjeu00M2hH6KLBSd457jp/53FGlzGhA2e1Wj8 uxWkNgRE= X-Gm-Gg: AYBFou3mN1UWtmtYLFwPh8d7VIQAjg/5tT61uOuiOA07pw7zBC05d1KuJ8c9gN2kPca g7hVR6h/MfiA7Iq/tEEYvsr469LO3OXrylaGeENfebFAJBC1QZM/0sBQ513GTQo4xEtLTl5cPXG xKOB7pFT0sEo6jN5w9XgYROBOHvg3OMvOf8/pBRllF+RxAeqz9D4FddYIZhh3hM6v2CtTghGXyS vSMN0SDIPm7MOm/iL+QWBP7YY8IEHziejhi4wPsvpcJ2HJ62xFSK3cV8OCKIKTi6lccL+8smYlt 16bN73aiYTEP46gb9QkwwmJINAbFzJACvxmvp3DWcsR/fCJ2UrfdwpYnQy1h/ZJrSnqXk16UkRW vHy90Mz10JBPxH7HP0MauWL8ahkWg2J9nQCfaJ4jIl0ExloZRIYBfNGeTYNL/eMJyXwfnmrM+AP tFcHXI+NCIYqc6moGS72cf0CYOm3ub1jhgxYXPnU+7cjT+u4hLAKzjRx792jpIEkMHkQT4irC4N 23Vh5s= X-Received: by 2002:a17:90a:ac0d:b0:39e:396d:b0b6 with SMTP id 98e67ed59e1d1-39e396dc527mr1856355a91.2.1789619313068; Wed, 16 Sep 2026 21:28:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 006/101] tcg: Use QEMU_ALIAS to define most tcg_gen_*_ptr Date: Wed, 16 Sep 2026 18:26:48 -1000 Message-ID: <20260917042823.542588-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619514446158500 Content-Type: text/plain; charset="utf-8" Now that we've dropped 32-bit host support, TCGv_ptr is always TCGv_i64. Do not drop the type difference, as that's still helpful conceptually, but define the functions as aliases, exactly sharing code. Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 99 +++++-------------------------------- tcg/tcg-op.c | 18 +++++++ 2 files changed, 31 insertions(+), 86 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 9b321f959c0..1e826b62574 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -497,95 +497,22 @@ void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGAr= g offset, TCGType t); =20 /* Host pointer ops */ =20 -#if UINTPTR_MAX =3D=3D UINT32_MAX -# define PTR i32 -# define NAT TCGv_i32 -#else -# define PTR i64 -# define NAT TCGv_i64 -#endif - TCGv_ptr tcg_constant_ptr_int(intptr_t x); #define tcg_constant_ptr(X) tcg_constant_ptr_int((intptr_t)(X)) =20 -static inline void tcg_gen_ld_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o) -{ - glue(tcg_gen_ld_,PTR)((NAT)r, a, o); -} +void tcg_gen_ld_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); +void tcg_gen_st_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); =20 -static inline void tcg_gen_st_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o) -{ - glue(tcg_gen_st_, PTR)((NAT)r, a, o); -} - -static inline void tcg_gen_discard_ptr(TCGv_ptr a) -{ - glue(tcg_gen_discard_,PTR)((NAT)a); -} - -static inline void tcg_gen_add_ptr(TCGv_ptr r, TCGv_ptr a, TCGv_ptr b) -{ - glue(tcg_gen_add_,PTR)((NAT)r, (NAT)a, (NAT)b); -} - -static inline void tcg_gen_addi_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t b) -{ - glue(tcg_gen_addi_,PTR)((NAT)r, (NAT)a, b); -} - -static inline void tcg_gen_mov_ptr(TCGv_ptr d, TCGv_ptr s) -{ - glue(tcg_gen_mov_,PTR)((NAT)d, (NAT)s); -} - -static inline void tcg_gen_movi_ptr(TCGv_ptr d, intptr_t s) -{ - glue(tcg_gen_movi_,PTR)((NAT)d, s); -} - -static inline void tcg_gen_brcondi_ptr(TCGCond cond, TCGv_ptr a, - intptr_t b, TCGLabel *label) -{ - glue(tcg_gen_brcondi_,PTR)(cond, (NAT)a, b, label); -} - -static inline void tcg_gen_ext_i32_ptr(TCGv_ptr r, TCGv_i32 a) -{ -#if UINTPTR_MAX =3D=3D UINT32_MAX - tcg_gen_mov_i32((NAT)r, a); -#else - tcg_gen_ext_i32_i64((NAT)r, a); -#endif -} - -static inline void tcg_gen_trunc_i64_ptr(TCGv_ptr r, TCGv_i64 a) -{ -#if UINTPTR_MAX =3D=3D UINT32_MAX - tcg_gen_extrl_i64_i32((NAT)r, a); -#else - tcg_gen_mov_i64((NAT)r, a); -#endif -} - -static inline void tcg_gen_extu_ptr_i64(TCGv_i64 r, TCGv_ptr a) -{ -#if UINTPTR_MAX =3D=3D UINT32_MAX - tcg_gen_extu_i32_i64(r, (NAT)a); -#else - tcg_gen_mov_i64(r, (NAT)a); -#endif -} - -static inline void tcg_gen_trunc_ptr_i32(TCGv_i32 r, TCGv_ptr a) -{ -#if UINTPTR_MAX =3D=3D UINT32_MAX - tcg_gen_mov_i32(r, (NAT)a); -#else - tcg_gen_extrl_i64_i32(r, (NAT)a); -#endif -} - -#undef PTR -#undef NAT +void tcg_gen_discard_ptr(TCGv_ptr a); +void tcg_gen_add_ptr(TCGv_ptr r, TCGv_ptr a, TCGv_ptr b); +void tcg_gen_addi_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t b); +void tcg_gen_mov_ptr(TCGv_ptr d, TCGv_ptr s); +void tcg_gen_movi_ptr(TCGv_ptr d, intptr_t s); +void tcg_gen_brcondi_ptr(TCGCond cond, TCGv_ptr a, + intptr_t b, TCGLabel *label); +void tcg_gen_ext_i32_ptr(TCGv_ptr r, TCGv_i32 a); +void tcg_gen_trunc_i64_ptr(TCGv_ptr r, TCGv_i64 a); +void tcg_gen_extu_ptr_i64(TCGv_i64 r, TCGv_ptr a); +void tcg_gen_trunc_ptr_i32(TCGv_i32 r, TCGv_ptr a); =20 #endif /* TCG_TCG_OP_COMMON_H */ diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 2c88f4f7ca9..b738863ea69 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -2730,3 +2730,21 @@ void tcg_gen_lookup_and_goto_ptr(void) tcg_gen_op1i(INDEX_op_goto_ptr, TCG_TYPE_PTR, tcgv_ptr_arg(ptr)); tcg_temp_free_ptr(ptr); } + +/* + * We only support 64-bit hosts, so TCGv_ptr always resolves to TCGv_i64. + */ + +void tcg_gen_discard_ptr(TCGv_ptr a) QEMU_ALIAS(tcg_gen_discard_i64); +void tcg_gen_add_ptr(TCGv_ptr r, TCGv_ptr a, TCGv_ptr b) QEMU_ALIAS(tcg_ge= n_add_i64); +void tcg_gen_addi_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t b) QEMU_ALIAS(tcg_g= en_addi_i64); +void tcg_gen_mov_ptr(TCGv_ptr d, TCGv_ptr s) QEMU_ALIAS(tcg_gen_mov_i64); +void tcg_gen_movi_ptr(TCGv_ptr d, intptr_t s) QEMU_ALIAS(tcg_gen_movi_i64); +void tcg_gen_brcondi_ptr(TCGCond cond, TCGv_ptr a, intptr_t b, TCGLabel *l= abel) + QEMU_ALIAS(tcg_gen_brcondi_i64); +void tcg_gen_ext_i32_ptr(TCGv_ptr r, TCGv_i32 a) QEMU_ALIAS(tcg_gen_ext_i3= 2_i64); +void tcg_gen_trunc_i64_ptr(TCGv_ptr r, TCGv_i64 a) QEMU_ALIAS(tcg_gen_mov_= i64); +void tcg_gen_extu_ptr_i64(TCGv_i64 r, TCGv_ptr a) QEMU_ALIAS(tcg_gen_mov_i= 64); +void tcg_gen_trunc_ptr_i32(TCGv_i32 r, TCGv_ptr a) QEMU_ALIAS(tcg_gen_extr= l_i64_i32); +void tcg_gen_ld_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o) QEMU_ALIAS(tcg_gen= _ld_i64); +void tcg_gen_st_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o) QEMU_ALIAS(tcg_gen= _st_i64); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619565; cv=none; d=zohomail.com; s=zohoarc; b=Bq+BQS4km2YEFTk24ZiE7o4D9X4OK1ZfNfV9MjP2/LkzUoWisuryjThHDWvQGGUA2upi565r9E8nAYIAHSsjtvSXEWxwb0/+V2bRNVhX3zEuyf2j0x8hvBCyd4ruVU4DUVzJjRqPvlsu2Q8u1CMfUQJ5p7MAU6aey5G1I24RYwc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619565; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=EyvfVIpbqiYFMjTw3EigaFciwRRnh2+tfSMPM9zFtlc=; b=fxNeTx9rQnEv/a44YcCQUiw/4Mg54xfaHzjUh1P+vvC0ZUsKKzxM/oxc6MlKXsRu4NCn00RA4d0n71pf98vusOOEZk3pXNj7DTYxucSOSlqWFTGb4enngr+Jxc90iIwOpERtq+6QRttAacgfjrrKyCwx/mhlzgut0ntYz6AgbG4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619565745134.72382048950033; Wed, 16 Sep 2026 21:32:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kG-0003HS-TH; Thu, 17 Sep 2026 00:29:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ji-0003AC-1G for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:38 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jg-0006mJ-3M for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:37 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4bfd1so268060a12.0 for ; Wed, 16 Sep 2026 21:28:35 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619314; x=1790224114; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=EyvfVIpbqiYFMjTw3EigaFciwRRnh2+tfSMPM9zFtlc=; b=u7+gfSZ0N7m+qv98VA5C3iHYOFv8hvAZ9J6KkHoE6lPS92Bp7xiw3xuKQc065sfDrU WF/WWTpNwgAjMTFL19ivrx/hVjoih6lHM7suj2DZXG0VRhoAfKyIJ6PvoZ2FwHeW2xle CYkwhT4iTOmDWB7QbtBtWR2t0pu2tTWbskWWN9sUbH445N9ocIWOkSQ9KSAFzy3I9QOH Ns963fcsCsBA6/fDr+zm3w+J/6HgBR7QbdhF7krm7bTxRz7+n5BMkAhyLolqT2ekNkkN 6SoseKwi0+uJbsB47L9jwz5dH9otpMbu2TC/CPlAtKK3wCMQs0Uqd6CcA65e1tZXDool MrOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619314; x=1790224114; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=EyvfVIpbqiYFMjTw3EigaFciwRRnh2+tfSMPM9zFtlc=; b=UqzMnonE99kiyyBs1aiGGKXqBBO6lCWCFd8BVirmP+1recoE6OzC1nEGIzTb7EN5Jh zLETjBbxAXoaxKNh6ZaoJ7cKaAUAQ3gid432Y5U12Qe8nwcEjogGiyyKGF3DvUCtJfHj 6srbmW7c5yCJ68W4u/Y+jxJyQlwJ+GrM6oME2mjPogszN6jgJbeZ/CYRRWEFokUO1pvU D6gIrdELB6mnku66AYkCgNaYVLV5vUDUvvILI4bnp3XZ912maUfcDLRNIuASPAJpLDrd eXAw1hjG2tLoS75Z94OjN52rGfOaI7Akhg3LLcHe0jrBLixro4gW0WFj2o5HbJmzEASn xPIw== X-Gm-Message-State: AFuF++nRlMU4S/zac6fdgYrCdzylaxlPtzElpM5KW78NgykNXVQRQNb2 SgxzLyAGijc4Hx3M2I3GbzITfsBegeuIDO0ks+WVJ+paalGIxdxQVPob01V5EP0fujSAk8PECt0 WvneFsds= X-Gm-Gg: AYBFou2o+5jmaSvefaz82SNlNZjsbs984MnKy2gpcJFSLfbMbFNcCKmeoX9v8ILH10C BjQcOyJBywr459IF8rfM1ymQ+BxhDILjro17huJejHvZQk5DhxmnpWYRXtSemREWtW8DWdbiptE eNgj4JifX4pGfuFp9OeZlKsnELPVQ4B6HFLH8TiTUaXqnpG4xzJMqC2xqUgm07PvPsUJldJxHd4 A5mXaSdcEv7D3pBA5EoG0yrw+eAGDysjf9cDWsfwp6CjoB28ymVB65nd5bQ3QyboLrMyghTq968 TZZpIItBVcXs6MnYrt/3NN8wXqQeQeHGVSTZWW9843r3Cu02xYf0M6i5TV/R4G2y98y4sg/Er31 e9wvt2lduY/RVPyE4h+cWG6wUDRa2BNODbyVAXR7hbF5lpTbXRVxb4k8oL7TbukeiTOH81SgJlg ODM754sZUE/0sr4IMf/fgUFQtU4b+Bnpbw0+4g87eqdMj5ufXeM1VIVjiRwAf4kU59wtlxe+O2Q cORwtU= X-Received: by 2002:a17:90b:4d0e:b0:39e:17b:a13d with SMTP id 98e67ed59e1d1-39e1e539c36mr14248816a91.23.1789619314260; Wed, 16 Sep 2026 21:28:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 007/101] tcg: Use QEMU_*_NONULL with all tcg_gen_*_ptr Date: Wed, 16 Sep 2026 18:26:49 -1000 Message-ID: <20260917042823.542588-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619566686158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 1e826b62574..888f00d5f24 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -497,22 +497,22 @@ void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGAr= g offset, TCGType t); =20 /* Host pointer ops */ =20 -TCGv_ptr tcg_constant_ptr_int(intptr_t x); +QEMU_RET_NONNULL TCGv_ptr tcg_constant_ptr_int(intptr_t x); #define tcg_constant_ptr(X) tcg_constant_ptr_int((intptr_t)(X)) =20 -void tcg_gen_ld_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); -void tcg_gen_st_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); +QEMU_ARG_NONNULL void tcg_gen_ld_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); +QEMU_ARG_NONNULL void tcg_gen_st_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t o); =20 -void tcg_gen_discard_ptr(TCGv_ptr a); -void tcg_gen_add_ptr(TCGv_ptr r, TCGv_ptr a, TCGv_ptr b); -void tcg_gen_addi_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t b); -void tcg_gen_mov_ptr(TCGv_ptr d, TCGv_ptr s); -void tcg_gen_movi_ptr(TCGv_ptr d, intptr_t s); -void tcg_gen_brcondi_ptr(TCGCond cond, TCGv_ptr a, - intptr_t b, TCGLabel *label); -void tcg_gen_ext_i32_ptr(TCGv_ptr r, TCGv_i32 a); -void tcg_gen_trunc_i64_ptr(TCGv_ptr r, TCGv_i64 a); -void tcg_gen_extu_ptr_i64(TCGv_i64 r, TCGv_ptr a); -void tcg_gen_trunc_ptr_i32(TCGv_i32 r, TCGv_ptr a); +QEMU_ARG_NONNULL void tcg_gen_discard_ptr(TCGv_ptr a); +QEMU_ARG_NONNULL void tcg_gen_add_ptr(TCGv_ptr r, TCGv_ptr a, TCGv_ptr b); +QEMU_ARG_NONNULL void tcg_gen_addi_ptr(TCGv_ptr r, TCGv_ptr a, intptr_t b); +QEMU_ARG_NONNULL void tcg_gen_mov_ptr(TCGv_ptr d, TCGv_ptr s); +QEMU_ARG_NONNULL void tcg_gen_movi_ptr(TCGv_ptr d, intptr_t s); +QEMU_ARG_NONNULL void tcg_gen_brcondi_ptr(TCGCond cond, TCGv_ptr a, + intptr_t b, TCGLabel *label); +QEMU_ARG_NONNULL void tcg_gen_ext_i32_ptr(TCGv_ptr r, TCGv_i32 a); +QEMU_ARG_NONNULL void tcg_gen_trunc_i64_ptr(TCGv_ptr r, TCGv_i64 a); +QEMU_ARG_NONNULL void tcg_gen_extu_ptr_i64(TCGv_i64 r, TCGv_ptr a); +QEMU_ARG_NONNULL void tcg_gen_trunc_ptr_i32(TCGv_i32 r, TCGv_ptr a); =20 #endif /* TCG_TCG_OP_COMMON_H */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619973; cv=none; d=zohomail.com; s=zohoarc; b=Rl6R0Nh3XR48JR1DBfOw6ruzwK2sSTRchMchyO00OuCCNgccz3wjnEXZW9UL5ZMpRdEqT1/2CCc9tzISRtaljpI1lxcfmUq9yj8K0UKFdIdrCYxWQIdn4p9BNl/8sWQ5O1d9yeIq4QhK8OcNMpi3RN+/b0Ag+dKYnFeV5/4lTjA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619973; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=KX6XGJ4AOkJ24EhPP+/XN2jDu4BLnork27FHB+bK6+E=; b=NHv0DaWbGo+sD5iNU3IqiMfH7cNGi8ACYvWONt+0b6k/cYWzsMX/5rZXB8P1sr9RRosm5EOLXG9cJ29t1jgg0Mx4HXl1n7luOPuXw1zRjih8uayIJ/i/Bh3jUB7ICXeRG+5ytE58+I5/a7sGUA/5VY5pR8YaeqxKEOmmmZOOPSg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961997320235.86929193593653; Wed, 16 Sep 2026 21:39:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kI-0003HX-2U; Thu, 17 Sep 2026 00:29:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ji-0003AD-Ey for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:39 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jg-0006mS-PN for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:38 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-85469b355ffso270408b3a.1 for ; Wed, 16 Sep 2026 21:28:36 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619315; x=1790224115; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=KX6XGJ4AOkJ24EhPP+/XN2jDu4BLnork27FHB+bK6+E=; b=HA6m72q29ioUwKIKrf36s5n8DSoP0RR38V5dRTCHsSZki6GN4MKv3u62KetZAqSS7d EINhwVY0joDLZbOVon6hgNzHBLyI6YM1XHwJz7T2iammgobap4jxm8zRfrdtrqo6ZMT/ FBE+b8nknk+5ZYH4sC9JW9r02BWz3BUXJihHG0EwrMsAYkkRR7Tjn8tjsedrid2jQBg2 ieS/FvS7J6EXFkcmTYPwJi/HgmxemKjNVzIhZnDOMpWc0U4cK9YRbiV1z28spTShoPTF /UEjC7XgE0EUkv9d8W6NdkOf1yg30SQ52OMYP2t9AChWhyuazwN/UYYcS39RYyIU41Ey VHfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619315; x=1790224115; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=KX6XGJ4AOkJ24EhPP+/XN2jDu4BLnork27FHB+bK6+E=; b=Cb6JY5znlp4bjy05OXa9NO/BxDUT7IIu8Ih2I/BXm3XcKY6dfpndS+r+3mCzqK16cS zVYxwBoFU/D3cDR9jT0Jy0slUpe6DSqYq/FiVPy/px4mmI8EDJM0kEjrwvQe2lTiAdWn 2MeTEUCcg70kPQ1fib31PE85OEPjcazOCZgzTRqWZm0t7J/0yp8QRmgW7LOlvc/qSuMC gQ1G7enQaWDzqPeWUEx5DaBAD9+VEA8wyl8uLDKaeHncR3HmpCWXDXLABOM562wv/ff8 k7cTAp4p4/tMhWQV5rJ5rReAP2USoimcJ2uLV2qIZ1BRP4xinHPKdlC28uAm8YvMDNyU bvgg== X-Gm-Message-State: AFuF++llLCDjU42bhtyzUxAGMPjfHKDml2RZMgsc86j2d+v+5xdU2+Uz 0ZiP1JiQHHvsqSJ0yPX/aau1n02XgBzkQYhVPXIqScnZ++65fY+oPkfo6ke0Pi9qMk0XMJ8APZH ZAPVcbzM= X-Gm-Gg: AYBFou2VHeUmwxpWw+R3y2+K9CCZb6FUTEXRhvxZaSCRtOdk/HbNWJ1uC8N+ewDPVn+ eOFWCxsm55IjNG1iPYRxSX3wp8zXrAp3RcrdJU4PJzAM9InC3+A4dH/FixWOakwf6QQFvYb/xzM vadveXNh5S2I85DhAvAO4BkTww1CbxM/AsmRGCSBBTOfS9vlo1Z7TZIsmTdHIQSkkKC8ILdqGRJ sws5sMwAhcIp9C7qlH2VAkoAEd/Dm1ECnOEMNfPLrzx5E1RjWZcykA2P086WC+Oh3yIdB2QIeHD vLs5zP0u/ElPiAdMvJhQvSdFpFc3igPsV7501UWrjHiZMVSklIUJyIApvgpB8MLWYGZksdLapQs /EB8u1BMyMCyhTfoL0LSnRAWrXHcjt5DWW0+yqCk0QvgpDELyaAo1b4mRJdLCYAzhvAY3wNp0gQ KI8t8hb3qmEgZv94RHOwIaZyAL4eJHUKkREzp5c4OJLKSb0vXtfyP4Ql4oGsZOmN2NnEqFO8Z+t YwkoUc= X-Received: by 2002:a05:6300:8086:b0:3dd:659e:5db2 with SMTP id adf61e73a8af0-3dd659e5f49mr9880429637.16.1789619315204; Wed, 16 Sep 2026 21:28:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 008/101] tcg: Prepare for easy temp lifetimes Date: Wed, 16 Sep 2026 18:26:50 -1000 Message-ID: <20260917042823.542588-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619974547158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-temp-internal.h | 2 ++ tcg/tcg-internal.h | 5 +++++ tcg/tcg.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/include/tcg/tcg-temp-internal.h b/include/tcg/tcg-temp-interna= l.h index 98f91e68b70..932ad1aeebe 100644 --- a/include/tcg/tcg-temp-internal.h +++ b/include/tcg/tcg-temp-internal.h @@ -31,6 +31,8 @@ =20 void tcg_temp_free_internal(TCGTemp *); =20 +G_DEFINE_AUTOPTR_CLEANUP_FUNC(TCGTemp, tcg_temp_free_internal) + void tcg_temp_free_i32(TCGv_i32 arg); void tcg_temp_free_i64(TCGv_i64 arg); void tcg_temp_free_i128(TCGv_i128 arg); diff --git a/tcg/tcg-internal.h b/tcg/tcg-internal.h index 2620c23b448..d480d10878c 100644 --- a/tcg/tcg-internal.h +++ b/tcg/tcg-internal.h @@ -74,6 +74,11 @@ bool tcg_target_has_memory_bswap(MemOp memop); =20 QEMU_RET_NONNULL TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind = kind); =20 +static inline TCGTemp *tcg_temp_new_ebb(TCGType type) +{ + return tcg_temp_new_internal(type, TEMP_EBB); +} + /* * Locate or create a read-only temporary that is a constant. * This kind of temporary need not be freed, but for convenience diff --git a/tcg/tcg.c b/tcg/tcg.c index 489df0e7386..38e5928ccf9 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -2202,6 +2202,10 @@ void tcg_temp_free_internal(TCGTemp *ts) { TCGContext *s =3D tcg_ctx; =20 + if (ts =3D=3D NULL) { + return; + } + switch (ts->kind) { case TEMP_CONST: case TEMP_TB: --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619524; cv=none; d=zohomail.com; s=zohoarc; b=kyq+ayJKtrhv6LJbvaFA1CQsRSlVfT6yy4pG6LCmtkPGj3k8bFbP0vg+BxjfM6cP6zwZl/QY9/5noDYPz5tzbsfK/ajTJlx0tKWlyoclFZ0D7sHBfw0ed7mIcWfti6gCIqYHjuEM85Sk14FcPTsUCBV1K7zFzNG/HiwhH7vYZsk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619524; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=nS0F4afUEpaeo9DXWV3nrwx6iqbi97gY4q1OhP6mo8Y=; b=cK8WmCjnoXZtzdBi8bBfcXeJIzn1WJr7VTt71K1R68o+eXoe+V5RjapZDWWJCbe3Ya4Xkbjj+BmHSy+EP96XffLbOoMihRkYk0lk+ZEfPGmo/4BEzkcbANJ5UcOhAwxaTIa0PXq+7RcPvsKi8JDiYJDdkz0zXvdfF5ciyhmab6g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619524454759.5083453993235; Wed, 16 Sep 2026 21:32:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kF-0003Gl-F9; Thu, 17 Sep 2026 00:29:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jk-0003AS-Ka for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:43 -0400 Received: from mail-pz2-x0d.google.com ([2607:f8b0:4864:3b::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jh-0006mb-QB for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:39 -0400 Received: by mail-pz2-x0d.google.com with SMTP id d2e1a72fcca58-8686f46e4adso335390b3a.0 for ; Wed, 16 Sep 2026 21:28:37 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619316; x=1790224116; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=nS0F4afUEpaeo9DXWV3nrwx6iqbi97gY4q1OhP6mo8Y=; b=VzHqCi3fGHhyIszlQjrw4coxn1OevPQr6rK83L0jlqkOUZrrIvwkg6rTDpMtX3v3fR oIcAg3SF092SZwf2TuxLzURWnLxeVQtNQefpvtZFsL1QNKX1tTdcDcJZMH1Sy34b5AcI 3RV5wE0ZMdm/0uEz88ULw6G8kqXcBVZ85MhCpbXVTXc+n86fLr7H4sjO70AY9i1N0TnH 24iOTvxhxNBeU1y3PMBzKqLwBCItAVI+5DkYEjh7hbg66Yg8FV+SXUD0UpstlyqUQXT6 6C1c377FtDnC2r0jsRnyc4faM+HYrro3IvHj44T45sXEmnvD7aqWzYPM4Basj9/lBzQw mQdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619316; x=1790224116; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=nS0F4afUEpaeo9DXWV3nrwx6iqbi97gY4q1OhP6mo8Y=; b=D6miMtFKCFASHKCaaFCihhMPobgRAfesBHTEUzXAvt3KBdn2/HtqOeQPZhYWM9lVXf J7Rd0CuZWCidBGOTEtuUCU5fJxw4JfBk8hIdZ7snx7w+tAziF9Q6EKhFy3ISfPBW7vJt 3WvMEg4j2s3m923TOnWkddmfZiBiDBDU23TaK3hXHRAka/ZZQLP7pXBB1mYAzKZ2CjzD frEhlCUvblGaF11Gr57zuKlzbdk4qgLGN4wbpkmJz9ZvUDdaWc7/2wDQXdue7RmYdhL9 FIqmE/WGECcmDHyx1PD/J3GB6XG3uM9K5kFNbQXdgXjuTZjVOSFWMAF0Ldc3xXbkgpFs SPFg== X-Gm-Message-State: AFuF++ny4nc1eGGkkvWbDN/z2yJXSrdhWgI93E2wlP6UnhCS7jEy0zDt uFqf3BVJeAgYZfS3ZbtwsHQVFTF+nsHcIgUc2WQ8kCFhxroZ//Meuj2i2eDkwp2AfzgvR38hd2c eW0ls9TU= X-Gm-Gg: AYBFou0DOKb+api9hNtX4MsevD37FGZ7ZJy8kiJYe33Knf+4ncZSnBUZGNRV846DgsP OzqmU9fDuxVRYPTmB0s4cjy5tzcGnIL3RJ7Bi8LqCNyu7+PeTS302zT5WnTQ8/i1kFb2ghA4l89 Ypo7rLrZsE762SUBvVGO+SlSt9EIAA5eo86DGVhKY2FJbj4/KWNJo9k+Sx0BWyOfKC3M1BwqFQ9 wqUhOdJ/ktEKOzHRiQ22S83N0qFmnmtJcIWX/XSMdsvLnT7085mM8jTuQj67UCeglFpamqAPVBW 7P1AyARM/Ks3IYV8Ut/6renymDxSmQYaohplJ8R7kRxqQ+B2WK0ALdtDjsZYLCuZDPYkKzC9WQm VuIsAaWgUZMsznYeHsmu8g7XSYROblNvN16ygsKS9gaEExF6rcXmMkiRZ336IK9oitmDbZdSeyJ Rjfatjin4QgX8oYwP8LlWFlQ6Wq66Yt4Trzc+WsTopH58n20hBzwePs4JD/ypmJ78W2Udy9fGoF UttzGg= X-Received: by 2002:a05:6a21:32a9:b0:3dd:53e0:aabf with SMTP id adf61e73a8af0-3dd5f7a9b95mr12021272637.26.1789619316125; Wed, 16 Sep 2026 21:28:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 009/101] tcg: Generic expansion of tcg_gen_mov_* Date: Wed, 16 Sep 2026 18:26:51 -1000 Message-ID: <20260917042823.542588-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::d; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619526435158500 Content-Type: text/plain; charset="utf-8" Begin sharing code in the expansion of operations for various TCG types. Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 29 +++++++++++- include/tcg/tcg-op-def.h.inc | 3 ++ tcg/tcg-op.c | 91 ++++++++++++++++++++++++++++++------ 3 files changed, 107 insertions(+), 16 deletions(-) create mode 100644 include/tcg/tcg-op-def.h.inc diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 888f00d5f24..69331928bd5 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -88,6 +88,33 @@ void tcg_gen_lookup_and_goto_ptr(void); void tcg_gen_plugin_cb(unsigned from); void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminfo); =20 +/* + * Construct operations from templates. + */ + +#define DEF2(NAME, T1, T2) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2); + +#define TCGV glue(TCGv,TEXT) +#define TEXT _i32 +#define TINT int32_t + +#include "tcg-op-def.h.inc" + +#undef TEXT +#undef TINT + +#define TEXT _i64 +#define TINT int64_t + +#include "tcg-op-def.h.inc" + +#undef TEXT +#undef TINT +#undef TCGV + +#undef DEF2 + /* 32 bit ops */ =20 void tcg_gen_movi_i32(TCGv_i32 ret, int32_t arg); @@ -172,7 +199,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 void tcg_gen_discard_i32(TCGv_i32 arg); -void tcg_gen_mov_i32(TCGv_i32 ret, TCGv_i32 arg); =20 void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld8s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); @@ -294,7 +320,6 @@ void tcg_gen_add_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_= i64 arg2); void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 void tcg_gen_discard_i64(TCGv_i64 arg); -void tcg_gen_mov_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld8s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc new file mode 100644 index 00000000000..ebfaf0b8188 --- /dev/null +++ b/include/tcg/tcg-op-def.h.inc @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: MIT */ + +DEF2(mov, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index b738863ea69..6fc75b9286e 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -104,6 +104,11 @@ TCGOp * NI tcg_gen_op6(TCGOpcode opc, TCGType type, TC= GArg a1, TCGArg a2, return op; } =20 +static void gen_op_tt(TCGOpcode opc, TCGType type, TCGTemp *t0, TCGTemp *t= 1) +{ + tcg_gen_op2(opc, type, temp_arg(t0), temp_arg(t1)); +} + /* * With CONFIG_DEBUG_TCG, tcgv_*_tmp via tcgv_*_arg, is an out-of-line * assertion check. Force tail calls to avoid too much code expansion. @@ -315,6 +320,78 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) tcg_gen_op2(INDEX_op_plugin_mem_cb, 0, tcgv_i64_arg(addr), meminfo); } =20 +/* + * Forward declarations of generic expansions. + */ + +#define DEF2(NAME, T1, T2) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2); + +#define TCGV TCGTemp * +#define TINT int64_t + +#include "tcg/tcg-op-def.h.inc" + +#undef TINT +#undef TCGV + +#undef DEF2 + +/* + * Templated operations. + */ + +#define DEF2(NAME, T1, T2) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b) \ + { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b)); } + +#define C_TCGv_i32 tcgv_i32_temp +#define C_TCGv_i64 tcgv_i64_temp +#define C_int32_t +#define C_int64_t + +#define TCGV glue(TCGv,TEXT) +#define TEXT _i32 +#define TINT int32_t +#define TYPE TCG_TYPE_I32 + +#include "tcg/tcg-op-def.h.inc" + +#undef TEXT +#undef TINT +#undef TYPE + +#define TEXT _i64 +#define TINT int64_t +#define TYPE TCG_TYPE_I64 + +#include "tcg/tcg-op-def.h.inc" + +#undef TEXT +#undef TINT +#undef TCGV +#undef TYPE + +#undef C_TCGv_i32 +#undef C_TCGv_i64 +#undef C_int32_t +#undef C_int64_t + +#undef DEF2 + +/* + * Generic expansions for templated operations. + * We have used compiler type checks to ensure all TCGTemp + * are of the proper type. + */ + +static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + if (src !=3D dst) { + gen_op_tt(INDEX_op_mov, type, dst, src); + } +} + /* 32 bit ops */ =20 void tcg_gen_discard_i32(TCGv_i32 arg) @@ -322,13 +399,6 @@ void tcg_gen_discard_i32(TCGv_i32 arg) tcg_gen_op1_i32(INDEX_op_discard, TCG_TYPE_I32, arg); } =20 -void tcg_gen_mov_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - if (ret !=3D arg) { - tcg_gen_op2_i32(INDEX_op_mov, ret, arg); - } -} - void tcg_gen_movi_i32(TCGv_i32 ret, int32_t arg) { tcg_gen_mov_i32(ret, tcg_constant_i32(arg)); @@ -1396,13 +1466,6 @@ void tcg_gen_discard_i64(TCGv_i64 arg) tcg_gen_op1_i64(INDEX_op_discard, TCG_TYPE_I64, arg); } =20 -void tcg_gen_mov_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - if (ret !=3D arg) { - tcg_gen_op2_i64(INDEX_op_mov, ret, arg); - } -} - void tcg_gen_movi_i64(TCGv_i64 ret, int64_t arg) { tcg_gen_mov_i64(ret, tcg_constant_i64(arg)); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619390; cv=none; d=zohomail.com; s=zohoarc; b=DuXLB/FQ1NqPabxRUrngAxqETl9LvFiwwQyangcmJ/KjnmEjWQPoKg/I0tI8ZG2RnH6Wu02cS/t/V9VD5+dIjRqv4PWKQXCzeQi6voj2PHF/H/TKE8uzFcpjBjO56Li3adGcyuQNXNSlYqmBcxn6pr1RtdYVDlpIolpqgQpnQPE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619390; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=mi9YGCK/K8L2XG8JyWU5uLRVdpLLn+xOvd+M5yNzz/8=; b=NYIoWQhJBDz0sLYE5vZVCYWVf3zBpPMxRq98eqFD24Tq1FIdjxmXeB18cm8Lk74MbfsuA6uwMRSTlNVJbXMxoxi9hZfgcoOEv+T1FyHwbOKamh+K61pZNLcLtLCN7R58Iy9VUQxrlOfG+qU7KV3eU6qyEM1VFAUFUGa/QcGLggM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619390665625.8290511783118; Wed, 16 Sep 2026 21:29:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kJ-0003Hx-P3; Thu, 17 Sep 2026 00:29:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73jo-0003Ai-M1 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:49 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ji-0006mi-RQ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:40 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-cbe6295f05bso280693a12.1 for ; Wed, 16 Sep 2026 21:28:38 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619317; x=1790224117; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=mi9YGCK/K8L2XG8JyWU5uLRVdpLLn+xOvd+M5yNzz/8=; b=fnhdwTK2pZutpeucjZQQ8bOZhqhP3lmyiR8LYOwskqazNalHlcQdLgS35gsgUkqiIo mvMzmjOe+JSTkZigrtbHsc72hvuhA9fJPtUvuGCcOooJtXIx7amerCZP2lVhO2gJBhWx L18oAJjWhkoqxLzSsRcoY0T0aklUc45PCRHBNPOqdU9kDyuQERnXvYXfwNqdgjDcMFyT 1wMZO59W837bJP3biosNTh/Qz86Nb6fVawqffH+tnETi21MgMmQL2ibed05TzejbMy5K rnvdtaJxPPIJUT22xVDl4JAmotPZI6LpPTmuoG7M5QdtNbv5GwgsVUsEgeG82L7oe5jz 2lTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619317; x=1790224117; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=mi9YGCK/K8L2XG8JyWU5uLRVdpLLn+xOvd+M5yNzz/8=; b=h9mxKdzgoXAC0sLCG85muzXUi01UvP0CT8vxtvE/E8Kj6nDzgocf78MrSbgt8cGKW2 70nuxn7hF2SRn159pEhomDFw/aZpqBcePyZjpJp4Kd0LOQXYfOVhk8AtHnWL+7KEEf1k pWGLLZ9sRkf4vgVZE+bdtfP/KYMMDSNkRqG6wDo58Y0BS7i2kEEHuP6yik6a1nrZ3R+g +yPU4g6NXd+gQxzAQjyugMwFWxJ3bhQglWQkHnQwofh7suS+ipw4cBMQMjXjhp9dZ/Nq eoJzZBNjfxwx23MbKVsHZkWYcdXwsVqVQgiCJDdZYilCmPxKj3JJ2sa1OgvNQH1jb+4i x56A== X-Gm-Message-State: AFuF++nFD7V5Kq/qQgJcnNKTgVaJ1tA/C1glfutBVuBnOvF4eMsVtPVX 6IFilepzXcXSMFJlWaRpO0oxQHTn3QW3umrzEyzrVn4kdUH8bdFxKNpgLJTVX3LrXvnRxOdOgQZ G1/HNAnU= X-Gm-Gg: AYBFou2qtGQuAHkc/sFbf+PEaJQ+v18FKD4I2QNbc58OC6veDNLwV40FO8DAlNExzI5 784zA+zom2Kd8XUCBmr5Hcc1Y14Cpd0VyXlTORhubYe6nFIrpLUifwxPBad+PRWiEl9CtR4Kep+ uuzEX8RgiAIqBb3L0D64N6Z8Qv0uWH3I/rHvQD8FnJbgTX2ONUIV19TfbvI1vFqGzTEavHsagqV Yf0G0PQEiQ/xm7QekT3KF1uhjA1CzhWEsQzEHaf74Z41YFjFnnRDvgnznNv83PGyVQqblCP0f2U Fdbvkie0EB212TcD3/w7K9QXcCrg81n3LyuQdjNUBgndict8O4mfN/AgV5M3H2V6h1w0kYHGPdG v1gslzUEl0ZhePTdOD+m15Fk7TC+WHGulkvb69/I+BwIWfDXkmG6E8BSn0XYEOQglNDYNXD2MmH Ojfe+n706Cw9iAUaPqub0kQ/rbmeWWqiOx248UE27iZXG2QedUKD6SrplthjoV9TRA0poX7+swR CrR7UAxOk4kMhfqAg== X-Received: by 2002:a17:90b:2b47:b0:39e:888:3841 with SMTP id 98e67ed59e1d1-39e36106e9amr3391261a91.16.1789619317185; Wed, 16 Sep 2026 21:28:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 010/101] tcg: Generic expansion of tcg_gen_movi_* Date: Wed, 16 Sep 2026 18:26:52 -1000 Message-ID: <20260917042823.542588-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619391820158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 69331928bd5..f54b3618e8d 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -117,7 +117,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_movi_i32(TCGv_i32 ret, int32_t arg); void tcg_gen_addi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2); void tcg_gen_subi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -224,7 +223,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_movi_i64(TCGv_i64 ret, int64_t arg); void tcg_gen_addi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2); void tcg_gen_subi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index ebfaf0b8188..5de7648ed48 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -1,3 +1,4 @@ /* SPDX-License-Identifier: MIT */ =20 DEF2(mov, TCGV, TCGV) +DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 6fc75b9286e..3b3bd5cdfa1 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -392,6 +392,11 @@ static void gen_mov(TCGType type, TCGTemp *dst, TCGTem= p *src) } } =20 +static void gen_movi(TCGType type, TCGTemp *dst, int64_t src) +{ + gen_op_tt(INDEX_op_mov, type, dst, tcg_constant_internal(type, src)); +} + /* 32 bit ops */ =20 void tcg_gen_discard_i32(TCGv_i32 arg) @@ -399,11 +404,6 @@ void tcg_gen_discard_i32(TCGv_i32 arg) tcg_gen_op1_i32(INDEX_op_discard, TCG_TYPE_I32, arg); } =20 -void tcg_gen_movi_i32(TCGv_i32 ret, int32_t arg) -{ - tcg_gen_mov_i32(ret, tcg_constant_i32(arg)); -} - void tcg_gen_add_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { tcg_gen_op3_i32(INDEX_op_add, ret, arg1, arg2); @@ -1466,11 +1466,6 @@ void tcg_gen_discard_i64(TCGv_i64 arg) tcg_gen_op1_i64(INDEX_op_discard, TCG_TYPE_I64, arg); } =20 -void tcg_gen_movi_i64(TCGv_i64 ret, int64_t arg) -{ - tcg_gen_mov_i64(ret, tcg_constant_i64(arg)); -} - void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld8u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619670; cv=none; d=zohomail.com; s=zohoarc; b=mB300nV8mzgLDLBs97ot7bre7DyTC+1BIuV5xYI9T2joUuI0HjXbwdP62hpmnjNtcrVUvdmfCqWD/DkLMEOJdgucw8rDsIwb2D8CS9jlZnR//kHFF4y9u/o7VWb87taHH+d6k4NyzCP2rUt4rcVYGU/EwkOxkE8M6Gh/46re/i4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619670; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=SutwjnqPe1GODElxHHrPeNhq6/LeSa0ui+ENqllO/0c=; b=dmOkUlGCYUISIhOt2UZdj9SGKKfYRxyo9cFnF/0QFkqksiKXuPPnmbBfm0qA9prpkCWAuEVarPF50hcM1t5x0XGV9d0UNr5coVE3d7v/keBBGlkLWm1wQqipLqet+YLcoxdcS61U/ffOn5hmPlgs8R0dfCpLJsqlHcl77NP+ZSo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619670248222.81603140201184; Wed, 16 Sep 2026 21:34:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73l6-0003x0-HN; Thu, 17 Sep 2026 00:30:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k3-0003Bk-OH for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jk-0006mt-EV for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:44 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-85469d249c6so338980b3a.1 for ; Wed, 16 Sep 2026 21:28:39 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619318; x=1790224118; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=SutwjnqPe1GODElxHHrPeNhq6/LeSa0ui+ENqllO/0c=; b=uE/PQ71eTSZYCz3p9n4WEofiIqqiWAqnkkQHamhqJmriWVMo3Zv4ipVnw/hR6XeK3d 0GFI9kI1dpiH2z1xdmBP1a9SRCYIxiaXL1D94o84jxnXENneHBGwTbtfaAujSTIg53Ug qZ6JcH4FbmmaMESFNYTiwHMFWE/Ootv4vs0jEOf4UGTm1tnzX+Y4O9HiMRFx1V/SvL6j STOu93BREtoi4DinuH4VUEoqfn8Ffa/c3aQKXqHX0VyyhiJyOIoKxxS7vWM02zGZNDoL nXkGScdDgZbk0dIHXVkfBZBZevSUNwGhdKQPAAvTIaYG1Ctga5mT2RPCl+rhYSb5EjxZ Cg+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619318; x=1790224118; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=SutwjnqPe1GODElxHHrPeNhq6/LeSa0ui+ENqllO/0c=; b=SxDGCHcWT5FySLOp4Li2/REYsI1kTDFsNKP8l12j4oEdbRbh/Cd91Pu5iyqeY1AYQw BRYgDsCX2serCcdGMpvBNtGY/v1WQ2HUQBzDDqSVkfgdJFJOE2F9mRoTDEjyrIpxe76Y LRfdc+oE2QEEqEPknNS7ttnFlHjgvDrTLIFhsCcSXa175TOoBw15zL/AGtpeZIlQVFdZ dMvE0hR/DQOyPOCJ8tr+apMl3iEo3sWMsWEk5r8G69g2iA3udIVmhfbSvGQ98/mW7DrD /Fhl9xDk4f8ly+qerj9qFtveIlT2QYpXYXgKqvAzu58y6PzlcNzH1PHGR2YGycIM2UIP LHzA== X-Gm-Message-State: AFuF++lIFwTNKBwX3B+Ov4ydSW0GfC5OCC20+n04mKeg9wwOAq+HKWtJ SH5BW5JxfIpDmRTaPTj1wOhpzpRLhOUPIJSw0B0OsNkrRiFkL/6oAWRncRlAW8e0KQd8ClP0sQ4 ZtNIPm80= X-Gm-Gg: AYBFou3xNb7byDRQsXpxIfgQt1QyFgWu32Ip44nO2mLLY0mG8bhvyK4DUfISvOAqIzs 2a+QM77QoE7dNRtsJuK38aBqZu+6ym/XKgccxRgtTcXRp1OWwuH1aud0FE+hVwJtcjyrab62W/L BeDUYEazlOXs+HSzA9WePXJnWuBd7I+4+w/GqKaWXfZvUhYHgTUqlcJNQjVfo6aS0QSMCvvhrMl wXDX5aTBXyJIjZmhOqekc4Z+siRGm8drAKlDLaCzFom+/2UaGVTb0EVKgDBSdZ6fniows9Nmiv0 3KggtxPzdp2Hzn2fCjjJ8LcbklPA3KRgIpuBbsI4p0DEC7GFS9Ch13q/iJA7Klshk8C/jhk7SZ/ 6vRsT505rzVb9LCLggaPkfIbdcAaF3o0eMfvMeBH9GsCvxXxRk/v9yyBEwZHPvE/cL5GKGIZdOm jPYzDAUuo8l3lovHsZ6uk2/CPk7IGdzaZ9FU/rdMDFN8R/DJrAKV88JK569iocfnfoPLomtJYpw TVrn5k= X-Received: by 2002:a05:6a20:d8b:b0:3d0:d1f1:6ec5 with SMTP id adf61e73a8af0-3dd5f3c0a82mr13996811637.4.1789619318210; Wed, 16 Sep 2026 21:28:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 011/101] tcg: Generic expansion of tcg_gen_discard_* Date: Wed, 16 Sep 2026 18:26:53 -1000 Message-ID: <20260917042823.542588-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619671328158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 6 +++--- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 33 +++++++++++++-------------------- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f54b3618e8d..e1c87792a69 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -92,6 +92,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminf= o); * Construct operations from templates. */ =20 +#define DEF1(NAME, T1) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1); #define DEF2(NAME, T1, T2) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2); =20 @@ -113,6 +115,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); #undef TINT #undef TCGV =20 +#undef DEF1 #undef DEF2 =20 /* 32 bit ops */ @@ -197,8 +200,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 -void tcg_gen_discard_i32(TCGv_i32 arg); - void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld8s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); @@ -317,7 +318,6 @@ void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_add_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 -void tcg_gen_discard_i64(TCGv_i64 arg); void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld8s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 5de7648ed48..6ff97260dc6 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -1,4 +1,5 @@ /* SPDX-License-Identifier: MIT */ =20 +DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 3b3bd5cdfa1..a6072f362e3 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -119,16 +119,6 @@ static void gen_op_tt(TCGOpcode opc, TCGType type, TCG= Temp *t0, TCGTemp *t1) # define DNI #endif =20 -static void DNI tcg_gen_op1_i32(TCGOpcode opc, TCGType type, TCGv_i32 a1) -{ - tcg_gen_op1(opc, type, tcgv_i32_arg(a1)); -} - -static void DNI tcg_gen_op1_i64(TCGOpcode opc, TCGType type, TCGv_i64 a1) -{ - tcg_gen_op1(opc, type, tcgv_i64_arg(a1)); -} - static TCGOp * DNI tcg_gen_op1i(TCGOpcode opc, TCGType type, TCGArg a1) { return tcg_gen_op1(opc, type, a1); @@ -324,6 +314,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) * Forward declarations of generic expansions. */ =20 +#define DEF1(NAME, T1) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1); #define DEF2(NAME, T1, T2) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2); =20 @@ -335,12 +327,17 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) #undef TINT #undef TCGV =20 +#undef DEF1 #undef DEF2 =20 /* * Templated operations. */ =20 +#define DEF1(NAME, T1) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a) \ + { gen_##NAME(TYPE, glue(C_,T1)(a)); } + #define DEF2(NAME, T1, T2) \ void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b) \ { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b)); } @@ -377,6 +374,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef C_int32_t #undef C_int64_t =20 +#undef DEF1 #undef DEF2 =20 /* @@ -385,6 +383,11 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) * are of the proper type. */ =20 +static void gen_discard(TCGType type, TCGTemp *src) +{ + tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -399,11 +402,6 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) =20 /* 32 bit ops */ =20 -void tcg_gen_discard_i32(TCGv_i32 arg) -{ - tcg_gen_op1_i32(INDEX_op_discard, TCG_TYPE_I32, arg); -} - void tcg_gen_add_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { tcg_gen_op3_i32(INDEX_op_add, ret, arg1, arg2); @@ -1461,11 +1459,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tc= g_target_long offset) =20 /* 64-bit ops */ =20 -void tcg_gen_discard_i64(TCGv_i64 arg) -{ - tcg_gen_op1_i64(INDEX_op_discard, TCG_TYPE_I64, arg); -} - void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld8u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619474; cv=none; d=zohomail.com; s=zohoarc; b=Qv6HO/hCiK+YBgtzqICG/u0/otsOm97n6YBaKIiFeIBMySdbTtC22ER4dPJXmg4pv4QHwqNdvWwPZN3FnsEJD69xaET++dp3oyXtL5kSzpvpns43xaCLheYfptXtL60RlNMXjRo4P9a9VE5VgY/VZdKEOzgABzEG1ajpKarKePk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619474; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=SyocRgG0UfzspRA+5PY08nnvLtfyxVlX/4MO3LYTw6M=; b=m4itmuedH55LYkrfwqtkDGUVjtKWS8Crfx6bR13GRrgXBvcCRBtyNHeOb0vOGX4dwY6jW/c0bjp1jnG7EH1Hpr6fpdTvRF2VipfgZDxTvh/8giSMJ/Vo7EmXZ53vUW7uyQBNZpYgpoW2Yqgu3KapXKxO272gQc8wTKifQw6uGLM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961947423848.235543921771296; Wed, 16 Sep 2026 21:31:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kO-0003J4-Or; Thu, 17 Sep 2026 00:29:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k3-0003Bn-RZ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jm-0006n5-7u for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:46 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-39b2ad83dc6so356577a91.0 for ; Wed, 16 Sep 2026 21:28:41 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619320; x=1790224120; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=SyocRgG0UfzspRA+5PY08nnvLtfyxVlX/4MO3LYTw6M=; b=CRE6VYEnNtjrvRwA2WJofDM//tWtT3CT3miR24NGIAtPKGFZtytwBe4JF0CemZwhtZ y28qIu1wXF37GDEmSYa3kQn8DHAGw8xQeHSjW81GPGaD2yaZ5QbgoQlxiYxs294iFt3u ragma83+5Te3UB6Fxhyxofs8kbUk7zvRzmeVinMQUghwsqi/uen1r8ujqlWH2pW8aZhV cT9K3/pQPBvtSflugSN7ogTGVS6dHThBWMBeVFToDSxewFoRj2EqEuP2hdpo9w3Wpysu 2IL2+v8molpLYfL9AwrcTDUOg1lUngaw4wE33NSgQhhzqeRP7S6qjcThMPTPa3ML4iRO suVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619320; x=1790224120; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=SyocRgG0UfzspRA+5PY08nnvLtfyxVlX/4MO3LYTw6M=; b=2M9vIM+AOwO1Tg+0+X3UTmy+4u16yyUJjAVQg7AoLHqXKS/GUII7HRsb2r0vGctd5K /e+FaDLb1Y+3+IhZfGVZcmQ2iDO9JjCtiMQoGpSzQVwDhGprszH1zWXhnvIB9J1F+4o7 5iZ8+qJPz4t72zjlQdjIxuxhfAKAGM7rFQ0vIH3l0TNIiZmoYKBya6eCtrCKlvnwoODl Px3/yID30XJXCg5+1+ArCo9D3zx+WOY/MKvlVOM9fT31qLXe6V0CaVpjyZ60D88E+zky SeQyhYH9yI2isckC99uX9S4hABvlYtdrFDDixf3hJpv6L+oMRXBdD/Q/GJ0pb2jG6WtZ VR9Q== X-Gm-Message-State: AFuF++mSI9o5SSgcEutI2fevbZgU0GO5XHaCj4aMXWmA9QfV+y4v5X6R vZ/oiWK7s7u6jSzv22ld/21crbOHfWYZ6vleUb0fiXiPohmaRTOoEsV85nlDd3OkfgE6oUIbOK+ AaFDimI0= X-Gm-Gg: AYBFou2/mwAOUWKOudsQXhUc/Hf3RKH66eVTSf6He5pIKHJS/jB0lfzpXYq2ZXC7PEb Yk/+R8QnCm4qXA5SV4I2//x/s36x3LqXKpCdR90txCet3aKYnDFu53yeKZnKoMQzLse6/M0u0no /S4Cl2Wk2BeYFlBeelZR66kQydmyKlURihoKUt5IcpxEaLLxlUevONO9ZO5uNnYPMIn+rSeSMW/ 9yw9Xd7/fqXobgSGcTvt68su20JkWHO8HBz5Yzozl4SILsm+v9nCBrjHwskyI9yrqov3MOxYqPY EIW+/RB1yFfrnIrj2qkPVUhiuqEPDshBqSfrBtCF35nHslxgnYvEY1/y2ZGq3KbSF0rRAxQ08nG zHgu3IdupYzb3rTQFKHHqIESpP/7ljZKJm9x9XZi7pL6sSICr1pL3j1OZflN1pcB342/XsguRGq E2/Zyx63991Xy9soDS0Crb4TKJAfjvCtQt3XRWTWeOWxM61dojR/EhT13tiACiEnpjlfbu5HOQo QnGkyM= X-Received: by 2002:a17:90b:510a:b0:392:ca3b:370a with SMTP id 98e67ed59e1d1-39e1e23d5efmr12266442a91.2.1789619319810; Wed, 16 Sep 2026 21:28:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 012/101] tcg: Generic expansion of tcg_gen_add_* Date: Wed, 16 Sep 2026 18:26:54 -1000 Message-ID: <20260917042823.542588-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619476275158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 5 +++-- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 29 +++++++++++++++++++---------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index e1c87792a69..f1dfa4011b0 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -96,6 +96,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminf= o); QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1); #define DEF2(NAME, T1, T2) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2); +#define DEF3(NAME, T1, T2, T3) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3); =20 #define TCGV glue(TCGv,TEXT) #define TEXT _i32 @@ -117,6 +119,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 #undef DEF1 #undef DEF2 +#undef DEF3 =20 /* 32 bit ops */ =20 @@ -210,7 +213,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_add_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_sub_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_or_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -315,7 +317,6 @@ void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 -void tcg_gen_add_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 6ff97260dc6..deb3484fc60 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: MIT */ =20 +DEF3(add, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index a6072f362e3..9846cb13331 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -109,6 +109,12 @@ static void gen_op_tt(TCGOpcode opc, TCGType type, TCG= Temp *t0, TCGTemp *t1) tcg_gen_op2(opc, type, temp_arg(t0), temp_arg(t1)); } =20 +static TCGOp *gen_op_ttt(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGTemp *t2) +{ + return tcg_gen_op3(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2)= ); +} + /* * With CONFIG_DEBUG_TCG, tcgv_*_tmp via tcgv_*_arg, is an out-of-line * assertion check. Force tail calls to avoid too much code expansion. @@ -318,6 +324,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1); #define DEF2(NAME, T1, T2) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2); +#define DEF3(NAME, T1, T2, T3) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3); =20 #define TCGV TCGTemp * #define TINT int64_t @@ -329,6 +337,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) =20 #undef DEF1 #undef DEF2 +#undef DEF3 =20 /* * Templated operations. @@ -342,6 +351,10 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b) \ { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b)); } =20 +#define DEF3(NAME, T1, T2, T3) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c) \ + { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), glue(C_,T3)(c)); } + #define C_TCGv_i32 tcgv_i32_temp #define C_TCGv_i64 tcgv_i64_temp #define C_int32_t @@ -376,6 +389,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) =20 #undef DEF1 #undef DEF2 +#undef DEF3 =20 /* * Generic expansions for templated operations. @@ -383,6 +397,11 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) * are of the proper type. */ =20 +static void gen_add(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_add, type, dst, src1, src2); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -402,11 +421,6 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) =20 /* 32 bit ops */ =20 -void tcg_gen_add_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_add, ret, arg1, arg2); -} - void tcg_gen_addi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* some cases can be optimized here */ @@ -1514,11 +1528,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_add_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_add, ret, arg1, arg2); -} - void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_sub, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619469; cv=none; d=zohomail.com; s=zohoarc; b=aHxwf008hOgQ/r9PKBgbqfv84AekNBProyvmtRFqvnDVGq42la1Xk3o5VwU68QspVN0ia5CNEXTR0gWSUJ/1KluPrJKJAYYPQSyKlOjMdl53qzRZVvOYLbUpJktaeH1kYMZGj+2drYFELzGOwWnrqg74VSlLa7k3guqP41cRhjs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619469; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=FlMvX3IjryhcBHzyGAGHQdOIUrI/shuBuxQsakqwvo4=; b=PwMysNtQbEkHEeWtxVDXKqWjxYZ7c0x9plbgvhWyn7vnAlpKZSPk01FzwsaD+EAyAD8vueAol0STorERrXVvhC7skN6OyA4DAlo1rK3fXqoveImWvlngdvL2TEdoVXboVexgUHAOwsKCB7JPICfVET6gr0ccZPmVoKdnw7LTHxw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619469941470.7564267894322; Wed, 16 Sep 2026 21:31:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kG-0003HR-Iw; Thu, 17 Sep 2026 00:29:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k3-0003Bm-Pb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jn-0006nA-E0 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:45 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc433d52421so216567a12.3 for ; Wed, 16 Sep 2026 21:28:41 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619321; x=1790224121; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=FlMvX3IjryhcBHzyGAGHQdOIUrI/shuBuxQsakqwvo4=; b=CJCMBJ5fU12bPKZkxuE2jCHYtpdNm29bVTtzkOzPWNj7VkuCkoMaeA5rz6jmN9ZewE jkeD9nZKYvwW0N3905Fcgcrhp1eSiKnWna4zKbmmHv3YD+wrwdOjo5nT/SyIgw2w8vvb /cCTFGUIxlcJXeeLGXcP7oy7u88dXh72TQ3gepilzF2OW5k1Bgl7DmysSAUsQHQU+zYa VFI37V8XjxoVYg1xfsUka02tyMjTZX6NAplcuF91xcLF0//L+6M+e0xsOQdgOx8cfPVH 4/h2FmpmyOEdhsjiuICieuFWNGgO1+gSoG/izgY1hLLM6Mb/miOp61JScRXK0CLvYZgv +otw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619321; x=1790224121; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=FlMvX3IjryhcBHzyGAGHQdOIUrI/shuBuxQsakqwvo4=; b=HxGFyPvm1lODEgCk9aQjW9CTF3/BR+hHHhuy8EVfCVnty+GDLJbx2ezJmFujRm0MoB SBRYqa+EdybxTh6388h4Yz9s2R0+BqpTu5yZDozAXzhkH0VKbaV3/OqLOWUJF/VcXQ9O T+jBnhe0YcN821hXjU3SD7dRs/TKLfGeAaAa7hpA3qlUAIVqEa/Dz/55hr5PjPiWMQw6 GFAP0xVTGHFHDMYcAyLWAOBQ15Df3UE31a9HXBjlol5u864+SKOWi8avscICM7rim51g IB6cj2QMcdF6AyGZula7hu9f3bBmcLxyGpq0kpjAp3OudZ5gxRPpxXEiUp92/A4bpoZq Xrmg== X-Gm-Message-State: AFuF++lrqEQQVrLY6QcD3vLuajPjlKj8Dohg7OdWFz3bpWyg83NROY47 j+dnyqrgMC39YibvFrHQEIJ7w2dtuMIV4Get5izccqgpadSy7kGHZS/BVJ2hHL2L4PYELU8Y38t sYVsLvWA= X-Gm-Gg: AYBFou1Cln6RBMjlUR57Xr//bkbBF1MTU+rhoChqNF9ORT0GHuO23SgCitN0yU0qypg DZImrWVPdkJ6bRinWsH8YM1kvMZpE0LFCNLhASW9aFUGp/g+i4TDSDBY7hfSfb9kB4Bt4rHs3Fq e3dcml9D/Xe1hvAk3SQElzn9/9B/qBTwJiaDnXWNTd4W3NQ7Xk2bPJ9zVTSD6GAASK7iRD75Yx5 zKklt7Ww54bUNY39CxZTMuCtSEIJcWaU46tgWDfGIRyNPBQRwed+ITavvAKv4tOHunjiNBMFhve owEZz3UEGb8jD7m0l2J8D/STFcOEHJpc+3v5whIsWA5BFxGtqHCle/Bi9xrBGTAhXJ5/Ubwpvza 67pL36FYsILnR0ohQBH+/wVTqKJZHld9Q5mRzwAxaAabcFnhWyUc7LEbAHZfGOWKMQktpaECPgj yO8/8DLKEbdfNQvO8epBe34TQbzV11utz+1Z6SgNhlJlygQ1a9RsS03k3/AzW85FvmfvstS0ogp qSKrxc= X-Received: by 2002:a05:6300:6697:b0:3be:b0b3:3962 with SMTP id adf61e73a8af0-3dd5f44a0camr14217934637.9.1789619320849; Wed, 16 Sep 2026 21:28:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 013/101] tcg: Generic expansion of tcg_gen_addi_* Date: Wed, 16 Sep 2026 18:26:55 -1000 Message-ID: <20260917042823.542588-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619472182158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 29 +++++++++-------------------- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f1dfa4011b0..7e6e17b2316 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_addi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2); void tcg_gen_subi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -226,7 +225,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_addi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2); void tcg_gen_subi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index deb3484fc60..31982e2dc6e 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: MIT */ =20 DEF3(add, TCGV, TCGV, TCGV) +DEF3(addi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9846cb13331..6a5081cf74e 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -402,6 +402,15 @@ static void gen_add(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_add, type, dst, src1, src2); } =20 +static void gen_addi(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else { + gen_add(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -421,16 +430,6 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) =20 /* 32 bit ops */ =20 -void tcg_gen_addi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - /* some cases can be optimized here */ - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else { - tcg_gen_add_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_sub_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { tcg_gen_op3_i32(INDEX_op_sub, ret, arg1, arg2); @@ -1568,16 +1567,6 @@ void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TC= Gv_i64 arg2) tcg_gen_op3_i64(INDEX_op_mul, ret, arg1, arg2); } =20 -void tcg_gen_addi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - /* some cases can be optimized here */ - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else { - tcg_gen_add_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2) { if (arg1 =3D=3D 0) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619572; cv=none; d=zohomail.com; s=zohoarc; b=egTz0epfnd+J6Hd4YqikdwctXrsJfiun1mhsi5WnzZEK7eiMyXiCyXg3xnmdCeYhuQiKcjbnOHk3R483ySNsxUF3cdcrhO0R4b9QGw+MB4+6o0eK42YbId1NY1jEUP9VgMvhjnAgl9Lp/ZyogsFymxlcNoOCV888sU/nwuhLpeM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619572; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=zFSVA5B21DK4J9Z0Sb+FVIBRZ/HkG3ySKftoKO00ANg=; b=IPombOQipMsQ5WzQGP0UVyCOY2fCupPRjvgzWxwY7O8gfDmb82fqxAqUNboEdOHAArVj4iY+KseoTDl5NqdL0uYXPodf2mDbrWnzLLyCG0m+Ha6gx7IB59niRkEL/i/GDS7KXqzWvuNY/jEKpq5gRMzXNaKhWpP6h3WMf1bvUxw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619572091901.291686176291; Wed, 16 Sep 2026 21:32:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kK-0003IX-Kd; Thu, 17 Sep 2026 00:29:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k3-0003Bl-PN for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: from mail-pz2-x28.google.com ([2607:f8b0:4864:3b::28]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jo-0006nE-4N for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:28:47 -0400 Received: by mail-pz2-x28.google.com with SMTP id 41be03b00d2f7-cc1cea34f01so331049a12.1 for ; Wed, 16 Sep 2026 21:28:43 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619322; x=1790224122; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zFSVA5B21DK4J9Z0Sb+FVIBRZ/HkG3ySKftoKO00ANg=; b=wJIXPZCBdfvtZqb8bt5fdu9pNdC7y+n/rciOFGfsGywSgrEWL+1aWH6NlHPc2TXFSt Jbu75A4BvjYhHTF7xUUfVe7WnImk1lozKNW7y91mFrWPulGgAkC8oy1msM+PqiI4/0zK SYc0Wc3GysdlJFgoyJslvwbW3U5Oo1fZ0S1brcPWZ0xLePGpghxCYX5bEuFCNVR/jO8X K0AmHjuD/5fZ1TB23Zt3EYRauifuqOH/LZj+tmrIoiVXd92BWrZ+YKzPjSdDwCNEFqTq nMgbiC09K28figZDIQqj9tePDdgx/vpv+x5V9NSX5IMKQ4QRF/WZjRgi/dSeKVSAkiN0 znRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619322; x=1790224122; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=zFSVA5B21DK4J9Z0Sb+FVIBRZ/HkG3ySKftoKO00ANg=; b=j5nEZq+/UTjMX2/hi/ZhUmSPNReDAr8OZksQjfAqtjlR9FnFR/Hq1Jsp5e+Fz1h+0x fbFAntu+/PXlUI+wVFTt93fJjokzL66oKZ6luOqTEaHRmrkXt2IsdOgBdQRZgjYBOk1l U/dhnxojV507NKvNrVoEoguvaW/oMzesYvZsqscBPA9Adm59lJjyT4GpP9ND0hOKEpUu Vt2s+rBsTG/fZDfd4OgMuI7mC79sO5fchMS7rVIQUz3BYXv7AWKgj6TCheYPswVEBMRX XI22nYhuPM9VMTX7nPCw0RuFh6VbiSg5CHYXyJKHAUvmPbu1/grhpsjWbhP9wKSs6e5D lqtg== X-Gm-Message-State: AFuF++nOgClGRPhzNEEGv4tQ7nJiQ4NWkSW11e6e9OJAs8OTVlQI9583 OYcFzDJAHeL7RHgVTyYVbe9h91Dv8NQ3foKcJr4bSScsa4AYAl3Oe5XDKvWpajwtPerzhjt5kUM lo42TnRc= X-Gm-Gg: AYBFou2YMA1nm99ZWg0F840Es3TF0L6dmqxhXdpFZz8gTZ87vSID8OA51BzfqW877MI SeWM7r8YhYaHXa76hzdJdTgsOKqT9ImFJH1TlxLRAPPsH5FwCZ5++7SxJ8IoEg4b2lL2CCoeZ0T i6bpSCSMpe1wCMmaQLd8M3fOKnN6MI18/wmGTrMbnf9j141Ye6UqUGmIwdiP7HDsW8kbjFRLBAr wIjiISqBzE/evV/pkqwbehILJZR62mpKSiMy+hRtq0IkVsuxt8QRECMPm/Ug1gOaj3Wl4BQOVf1 Ynjl51h9/ktUb8q5z9jE8nsrp2xMAtgIT1OtkPRIJPabSMmXYWuaJKvE0YdAc7xJKEB+RjZXPRb FxGA46pjbhmZaP8ICiAj4HX80LFqvBheeMGQEUoYhuY2b34yNwB4QxqC6gspUJHWGH0MowmeYdx pTe1c3tbA7K97QYHQ2dOTL3qSR8DqCNpmD4ZQ5RG1eY4dEqPT79qqABy8iyAelT68DbufQlWxg0 3HHXY4= X-Received: by 2002:a05:6300:68c8:10b0:3dd:7a8b:2e88 with SMTP id adf61e73a8af0-3dd7a8b2efbmr1193808637.15.1789619321741; Wed, 16 Sep 2026 21:28:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 014/101] tcg: Generic expansion of tcg_gen_sub_* Date: Wed, 16 Sep 2026 18:26:56 -1000 Message-ID: <20260917042823.542588-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::28; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x28.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619572683158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 3 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 13 ++++--------- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 7e6e17b2316..6be93865326 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -212,7 +212,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_sub_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_or_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_xor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -315,8 +314,6 @@ void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 -void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); - void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld8s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 31982e2dc6e..aac64105175 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -5,3 +5,4 @@ DEF3(addi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) +DEF3(sub, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 6a5081cf74e..be0db3195c2 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -428,13 +428,13 @@ static void gen_movi(TCGType type, TCGTemp *dst, int6= 4_t src) gen_op_tt(INDEX_op_mov, type, dst, tcg_constant_internal(type, src)); } =20 -/* 32 bit ops */ - -void tcg_gen_sub_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) +static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { - tcg_gen_op3_i32(INDEX_op_sub, ret, arg1, arg2); + gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); } =20 +/* 32 bit ops */ + void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2) { if (arg1 =3D=3D 0) { @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_sub_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_sub, ret, arg1, arg2); -} - void tcg_gen_and_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_and, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619571; cv=none; d=zohomail.com; s=zohoarc; b=TsEyHHX3MLCH0zIPPiimj+TcHfFH5wBvV1fAKeMibnYkCxa5YW8tI82CVZ06FlWfFT/IwEcQU+N9yOQslxiyCi5BJqgZEffYtBilZQrmYvizDQhLs5ql1I+ZkJll2X5XPW0VufuvswX2c0E7hq94TXGU+zrF0nA/Q0vXH5GkZSY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619571; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=e5JPmZJzpt96w73KehN/JsFKf4BffDhuPjFz5scKOmk=; b=CfY3cyhDIZht5Z+4K8RbjWPwP2mU3EBmSk0KA2hAM5uTDC/vUDPjIkjtt3sbVUS9cenJ65vL/NTWvBKJ6dHEUpTZQQS/s7bDHQSPda0b6Qj0t7xctzxMmoZtHFKBVlg+jMBKq2azDd3Iz0aocL6XsNwMNoVRysD9nP1l81ki7r0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619571654831.3703873575279; Wed, 16 Sep 2026 21:32:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kc-0003T5-SP; Thu, 17 Sep 2026 00:29:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k5-0003Ce-18 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: from mail-pz2-x1d.google.com ([2607:f8b0:4864:3b::1d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jo-0006nI-F1 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: by mail-pz2-x1d.google.com with SMTP id 41be03b00d2f7-cc1cebad4aeso258343a12.2 for ; Wed, 16 Sep 2026 21:28:44 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619323; x=1790224123; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=e5JPmZJzpt96w73KehN/JsFKf4BffDhuPjFz5scKOmk=; b=rzV/7hDiR+gDEB8Zte5r4vCeYVAu7DbHOxhRx5OcaEvq38DpbRJ3f382FfpBIgXcLJ GYQrf8Odf975IZXDhf+ThLZTsNIr5Llo0YopsLbQYgKjbjOs3ow6MvTtK6E+rdlip1U7 +Qw2ZyvypTpY9LKMBw60Uu1AjoK8TdQ/U8EuVu+Dk7IJSxEvHInRJFcmVHDRz6ex73Ea M/rwzbnP9G38visCgBnDYJJHF1XBo2gmdmfH6/mYFaGWKyLxJWqW590PjgYaHbndyBiR E1AJq3iYO4bvM8qAqMB/7BAaCd/o1zx70hSER5Cqsh2hF4jNw18ehlcG1UokcE4ChP4B 9xGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619323; x=1790224123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=e5JPmZJzpt96w73KehN/JsFKf4BffDhuPjFz5scKOmk=; b=Rswp0R+HROgYyN13/V+N9z4NWp+cJWB/b7WbdYLprQb6fqvGR7eJkh/bfHO4isrzId 3b+vto/ndlELyOEgtnsfQ69baycTHBgHluQbetF2hGykP2zl5cyhYZ2FNwklThWBDYw1 0Wb0g7jXRYvtjGX2wFBZIIqEOSXE8gYTgeTL0KZIPIvmmWuU0G36TJ1o6rUU0KUkOuSY QQWCixdLo77rf/YCDAiYMZESLzq9bQqRyZg8Q9JTBO5rmz8K55rK6vzM8LZ8XtyOYYYj vdRzp7v1vRCWtbI+yhk/OXbjW7xozcu0jFePoVRtxcilo4gVUNuJ+4DFp/0at43HkqNF t3iA== X-Gm-Message-State: AFuF++myKlhItMwqAUOaH9gQLPHW2NgYNslmqEkISo+MqrjKTik8yIyZ 4kIfPLLnS7acePbK96rGbAeAiTn0z2hj7tPI4qVAXRUSPI93GIhhZAh8BFo3QwuA9ko1eseQMNu PtOfAvOo= X-Gm-Gg: AYBFou0TOuLnFLLupmoiUQgtOB3x5yLwE/vURble5Cmc42xEvG7F7z8f/GDmtqRK9Kp 5od4EbCwa85lZva5ioW+JzR3nHOgqleGzRmxjbuSKcOZQIJYq+2aQkLB//WP4LNrgPcnKBhPkDo JNP4V2V4nj8gtYsVEfNZv+3saIGwclueib0mKxZlj9BPsTLk72XwO66fTAc8JWvWvkHbO5N0X77 hI29kNPMLSWPdHdh6UK2wEtv3wxyd1iRRgtMDPAhG3FjS0Ay6INZMLBdJjy4WPIb0dIXPf/GaES f6PpXbyclIeEUeD9FFj+qCyeO+0VCh7KCtXwmxvYPSMzxq31Iae4YOCb1IjDLsZVRO08mRhJrHe kOzcty9dNhv8opzNqyNZjlG4i0unAxPZboVC5Iled415WJdcvqsP03mtrM9LJ3C2XgYhF/s7Glm uJQXSbbBVng4/AEaZToxsTtlDgOlIvkCPZGaedidR4BJUzbzz0mDN7LxAK4Bo+Kw+PlQwk4lsxl seu8C4JmcHAOCnWR/Q= X-Received: by 2002:a17:90b:4d0e:b0:39d:f5b6:ca47 with SMTP id 98e67ed59e1d1-39e1e47abbbmr14117236a91.12.1789619322697; Wed, 16 Sep 2026 21:28:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 015/101] tcg: Generic expansion of tcg_gen_subi_* Date: Wed, 16 Sep 2026 18:26:57 -1000 Message-ID: <20260917042823.542588-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::1d; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x1d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619572641158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 6be93865326..db5315a5cd5 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -124,7 +124,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2); -void tcg_gen_subi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -225,7 +224,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); /* 64 bit ops */ =20 void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2); -void tcg_gen_subi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index aac64105175..122a71d7c4a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -6,3 +6,4 @@ DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(sub, TCGV, TCGV, TCGV) +DEF3(subi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index be0db3195c2..ba756d4aa69 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -433,6 +433,11 @@ static void gen_sub(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); } =20 +static void gen_subi(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + gen_addi(type, dst, src1, -src2); +} + /* 32 bit ops */ =20 void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2) @@ -444,11 +449,6 @@ void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCG= v_i32 arg2) } } =20 -void tcg_gen_subi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_gen_addi_i32(ret, arg1, -arg2); -} - void tcg_gen_neg_i32(TCGv_i32 ret, TCGv_i32 arg) { tcg_gen_op2_i32(INDEX_op_neg, ret, arg); @@ -1571,11 +1571,6 @@ void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, T= CGv_i64 arg2) } } =20 -void tcg_gen_subi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_gen_addi_i64(ret, arg1, -arg2); -} - void tcg_gen_neg_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_op2_i64(INDEX_op_neg, ret, arg); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619467; cv=none; d=zohomail.com; s=zohoarc; b=guANEmjTliBZGdWDkAV7mxfy3HclWZEqJNSfSagCJKaymwn6zsdes2DTbn/BvwuKVMcqkhM5atUP07j7mhEKd8zvh8qQs/6xIF3iWjpQu/RDOh6sq8t/x2EGha6fFT4aoJ/ErHsu8/mzTvJHnqE8cY9MJWEdPPWg/J3UfB1X52s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619467; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ZC9cjz2S7VvubAvVoEtjxyzeRaMdSDwzLQ+JpOUV5dw=; b=UJGYSOqiHMvWetrPg8ofWOJS7ltu24KmAloBCqclzT3Pqt+8GKxhDrY2Rs1ce3LBkqmjAZzVFmrcWEKDeqUAV5dSBcun/Ybau51pQBeA7Y4DELF/np3UfIYpTKUurZiiBsmOUi6cHJ6jVXyN6Iq/zEwG3tLE289rXo6z9dA/wwQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619467245159.91177305500662; Wed, 16 Sep 2026 21:31:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kY-0003PI-Ta; Thu, 17 Sep 2026 00:29:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k5-0003Ci-6C for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73jr-0006nO-SP for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:00 -0400 Received: by mail-pj2-x11.google.com with SMTP id d9443c01a7336-2d747ee1f9bso3703985ad.3 for ; Wed, 16 Sep 2026 21:28:44 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619324; x=1790224124; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=ZC9cjz2S7VvubAvVoEtjxyzeRaMdSDwzLQ+JpOUV5dw=; b=hAX/g/brGzbTxTEQxHkgeekqhN9A7CY/iHMZuJ/BkuLMI4LEARmn27TII+c9eA9Bfo Ian90taczyDL29I2e1pX1lYlWp6AxVG/VQkULStlrqts0oUJJpwe6zFN9W+BqEWqWQen Ms81ana6I9FbzROGqy99Rhx4wmiE/tG8cG+eKQX14UTZVeH/NCSMBN3tIwoBXsNaBvEp dToR52jfUDLbvx3cHiaRJy54bZar9HZhyZZLh646cf1UIkmD5G6HKg74vpeGZ3IykHQS aLrWXycnOtt1lqRJ6xvskOgD6RdWLUL9Yr9WApT6vsAYYDpIXqQq9RhgPJjar5e0VWh5 8NDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619324; x=1790224124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ZC9cjz2S7VvubAvVoEtjxyzeRaMdSDwzLQ+JpOUV5dw=; b=yi0MoKRBYzz/4AmaYMXsW7orYflHQna+9Lp/1HS4/96qCZcLWIagRKksjCTLxD0QvA WUOcz7H9FqhyfbInSnn19DgCyl6W05pHsisCYG2OJkMJ0hKWeSBM4y5++PxVqxswG1Ef YW4oBnRmp7OXyxS5Akeq2HwtW9hAAOLKZt4+/HohLyfPLlau6DyNmWhXvijlcVUKXYhq fHACFiCvKSocBac0mlGyML0JBI4Nj76RJmVcRg1P1lHo0HYWyLljOAMx4elLs9k2IPVs q7+CrIoex9i+cXVsqInvRRU21ob9WZ9+jPMSxygHCMjaIbm+C/hMOMqe/Qp+IUgjEpS+ JExQ== X-Gm-Message-State: AFuF++lpA6IgoU2Uhjf33xujD0aeUT+L/xSSF1UPDC/pg+WkUfWKk3Zc /+NMVv95e74ePDNodDLE4tAruBQNtyKWPXAczxrDpkVeHr7gQ5V+5fOb9qo7Blun2yQYjzA63OX VyWzf27Y= X-Gm-Gg: AYBFou2Fn8NX3cyOcLn9yiT+wRwRpjX+YkN5EnIe4m2YQmOEQnUSQAk50CRdsecfx7I jIcamVM9qlBC7ChfWJm1aKamJPt6F76yCisDXG8djCTdlHOrLEUkTZPNz5+uOBrKCbzV23W7K7d TvirscckGlq24dOoM2xt4gUOGsh3e8ay8S80FeKHMta3I3ZfJUCI5+YzPpyZ/hCPx0O6quvWfDf DDs+GNFClugZnD7r9NLewGT3gQi+camdMbtZqsnyznxtNz35zc0gSnvzqAYh0sAluMmA4Rt6cRO oG5YGRn6rvtnQWuR3mAqJpO2YbvUpVOuJRuLzpj1oyY5FahhmyDaavWRWc2/2QnRUl3LjRC2Cbd rdEyZUAllBEGkW6hEmxWNowoH0m5LXuGVFJ7MbTOEkscNTHY4qbuf9B3jVkOLyQL8bM0lqlWUQD A9ZWOQtmEVTAHFfXLlIemplg2mbIZlbmabEA2V3+eRTStqWfNKHjo+akDX/C9Y8qDLW+3R4xKls TOh0VA= X-Received: by 2002:a17:90b:3bc8:b0:398:dcfe:968e with SMTP id 98e67ed59e1d1-39e1e504f3fmr17413402a91.20.1789619323604; Wed, 16 Sep 2026 21:28:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 016/101] tcg: Generic expansion of tcg_gen_neg_* Date: Wed, 16 Sep 2026 18:26:58 -1000 Message-ID: <20260917042823.542588-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619468153158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 3 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index db5315a5cd5..7d4765460b2 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -218,7 +218,6 @@ void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_= i32 arg2); void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); -void tcg_gen_neg_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ @@ -327,8 +326,6 @@ void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_= i64 arg2); void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); -void tcg_gen_neg_i64(TCGv_i64 ret, TCGv_i64 arg); - =20 /* Size changing operations. */ =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 122a71d7c4a..77b1260a292 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -5,5 +5,6 @@ DEF3(addi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) +DEF2(neg, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ba756d4aa69..6aee0190e0d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -428,6 +428,11 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) gen_op_tt(INDEX_op_mov, type, dst, tcg_constant_internal(type, src)); } =20 +static void gen_neg(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + gen_op_tt(INDEX_op_neg, type, dst, src); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -449,11 +454,6 @@ void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCG= v_i32 arg2) } } =20 -void tcg_gen_neg_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - tcg_gen_op2_i32(INDEX_op_neg, ret, arg); -} - void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { tcg_gen_op3_i32(INDEX_op_and, ret, arg1, arg2); @@ -1571,11 +1571,6 @@ void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, T= CGv_i64 arg2) } } =20 -void tcg_gen_neg_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - tcg_gen_op2_i64(INDEX_op_neg, ret, arg); -} - void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { /* Some cases can be optimized here. */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619679; cv=none; d=zohomail.com; s=zohoarc; b=fEUagOmRLP97I2Bmfxdi2PTocIxoomf4QMwjPwP/pbWc7ckHPIi3O/Zy6/icQpNGLhkXiy/lqrQ7oyLZKvN3nBMmibPWrxG+h3mFSDK+4fCMDiZVQxnADK+C6tMabH/DNua/Q80iUCF7DjKuF6m2bhxstpSFipZP5kRSNDvMHgI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619679; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=mRS7vobS39woljInot0zu4ep78CVsfZV7P7veSlVxro=; b=Iivm9mZNxfou+mi5E+GYI2Ln9JSOzF2GLnRSD+6M+WjMoknzsB2TsGTpRUBz4O4GEPy0sjIJKdIfJWvU2PME7f5b2qeOON99hW1JNQBsz5qfSMjyGLg8CaXMfZUFIyhHyT7SM38frRI/mVnRPDn85UCCCQl/FveW6mkY+Cm0DAM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619679666975.3885960350166; Wed, 16 Sep 2026 21:34:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73l6-0003wx-Hi; Thu, 17 Sep 2026 00:30:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k7-0003Cq-RD for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006na-Iw for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:03 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-396ccb1a990so323812a91.3 for ; Wed, 16 Sep 2026 21:28:45 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619325; x=1790224125; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=mRS7vobS39woljInot0zu4ep78CVsfZV7P7veSlVxro=; b=q7ZKzXMEmii7LtMppzOtXAXqJKC+rHpQmtS3CxQ3EkoWiJcWkwI9l280kyLuEAodAV yeBwIFRME0vC9ldkr96ANJtQLQkwlmsXC+CLLba3390KHME9hLJbmHbX4i6REB1mYA3K ufgPTFukMev66LAnKfLvrmkfDrbny0ET8Qx+vUNfVsiiESTUS2mFDEjT52dpFNCPfpKC rA2UDRr25D0n/2SMGRKB1w+NC0smECYdm0xdG0FLIiW7RNR5+2FGaaOc2I/6qT4g4YIU zkqrPLBsaxMFm6IJ+v8La/7y24Y/mnOz7Fj5pe+MGnNLXR21FRc6cvp/4uwkvy6Z7+ck MpmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619325; x=1790224125; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=mRS7vobS39woljInot0zu4ep78CVsfZV7P7veSlVxro=; b=onD+ycBgljg+gSXWlqZ/mdDDn8pvTS5PKS4T9DwVBFWCp7doRnNr34pUH7VWLBstma 4ZGNWLqxFOj7FMdSWAKqmIr+PLWYqDQydloJhmRL7L8VoTRe96HFVFPaQ2xDnGjrqSpv 0/F84eXZyEZQZhbakZET7iFAULLn3ay3D0O2thS5a6PkD3wqTX8+J+ym/3/XVHZg389/ 0Moe6gOMrBOckJPMONMvU2tIsXDZgVQ+U1ugPs3ROAap6L2jiQ7Y4yyBRl7UfjR623NK eMRjFtyZGLUcmbVI5FWdQWafa25ZdT4yF6g89DwsuOj9RHbAlsrGsKDltwkvnFqRHEWK wj7A== X-Gm-Message-State: AFuF++kA5Xo+3mMaQO4WC4Aupmfc2OSket7R4PEQjscVLz2R8qHbluih A9UX3Daye2XGtHiCoBbzYBHrnJfz0CbFnMbSd7sHvfWC17pgiwpxB2OKrrciZRizfiqTQrW8TAi lbxNfhes= X-Gm-Gg: AYBFou0OeHKlyeDeuR29eXIdRDzBW+SV6DB7TgvppFf3lzQ75OUQsv6Ionc/fasOOaW xeeiz0YdxRZeNfbfk8QwgOQPqftUpEJhaLczPMS85ddxtX7Xi//ZPHCskfe6ivrJGlc/vbOmso1 P7V5EZNAQb3eNRGlYbtQj7W7Hk93b800lPli9m5S0wAm7ENYZkwiD8m6xLzS4FM8Xi1HCyt+DTX 4/28NTnViYjt+jAU0CFDvvPepRhZ59vWyptu+LPG/dpfVO+Ov47Z0lc8e08TV40edAN8KLpN4rd HWhbGWceQ41IyK392/rzQ8CoO67dObWvtuEEe4hOEm3qTedbwY2s7bU1yC/vq5ybRx50P4nK70O bXgz0YMO2i+vtgZpbk6tCgPou3HXf3HSFfMcbmtntD+R6R7Y5u1F660iQagv3gSGeefb6WAkLyr XiRhwfZoZpGVDPW3kDRuMLPhIqlo68gQhBruF3c4pyBJguczwpfDtBtDr1MuaFHujcEMkXv8Q0G +cDeZw= X-Received: by 2002:a17:90b:4987:b0:39d:f064:3a68 with SMTP id 98e67ed59e1d1-39e1e4d371bmr12287455a91.21.1789619324716; Wed, 16 Sep 2026 21:28:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 017/101] tcg: Generic expansion of tcg_gen_subfi_* Date: Wed, 16 Sep 2026 18:26:59 -1000 Message-ID: <20260917042823.542588-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619681116158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 21 ++++++--------------- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 7d4765460b2..390df36f1c2 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -222,7 +221,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 77b1260a292..9084171d6fc 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,3 +8,4 @@ DEF2(movi, TCGV, TINT) DEF2(neg, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) +DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 6aee0190e0d..bc902d04d53 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -443,17 +443,17 @@ static void gen_subi(TCGType type, TCGTemp *dst, TCGT= emp *src1, int64_t src2) gen_addi(type, dst, src1, -src2); } =20 -/* 32 bit ops */ - -void tcg_gen_subfi_i32(TCGv_i32 ret, int32_t arg1, TCGv_i32 arg2) +static void gen_subfi(TCGType type, TCGTemp *dst, int64_t src1, TCGTemp *s= rc2) { - if (arg1 =3D=3D 0) { - tcg_gen_neg_i32(ret, arg2); + if (src1 =3D=3D 0) { + gen_neg(type, dst, src2); } else { - tcg_gen_sub_i32(ret, tcg_constant_i32(arg1), arg2); + gen_sub(type, dst, tcg_constant_internal(type, src1), src2); } } =20 +/* 32 bit ops */ + void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { tcg_gen_op3_i32(INDEX_op_and, ret, arg1, arg2); @@ -1562,15 +1562,6 @@ void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TC= Gv_i64 arg2) tcg_gen_op3_i64(INDEX_op_mul, ret, arg1, arg2); } =20 -void tcg_gen_subfi_i64(TCGv_i64 ret, int64_t arg1, TCGv_i64 arg2) -{ - if (arg1 =3D=3D 0) { - tcg_gen_neg_i64(ret, arg2); - } else { - tcg_gen_sub_i64(ret, tcg_constant_i64(arg1), arg2); - } -} - void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { /* Some cases can be optimized here. */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619801; cv=none; d=zohomail.com; s=zohoarc; b=i86Jn2AY5RNyiiV1PyGWLQYd05UPdnFkNsEMgHyU6rk4jBuHYoIAp7frOhusPkPJbzP46Mz6p0zh/8fgrlp3yKNNQbZk1eEdSW0T5+wxtHaDR0DDtpDx0UrKMDi2AvarA3FIhOHvpRmhaeI8Z6aPzq86Wl5y6er6qeb+p+MTH6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619801; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=uCmOmovegGhUQGzqTd2jYdUvDaEHmn2ZTmtygxSB6Fo=; b=mMisMcmmVBnTL9GaTJl7/JLbF5YNjDp+0vZGH4vbuZAV7lVKzThV309NBhGqCTIy5uqWPkEcxiYYMtg8BwTULWPbw9sloQ3fnaecOA6hPClXU1Hxz8SiOseVH4MjRtkIxiXiY+gu6ac/srlJi8tZifx3aEWKOLrq2qLQIxvPozs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961980105086.33683225164168; Wed, 16 Sep 2026 21:36:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73lV-0004Zn-K7; Thu, 17 Sep 2026 00:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k6-0003Ck-D3 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006nk-Ge for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:02 -0400 Received: by mail-pj2-x11.google.com with SMTP id d9443c01a7336-2d747ee1f9bso3704165ad.3 for ; Wed, 16 Sep 2026 21:28:46 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619326; x=1790224126; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=uCmOmovegGhUQGzqTd2jYdUvDaEHmn2ZTmtygxSB6Fo=; b=meE2sLGS1y74sIFKWDGZI++FB0j6TRVplMjeGnWxiYjGiJZCfbQQ2YCz8LpbdF+M/o zbMuboOPw/ULCNFIVtNwyP5bSSC3zLaFRGL54VQq70HG2g0rdmD/o4lxnCfI9RqlQ8hF xzva2FYNIHDNcCK20nUcBOoO8CbcRQ6LPqn2aNWWUBYTeh/lxMBrzsXCRfX2fzlBd4Ia s3uXwVVxKW0NQwfHSPuP5xzTwLtAKE5jAJtLw3UttDWQ6XGtV5ftwJb4FotX4C6cwkcD Wtymx279SBbClK/TqUG/eg1MFlN8jLBD482AfV2eZM+DeifZR+Q67LLly1vsMee1As68 wNhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619326; x=1790224126; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=uCmOmovegGhUQGzqTd2jYdUvDaEHmn2ZTmtygxSB6Fo=; b=LmfEBtvxJXMG80MNBGNgoI4sFdflFvIqO0uhEVItAB3PztDUA6iGbC9qaO2GFaJ3Om NonZrddk/L3lLGLyNTPUCdZv2accUUbFVqP3e+FB2rxSwGBA9ejlcWOUZFvikG+3xYzZ 7ESJY/ESchtrTnOvK0ELZ+WHwvFDC9pJKhUPnznC9USAltuDPcTJ03TDkK7hKCThNPJ5 OeOVvIX2+i4S0otzDRmASi8zzcBZNZFFtiiHv7fz6Lmp8MvbysrOYLqJgLCHhi6o1ya4 spYcQui/sYHUzIdgcZJibQ+vvRw8khOH3Q16QwemZrNYZc9hEcEaKjvT9Xl+tJq55y0s Q7Hg== X-Gm-Message-State: AFuF++kAla8sYBkKJAaGzj89bbqgNYXCsvRS6XEODyyN8LpOsGnMBWlC dz5zLmYtulVol65QJHrZhrrfOjRjnRwOj6vdzyZSFyS4kppK34CXOkMizo/BbKjPgVFQiAT4Qx4 X90Uj X-Gm-Gg: AYBFou1k2DgEdxkllzerw25JW58Jsyi4vmt/2IlmhaRbbC/+JffPl51MGj/0+59Qt7Q iyxelBaaXPK15VmiKxm8Tfn2ljsINPqtE5JZaBWD/3Hbr8Np7tbyQpt3wR1oQZfF4oIjiOtieLz pPHXfiwbG646XPgkTyElC8Wxm74OW7wygZPDBW9mIIMAMHZKWUiJ8hkJ8StIGJgpYyM1Zjmlui9 4ZOqflogjXpmj/8vVT+2nb3sPzCOY2k4OXjP2c193zVC6rMnMz+O11Q36Th8h3aIDmeEX/ASkJk AztOG5Rpifc6jwikpdyE+aImWP8YoZFYjPr0vzZM03u2rYzcowZN85PFb5dqXJxBXj9SYbDGx6f XAO2YPkdNXsBrx4EclLncd6+sK1ImxXLkC+lXI0guLK2WPohS2ZAmp8WS26ATclavK0wSd7C0vS W7WaKuMFCmHmsrswsmp241Uxb14YCk+HY3bpMegJUuZMc2g1k5OruJTPftEb6cCjoGW/GR/sXEI TfMvzI= X-Received: by 2002:a17:90b:390f:b0:39e:1c4e:5473 with SMTP id 98e67ed59e1d1-39e1e47ab6dmr14407879a91.16.1789619325638; Wed, 16 Sep 2026 21:28:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 018/101] tcg: Generic expansion of tcg_gen_and_* Date: Wed, 16 Sep 2026 18:27:00 -1000 Message-ID: <20260917042823.542588-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619801615158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 390df36f1c2..80ee29ee4d3 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_or_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_xor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -317,7 +316,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_and_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_or_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_xor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 9084171d6fc..a2ae864ac17 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -2,6 +2,7 @@ =20 DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) +DEF3(and, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index bc902d04d53..ad7a70b575f 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -411,6 +411,11 @@ static void gen_addi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_and(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_and, type, dst, src1, src2); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -454,11 +459,6 @@ static void gen_subfi(TCGType type, TCGTemp *dst, int6= 4_t src1, TCGTemp *src2) =20 /* 32 bit ops */ =20 -void tcg_gen_and_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_and, ret, arg1, arg2); -} - void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* Some cases can be optimized here. */ @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_and_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_and, ret, arg1, arg2); -} - void tcg_gen_or_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_or, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619676; cv=none; d=zohomail.com; s=zohoarc; b=CI9b1G5d1j6ECv5Ji1CTNgg3DRxg1WdOFIBAywXmVhUsWl+fr3Fee0PkVcxoMJU4Qvd7/EJetysabAuudHHe3sFyHD4vzSJtoZ+vYpaxNk/GkGH7yys+5be7IQBUz+MK0y/hhDuTzGFSquvBhRLDVLc4n9aL86EggL1DshdFIY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619676; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=eVb5akhAgJSlhXNrTi2U40ggtT1EL3qh8SU+BCGHO7o=; b=Biwdv3UYr7tD6sRxwf1ihq4VKKMomDIIkD3LWosYjZELrZTRREIiIP0cS6oMpdI9PzHPOVUqQtqOQj71IvTge+0twoyaUc/kGGefDkAJ84YI/MQ3Z1CLh3UbFYAcA+CEG17fnetzso/u1pddJWymJ6XTFo4+TujvGOtFpPEmFmg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961967628873.50993254995217; Wed, 16 Sep 2026 21:34:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73m7-0005fc-44; Thu, 17 Sep 2026 00:31:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k8-0003Cz-3D for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006np-Ix for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:03 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea50dc1so203382a12.0 for ; Wed, 16 Sep 2026 21:28:47 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619327; x=1790224127; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=eVb5akhAgJSlhXNrTi2U40ggtT1EL3qh8SU+BCGHO7o=; b=AcJ7Lkx4VK8e0CAG5inK20DlHFPnW3DbsWDw+Kb1IIDIWMHfHaKQyGc6SaHWWA+zOK rgatLdvsfqT3/tAuHzmFoCgr6uDZ/3Oju7tEOun45Of4gLSTVD49C2bToGL7TpU5FpkO 9gUp3AWckQMIVB0HnJOL/tC0Wn2BvxyJOGp/Vw0dC5GxdC9n3rplEMJ6hrqV6N7paI4K abwEWEBXhSBqtY2uVv+RBWc0bOjPouqMdEa0sh7QPABohA1YuMvHD2VbfdOA6aOSJHGL lWAf3ylbSgqTngXR4Rtdz1FqpCzhoGSVfGa9CIWjNqB+Aog/2smjpiYYcjvhcfApqRP6 Ey8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619327; x=1790224127; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=eVb5akhAgJSlhXNrTi2U40ggtT1EL3qh8SU+BCGHO7o=; b=DVg1oI3gz4YvCL9jZtZHmEUA+nI4b8jNquTOel1PFoY0DsvntpobZNc7tkX/GXgGO8 1BH/3jqEBY3wPY4IuypcDDu1Q9R63IU5en9fjKetQI0rvd2B3w47b6NB4dfzfDpX4KUV Q6bpLK/Ggie7uJn9dXC38+fx5x7QjceZrjHqT82NBdB6ugIBFVXOgH3QD6wq8VkPXREw Q+Du3JsHv2LJrxVLJqfEscTq7Mn4dVMj5+B6GngLSgfac6XoFi9YFOPMTOCd1cpUjhbV ZkmF2hdmB0MSNc3g47HuqzR4PvUI7Fb1YJJQFC8NbmzONnrE/IMXuJ8KtpUyR48OycF2 Er9Q== X-Gm-Message-State: AFuF++lFNkmErAUckfbGywEktZ2zzj4Lpve21EIr9Mne2mhay+6Kvukr mszcL7opAomcsRnsAFUXXwAOdgAe241Pwp1DdgTTiAXQ3YyEdcXSlDWOUAtrx+DEeoLulbOqCo6 Jito4avY= X-Gm-Gg: AYBFou1e3rxQcQEwF5y8jubSkkB32knY86y3IngT/L8KIn6npVStBnh/JLxyCp9DIp2 wVld08vgbzgxIHqirhxTZ7RtwQbBfRrY0d9K2rDpvvPZEXiQ84rws4cjouiCHsNoxcNBLQABktk mRjotR7Sl7n8vTDIBvwkAqa+Uag8NK9rdd+ZrKmOOHTDCS7KCsOzeKVZMDWpZNHforSGLiVywbL Svis58IaewrI0VMnumEUO4wFuHCXgTLJspem2yakjcD9wdhsbdAYnZLoWfehVlWBi14ElsNf74C W8O3fYKraif9sejc993lcBoJ4UepQe6kkElhxgz7QdpDlFOLNbXeJo1Eqx9xGTQiMFPr+esnwcM zS2PDqq7SxHG5BlFggqrw22RAyh6O9/pddlHgBg1VBb1BqnYK8F4o1rAWjp4bZZpSc0fLsDNW3l gUFlsg0RzX6nqyouhC31L9vKzZlVs9kcnbCuTkXPn3HOC0e7o5i0aJSlljCNAupdV1/7Pf8VaE0 QGNzQU= X-Received: by 2002:a17:90b:2f06:b0:39e:252:ae4d with SMTP id 98e67ed59e1d1-39e1e4d3fe8mr11857122a91.17.1789619326569; Wed, 16 Sep 2026 21:28:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 019/101] tcg: Generic expansion of tcg_gen_or_* Date: Wed, 16 Sep 2026 18:27:01 -1000 Message-ID: <20260917042823.542588-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619677159158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 80ee29ee4d3..4d61eaba122 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_or_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_xor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -316,7 +315,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_or_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_xor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index a2ae864ac17..513505e35fa 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -7,6 +7,7 @@ DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF2(neg, TCGV, TCGV) +DEF3(or, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ad7a70b575f..0b7fe14c7a9 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -438,6 +438,11 @@ static void gen_neg(TCGType type, TCGTemp *dst, TCGTem= p *src) gen_op_tt(INDEX_op_neg, type, dst, src); } =20 +static void gen_or(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *src= 2) +{ + gen_op_ttt(INDEX_op_or, type, dst, src1, src2); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -489,11 +494,6 @@ void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int= 32_t arg2) tcg_gen_and_i32(ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_or_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_or, ret, arg1, arg2); -} - void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* Some cases can be optimized here. */ @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_or_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_or, ret, arg1, arg2); -} - void tcg_gen_xor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_xor, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619400; cv=none; d=zohomail.com; s=zohoarc; b=EWHE4s8FLHz4EnmCyevbuNBOHK7j/PAv1450X5vsKP/kVb8RDOu5PGjHYyMFm6gm8GmSoml0HgKbqn8C7LqG/WZ6tSunhFY+1PQrbHdsChER4qMDoo0d7RZ1sL/D0uYDlSd506KV9Eg3vEnF7ZtXwDWiTK3093ibbbmcA9krseM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619400; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=CRD0I52WWAnGnNUF8/F6bG30rfo2CUDMcZ7gqQmB5vg=; b=aadpYPE/WWD/YWV6BCvgK6mwnNA88WAR6FEAFAS2jliHUma3jKXiczGTqeh2Q327HPzcs8ETUVTSfX4Wk+WNsUPvl0hCjXdi7kzhh/bbUBLTYGjUnSEbUXVhpi/80kXP5IZ8qk1BKzMvJAPn5PsbpCW9nd/tXu0wQzCQjwqqXIg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17896194005391008.0176549612507; Wed, 16 Sep 2026 21:30:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kY-0003P5-TN; Thu, 17 Sep 2026 00:29:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k6-0003Co-Sk for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006nt-Ig for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:02 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-395cf2535acso394457a91.1 for ; Wed, 16 Sep 2026 21:28:48 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619328; x=1790224128; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=CRD0I52WWAnGnNUF8/F6bG30rfo2CUDMcZ7gqQmB5vg=; b=nGVrMv1rSqNGMa1NKBZz83Ta1kQu6+MVeZ65ZFYAI6mbjPQv+tDVnSMcWNnXwEMcKD dJVeCPlC+XkOAspdoA8gGatwaYPvMSiCGhIpxHRdZ67hdL0p9THySTKyKf5Or+/zkaTo DNnHpTDCZZD9/UpyhnCwbv/5pOlyRpXd8UG51sJCbzQbOCkz0B0C+clWt08oI2ItHM2H 0pYkQThn0qlpabdMlO45Xc5mCLjX6ytKX2AcsOU8tVH+vw3+yBz9j4yCc5wcyoW2jksX A3xP2q9pJdh+P+/Pr1R4q4ncckeLY4gC3Xe+MQ4xHB7tqTUivnBvAWKf7HE5dPgdXtMN sKsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619328; x=1790224128; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=CRD0I52WWAnGnNUF8/F6bG30rfo2CUDMcZ7gqQmB5vg=; b=FcVx0viPpcqb6yMM0gKRGaBJfrxHLP25Enx6VrHN5ny1yWjDR8UZ9nlqSaI+6FR7ST 9o9wGFIO7lSgvY9hvnUKebH7GI9OIAjdM16hCU8fp7dQICXXI8eyVGuFWD0JL7JxWZPt Hpk9L8bkC4vLXvkXWd9EopyF6MWq1ws6tdLPqNJKJMD9x9vHAZaCqeTpHaU63tqopkNZ litRc89widh6qwbQfkThvryR6S7F2/5DwDBKv+jasULnZukDvT5T41zV0qQAKE6gF0R4 HTDnUybumayFBJQTZhpPt3t3LCKg5dPdWI1RakkjwauYIvX5Enl3Dq7Bx4UvWVB1VxvF FlcA== X-Gm-Message-State: AFuF++mTQtLxJxIzek7xJ0+VJNv1IWL5iVh0XpRlL9UwC53Wxfkp0IfZ XD5IpoB4nFLcUgRYhqModiuJY1eImwEEgIrlgtb8Ku/4qVh2VeYc8iNTvGe1zGlNASl0o/uw49d iDGSeqMM= X-Gm-Gg: AYBFou0JOSr8T6830C56Za3od743pnSeVVKI49qODS79SL3kCsV4On1XghfVgGv3K7c 0M/kD4Xo2jeSkR6Z6xRAnGQg0j8dnKWETZDN+ImWgS2AMedIj3hX6d/9fva6KtVWOYdi9etRYML jofiVFQo1DTx2dm7hzCnN0APg5EnOH7Rv0NOlWaS3XFpmg7pp4VSjCmksdTGlP7qg3pDwwL4iR4 VKrLyBgQX3cIsgyW3qo8vtL8xVbqwnfpwgNqnduW59dkim5/yy7+MLYDRGVwJJTyA46T4NRbgBc vUGcaF60/AVwdD7D39w2V4b7DDEWLhZwszRiYUheFth2shbPUaKzAzEW0vpKBXoMbZbKnd148dK zZ+kzFAqEMvVaHwVNKSEKOxx3SxIrgNMitVbd0FZE6cWv8y2HQqKNbug4rVJQvteRq50S5tU9ig q0I4rupr/A2pGKz+B7m7Yv7YDqY3vr4zKHErX4gI9uRWfAOsSnRopB0sDdbuCPbsbvHawLdWGbS G/pVbhQnlnnABu/Eg== X-Received: by 2002:a17:90b:2247:b0:398:c6e1:dceb with SMTP id 98e67ed59e1d1-39e35df407emr3291783a91.9.1789619327584; Wed, 16 Sep 2026 21:28:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 020/101] tcg: Generic expansion of tcg_gen_xor_* Date: Wed, 16 Sep 2026 18:27:02 -1000 Message-ID: <20260917042823.542588-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619401735158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 4d61eaba122..6365f67494e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_xor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -315,7 +314,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_xor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 513505e35fa..47d3e6f6990 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -11,3 +11,4 @@ DEF3(or, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) +DEF3(xor, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 0b7fe14c7a9..2b796f3cc62 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -462,6 +462,11 @@ static void gen_subfi(TCGType type, TCGTemp *dst, int6= 4_t src1, TCGTemp *src2) } } =20 +static void gen_xor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_xor, type, dst, src1, src2); +} + /* 32 bit ops */ =20 void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) @@ -506,11 +511,6 @@ void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int3= 2_t arg2) } } =20 -void tcg_gen_xor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_xor, ret, arg1, arg2); -} - void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* Some cases can be optimized here. */ @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_xor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_xor, ret, arg1, arg2); -} - void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_shl, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619655; cv=none; d=zohomail.com; s=zohoarc; b=I5G+f0X8cljuusDGd66ytSBs7NRK0aOXf4M599uM8I1mqYHaX5Kly2e6OqyH1wbcWA228qGVLq59vFWAI+AfAT7p+gU307ujny1Ac3+1c2LY83PrgKwEZGM/oQ8nRSP3f2xhVh3UZBWNXsxGJGfTdXnS6HkTfkOrZ4e2+RKxRww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619655; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ZMzrrEL3HX7oRdMffSDqbnrF+w9NjI3ZykN767yq/3Y=; b=FBy1TMyX8AIxSwadS3YqitJ8dtis0Sux0OlnDG/IzYm+9qm6XEMvNQxjszf+EH6K8Kn0zBgTcX2DY/zWpH0UEN2VjJjCzjZ8aNVrAtBNGFhiyVXYgWLqT3hf8VHJukTm/L1pszzVAKKHUjPF6DOl90NchNTGstzx62db45FOC4g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17896196556249.621831645895668; Wed, 16 Sep 2026 21:34:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kK-0003Ii-TU; Thu, 17 Sep 2026 00:29:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k6-0003Cp-TZ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006nx-Im for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:02 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-39b350c69b4so309139a91.2 for ; Wed, 16 Sep 2026 21:28:49 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619329; x=1790224129; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=ZMzrrEL3HX7oRdMffSDqbnrF+w9NjI3ZykN767yq/3Y=; b=l4+a1qWp1GCLRQvyOxcyR6O5at/gzRQZhx8OSOe/yACfyChlYsCsBR715ngWNSmadN rrSVCnPQ8ZgA5sDPGSCDclAEfCVh9AcFJHLGlc1lhzrOgomsn0ciXpwlR8O3VrIubOu3 n5X3A+Ek4llOw9pxYw0z9+GdDMqA6E5BH9KR1rHk5rftMqKnLgNfxO1H7NiOi/k4GWRl W0SKC3NQrZFaTrTk1rpnGBJD5qshh9T3BrdeHC9yrzFJL0jZLFNzrj8NE1H6ffoWMeeS zOUzlZ4+0aX2ns9JS954rlfuFuQ2zoxuug65ScfmlNSHpxwnpWSWPgvVI/y42FU64WTI XeAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619329; x=1790224129; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ZMzrrEL3HX7oRdMffSDqbnrF+w9NjI3ZykN767yq/3Y=; b=E6kXgs0W8v5qO9oGKQOKmQm2MXUO/JLH0yoLJ0l8BxY/dq0bkj7oGSg6C8OLh7pX3C IUDXtX2HbUoo+WsqrcBvab+taAma/LJylbnmZrmCncS7o5vr4ocMneW7mtrX3xyfnLzw Y5Q0DtOO1pBfJVVey5T/ZLi4zZFRGuEahMt42Y2hQ60RcVOOZakaID0GOJn2YNhmYoGg BghD3v1B8X4JZ8rhM4HYGs0gR+nyes51/5dfVVYu1xbxJLojG7CTk171ZTXQlUpfV37M IPU070NPFh0PfofccvhG04MdQHhoD/J/kc3jUatcNAoUpx4K+NIjpE+1r7lZrwqpVrgk Ssow== X-Gm-Message-State: AFuF++n3TaeJeRdTxXXHeoMPgVklADJF8U2KM7ojZYpFRm89rWnyXh7H iXNn4HmghYbLcAcnYz7Za6rcpBc2h5otG0NwsFi8/1MwrqAzIAqk5yRVjq/vKSXBL0eN1rK1NVH TasFvN4U= X-Gm-Gg: AYBFou1oWMzFflAYx0/g9zgyYC+uP1c7WnHKXyDSuiXTr11ccFtFXVDla1PfPzctzGa /yPvi70MHbVCbRuS2h/NmKXux1SmFccK42A4wZt/skmqPsvxWd6b0U5EGiP0uT5jL76OABChIbH rMJVD0oNTDlCzDBX3MvD7a5VfJ5FusSTuB6HbmYNtHcVDgDS2hNCq2oCKoOJpYBkbmETVm7QfbA e3vnpm+9Q+RAwKKk/LiSyemtUB9SQAyUJ+p/G1zif62lb29bkHaYG/jVkqkTk3y+lRDxbTyVZrn ddS0MBCxPz06L5k/esRtiKk6MvDkMdPqSybA067WPoHdPT+VTBJO479g+qfHF3DkawkruHkCEj3 xBYlKma75Mze5SKi2oe2egM5tD4WCYZlgJFOTUWbm5vVtb7lmEwG/5AFfxU3LmWNfoqay7mAXOh Gg8SGuYQqjOF+spq4tW8Jqmt9KUuCB6AZ0l8TydL8b+4SXfVNC4Hvo9gQuzUkKOuqQlLABpFCT4 R1cnT8= X-Received: by 2002:a17:90a:d01:b0:39e:237c:50e0 with SMTP id 98e67ed59e1d1-39e237c51f8mr6523166a91.13.1789619328801; Wed, 16 Sep 2026 21:28:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 021/101] tcg: Generic expansion of tcg_gen_shl_* Date: Wed, 16 Sep 2026 18:27:03 -1000 Message-ID: <20260917042823.542588-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619657000158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 6365f67494e..5115b07ef22 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -314,7 +313,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 47d3e6f6990..15cbb6c341a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,6 +8,7 @@ DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) +DEF3(shl, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 2b796f3cc62..19e2c6c713f 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -443,6 +443,11 @@ static void gen_or(TCGType type, TCGTemp *dst, TCGTemp= *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_or, type, dst, src1, src2); } =20 +static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -534,11 +539,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_shl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_shl, ret, arg1, arg2); -} - void tcg_gen_shli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_shl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_shl, ret, arg1, arg2); -} - void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_shr, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619655; cv=none; d=zohomail.com; s=zohoarc; b=BgRTzwFHcX8nB3IgtxeaxO+vqiCMSzMZDgSOhGMlGUvPmZ9tvhsoSMtCFdqqVg4V6ExlsDpffhhcFzH1ojbXqkxk81G+Tkd18p+IdlcAHAInVfu+bvw8kHGCYCcX8T+Qvl+w51MNZmy5rsZmob9AZPFSmu3EPulx06C8Tzdg7YY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619655; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=+0AwflT075ewSE4Vk6dBtxknupuv8fypEdtdVnsEwKM=; b=eO1xo1/xgY414pHUBBXOc8/MOxvowA0t7CP+dzoKBX0kYwJNdCy+owBaO7lyVxXEfEyvHFRY8WU/tCeTxx5PjY0+Nmm1jQJI92GK3pv3KdIG0Po6hI/mObVnDBiwJHRKZsqkN1RMCP/v7RcuC31gS8HpDy3vZiCQ5HjpLKZbSmU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17896196557679.108245706002549; Wed, 16 Sep 2026 21:34:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73m8-0005hE-4L; Thu, 17 Sep 2026 00:31:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k8-0003Cw-1I for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006o1-JI for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:03 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-396ccd5cef0so283111a91.0 for ; Wed, 16 Sep 2026 21:28:51 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619330; x=1790224130; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=+0AwflT075ewSE4Vk6dBtxknupuv8fypEdtdVnsEwKM=; b=cPZdTod0TVXlgQcbufxuNd1UowjvHZLk/jcSBySzT745ia+x1ttnegH81VuWt6QsuG xj0aWUsUHObTXS88EKCFIJazL7NEXJXDEVmxT5LZvnXtEqQq5QdDjgdDd5jdOzWqK3r3 PqBAeRf52KGqqmnSx5K8C7Qm0Hp9fJZWlXKaiP4eeVFKZFYVhh1zxoaiOqQQiELyKtVD kQkynbbaig0q2J1OMdzJYRceBgO95Bqs0bU+2XGb7yszsCt+ZKYTyFLcvhDt5IhPMrSk lVIzIoFRPx5yURwfcxpPP/ECOzLUOE5NfDgJsa9F2YZ3btnat1nhdGlDjUfkxGZnb/Wt 0h9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619330; x=1790224130; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+0AwflT075ewSE4Vk6dBtxknupuv8fypEdtdVnsEwKM=; b=j2pg5JHhFSXAeqIjUSLUxtm/llGo0nn6b8XRCry8964E7u5B1Aum26MNWtM7ErQWbq DaZDWfblcimGfMpnZHKM0G9Eg+lH5WCuVy107FBRo8g5xpvxMbBJjEtzYqI3M9vIivl9 q4h81i7Ip7xY13QmkDI5BEoHxTMZRm21K/8U5cMCqA3S5e3/bv2wYtCF48K9yumvu+ex NG2QV9cNciXr63O9KPYMxA1onOnI9XXEMJYkWEay3a+j+B5uBDWhD9i6D+acSLORi9MW veZrBoSs5mx7BjfdGFODlXniPoPd0DmUiltCR565JU9FjXTnKlTNjxsY/29YP1y7CKfc qRYw== X-Gm-Message-State: AFuF++n0TDzGpQmpbv/6T97v6bXGzExeoF6kSkK+QTbD4S5HasHxTRND Gamz1ST+ve+RDMk1u8OIGDuXYKQI3w3CE5A0Lef4SyDMrWkABj8Z7YPwUg60AllAS61I35x4Mav ynL1Z/1M= X-Gm-Gg: AYBFou1aRRNO8VBTkNOfonvA61yls+GRS6e9hCHqhIr6rDNyvzow0O5FnrXlRQZNRIz W9R62skiNZHN49BTrLS4DwzjyitrhYMUqOk49BcnXerWr0VTam38d5pfVq/x9VGdwte+RDFE+AP sxE082+zPZHjK2KQS1Eg7BqmafSCyRmiFO5w+gu91rOzyUt7/OLAj7JRybak6b0m4H5v9qyy6Ss 0LtkRkVDm+7BM0btvlkoHIUhaIhvpuRdvP3GZ1Ow4sSq3i/O9dO6IOrUYdwX8xSIGPVXZgAPgLJ yKxYzYagflFxmtQtjA7JhLHrq6cGyL6TJPrPYCFzyNFQhQpgRiLElj+rT+RfXZtLmY4pzzLGTeu lJRBzLpWMklNMQ07c9Vw1/eFtZ4ln7h7kYCG2MfSWPMb9Vnp1TA7TgdwG/gpF1MRRWzMxsSIcLR ojH3fq5LhQZycrybwQQMIgW8icHiXkgm3emVoJ6y4a2psa3tW0p7csKGLfrx6x8z6DLBq4NStnl WRN1EaopiMtTEKnBA== X-Received: by 2002:a17:90b:4d0d:b0:39d:f189:48d6 with SMTP id 98e67ed59e1d1-39e1e27b244mr11091295a91.4.1789619330165; Wed, 16 Sep 2026 21:28:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 022/101] tcg: Generic expansion of tcg_gen_shr_* Date: Wed, 16 Sep 2026 18:27:04 -1000 Message-ID: <20260917042823.542588-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619657042158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 5115b07ef22..9bb5dd22496 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -313,7 +312,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 15cbb6c341a..3f928d4cb8f 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -9,6 +9,7 @@ DEF2(movi, TCGV, TINT) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(shl, TCGV, TCGV, TCGV) +DEF3(shr, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 19e2c6c713f..6f6ab0a0e5e 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -448,6 +448,11 @@ static void gen_shl(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); } =20 +static void gen_shr(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_shr, type, dst, src1, src2); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -549,11 +554,6 @@ void tcg_gen_shli_i32(TCGv_i32 ret, TCGv_i32 arg1, int= 32_t arg2) } } =20 -void tcg_gen_shr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_shr, ret, arg1, arg2); -} - void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_shr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_shr, ret, arg1, arg2); -} - void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_sar, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619579; cv=none; d=zohomail.com; s=zohoarc; b=fq8RHB8S01zUGKUkvgIjlTCqLEesEFgq+x2Pg5vl9w6RAnSqHcyamB5X/Z1G3RlOwbnGqPn17vZEy3dJoELXoqb8bbkgxzXFp97qCyzCyzSyc/0QkT/b+YxMLdVyeKMbz7O/CQPA8rjYBgs64WUQpy4NLv36SImzZDfbmyXILgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619579; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=oogL5M0LRU/7QsuBliPckFPoTq3H08Xfq5xmzOdRTQU=; b=cLBW0QlOA4o2m67KTPIz57eUfe/4p1GJUg+9ixHp2I/FURrJbuhy3vLglLFJ+s8sNCprzgpCnc+fR9qAs1www6wjZReV3/emN9TKebkwYusJhV2PcbxzqK/7mRK+pz7phYXT52F01ByWUeF5vNUbd5wthf1rHqkWAn3auCt8Euw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619579073258.97049817179845; Wed, 16 Sep 2026 21:32:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kG-0003HQ-6n; Thu, 17 Sep 2026 00:29:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k6-0003Cm-Gb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006o5-I5 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:02 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cea4c7a0so193788a12.1 for ; Wed, 16 Sep 2026 21:28:52 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619331; x=1790224131; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=oogL5M0LRU/7QsuBliPckFPoTq3H08Xfq5xmzOdRTQU=; b=oLalCN4Wt2BnONbZPopdnmCn5D+n8BdaI82qXVTXFvEJZ63OjFJC/izXFXHuJqtdlh XvsaWHhtIq/A00rHqYsfS5JL5BVcfpncOY4tppoKX62ZVSI+1spadu6TiiZD4apPaFBL rTo7mLGko6VpBd1MxNhCt4uh9lLFvZ8JqLE6WsUT8ChkJ6b7LfZtM5WRwVuQ1wCJEc6r k/VENLBZQIqYdEQkRvC9u46BmfaTDR8H4XA6/rYA2wgBAgMbBGk3s7sEyGdRCnL8NzOa KZtBEytrNpRGG3p3mOJRdMue2zJM/3KOyfy6U5fWPWZMcjARuFsvVFVTBzwxfe7DX4uJ 4FYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619331; x=1790224131; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=oogL5M0LRU/7QsuBliPckFPoTq3H08Xfq5xmzOdRTQU=; b=z+JSu2DDc0WjevpHY5/aVizm9eJuVltVFS+Yor+pUoTSzTaahgpY7bPOXi0Wj+R7Dz ZS5Beody8n24TxWwIAgyNzQlf7eYfTLiJgvrHpqI0Fw1S/I9n7Obiptf+NM6XBnNwmgJ KvTqdp+zmgik55umSv5XjbCrT0AGTME+5cpFnhNR5iZUOZeNnFZ87xMjAqh34zf2HTsu jSpQ0CNVDNqdKg24UmOUJTnGGVuRDuSkCXOtErIaSSB3som0Jg/WqT2Rp6yzaIRiHVvV rChDeYd7OgXTFUUyyIiBGQg/FuyDIeQ8T9C7tFB2BMKI6b26oGeXITjsI3y3YvAGflyW d/dA== X-Gm-Message-State: AFuF++nz+5VQTagZSGe5INcj6o672kUvuW/a+Q9BLhEej2zd3aWitq/C ohjJjUYsJvm9oF/GKx3HNOwv6iuafDklFDLVCigk6QXFLzjbLLESh7XOKu6ycvRCsGaQTD6NL5k ES7pBSiQ= X-Gm-Gg: AYBFou3pWlN6QZI3cMgYfipKZxACHceVLRBvqk6o/WbWpXcwe6KyIDwrlNpM8EoeErX 7Luz5wBCGBONMRmveuGfd1XCqmZIOtgTRPUx0RfDcUh9JARSRwRnqaMVXa/7voBt8nxA0TB0Y+P bjJl72Ibg2ueyDPtlNtDTemizYh7uui4ccIX/RkiGg6fH7YISbXzzkbaWTb86cKbg2TQMc9EPwF P98rRhfjZ08iXMysBcGmvvaMsNvJDUei8Ykr7ls9C26ff9XPsPDQ1f2eg3ny0M/NIoLhusGjwwC 8G3zTFfvY/3xOKIWw318UXyUb0jnwBAM6jzFuuYYAKzA2PKhPsaLoGwsQU8ld/UxmYl5cpUL0Rf s03UqtEAcKm58VQxJNxi/+bCHfuvKyg72owNvIF0O4LymOFhpQFuZJ+DHmpzimN1I3o/j22FQ9z irYe6nkmbr0o6yy7Atr86oO4+pbwfNM2h3tSIGNMw2d/d6AxazUY+yjdtq7rPfgW0fGxeOzxk4N POO4Ms= X-Received: by 2002:a05:6a21:1343:b0:3da:f32e:b3bf with SMTP id adf61e73a8af0-3dd5f5df79fmr13096084637.17.1789619331181; Wed, 16 Sep 2026 21:28:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 023/101] tcg: Generic expansion of tcg_gen_sar_* Date: Wed, 16 Sep 2026 18:27:05 -1000 Message-ID: <20260917042823.542588-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619580627158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 9bb5dd22496..eff7bf11d6f 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 @@ -312,7 +311,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 /* Size changing operations. */ diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 3f928d4cb8f..247d35bdc14 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,6 +8,7 @@ DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) +DEF3(sar, TCGV, TCGV, TCGV) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shr, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 6f6ab0a0e5e..c7e95dba241 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -443,6 +443,11 @@ static void gen_or(TCGType type, TCGTemp *dst, TCGTemp= *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_or, type, dst, src1, src2); } =20 +static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); +} + static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); @@ -564,11 +569,6 @@ void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int= 32_t arg2) } } =20 -void tcg_gen_sar_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_sar, ret, arg1, arg2); -} - void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_sar_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_sar, ret, arg1, arg2); -} - void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { tcg_gen_op3_i64(INDEX_op_mul, ret, arg1, arg2); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619376; cv=none; d=zohomail.com; s=zohoarc; b=g4L1MTQjqIRz5sKX0pxjh8ogAx3S9ZUkUCi+c09dWV2rrbJwfMd5q5If+LMa2WqjSoKfvsWN3VbujalmJ50pyp0Kl6BIqUs1FAWv1S71bN6Pfm23OXZGJYla0ZEHdnH1IP0B0b34MLnCJw7NJOcDzW69LWcSoYIR+aMzi2t2Jfo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619376; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=O+YCLO2jpwn3gMUqHmlY3kGGdcEL1JHvmbKOcEmNGsc=; b=BvpMtqJ+wZlf0Mrdh9CcgliOZlFD5jazfkjgG8qaKgzp13UZrdDecWp3ufnP1MTT7g0Bm4CjUs7XEJuDynrs6IjXfoKK2vL5KLfic6hUoV54YYjBvSxkkIabpM7uEImfWnmGUR4A4wlwYIg8jKn9Gjk/eihbSwjYNo/qRi4vtZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619376369505.69538071029274; Wed, 16 Sep 2026 21:29:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kH-0003HU-5X; Thu, 17 Sep 2026 00:29:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k6-0003Cn-T1 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006oA-Ib for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:02 -0400 Received: by mail-pj2-x11.google.com with SMTP id d9443c01a7336-2d747ec6188so2603075ad.3 for ; Wed, 16 Sep 2026 21:28:53 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619332; x=1790224132; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=O+YCLO2jpwn3gMUqHmlY3kGGdcEL1JHvmbKOcEmNGsc=; b=wzFP882AqiPVfJmtKJDOZoQscblB4OvxuS6XIPQG5SNyz1aj6tJMkpLI4UXRZQmPFN C+zrsYHzUydGb/wiMhefVhMFZT2X+SZlEZ+AegEhgCwoOoe0EZwzRk860tnuXrEMmWCE LbRe+KlD+wk7oHJ3dNmW2yfdnI8sVA27G8rpYcYCjMbOTpnuHW5D8Oa/Mdi5CwpoQmUE OnAJHKiRoj2G2AULPPMz4kjj+XrhCnmY202NWzR5PosrlNNR8vdoxyXoBXaml9JQj5mr 218OL3TaeIMkB0V9mWMDfT0SWTeYJnhcMeEqfBWZI0L8bBU+jN5FPtq84vzSRBJ0M/dI qZWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619332; x=1790224132; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=O+YCLO2jpwn3gMUqHmlY3kGGdcEL1JHvmbKOcEmNGsc=; b=JeT40cHlKHo2iaQtIclsEi0hDob78CikMPplpisxGA9KilXsjqQf0HnZGTG6XyAUbp mBPmziz78VK+N7Jpk3vFIP4+v650XmUdWf49opro0VS8MG9owa7cX6ZqJwlLlANm/HO8 tVwQj9NynHRA4yhptRKR9C9lcDp+HGeleAXR8CK/U9FT66P/YUIy6XOOZS4BpaO4bJD2 DkMMHJ54kcIVcgp1RkX0UiPKx6O/+zJKc/NP/TYLUejxdQ9heEY2rYJMyIvOMl3xU2dP XtVdoMHslkwumm2/0yBUACI/pGlxEzta0dOKi8yi1w4KDDUg/8orjNcp2mrGMa371r/s mhaw== X-Gm-Message-State: AFuF++m+wztyxnmfRY+6cg4TTFFqVOrwhzJAefpWupMAcuWPkE/EtB3u oSbS2Oq+Rh8lUbpLBr4rI2fFw8SY86k+Rpp2Q3KRR3DWeMyPriac9qBwdVxLWC/ifyyYx8VLlnt 6X7w7+7k= X-Gm-Gg: AYBFou1gDzg66c3gsAt7SLceISs/smIqQHFlNAkCLFShCZGrMZf1jE44fJ0lOZ75mx0 qK7/QeQwswv18oCCFrsYlhSGcg4c+sXU6W09BXCVN/fFLvPryzpQuzUxhofIHvqXnVO8DZxzEp2 j3ZRSDUNZL9tWNc0lK5kb06oQMVKluW1iGf3lKkM0PA9CE8l+rbNKzv7Fx2vONGpsYjggswnK0+ xj4wq/3lf61os5bWkborwdguwawisXSwaFvxVmLxru9rZeXmktmnjauk7+jiPMV2pPkMIQG/QnM uB4TJ4YXXjv07NzCtlnq40cyPs3JveBp+UUp8rWWGtoFExM6JmmAsz/Duu1dy+Ur3Rtxt+u2cn4 LK93Oiz8DaTXagQ0siytjrKQEYxHzWH3kzeElQDrQfkNX0Fu00udCMXiOG1Hv3IDb2h5f+vpoOV T7ciYMScfnbaQ71e49Jrvw/qF4DtNGJuJAf7Qq/oojcLJtXuS65U2rKdJVSFW7Kbc3QNiwUVYtu mKvfyrf/H+m761mMg== X-Received: by 2002:a17:90b:46:b0:39e:35a0:9c0f with SMTP id 98e67ed59e1d1-39e35a0a211mr5492449a91.14.1789619332107; Wed, 16 Sep 2026 21:28:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 024/101] tcg: Generic expansion of tcg_gen_mul_* Date: Wed, 16 Sep 2026 18:27:06 -1000 Message-ID: <20260917042823.542588-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619377601158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index eff7bf11d6f..f45e5961a22 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -210,7 +210,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ @@ -311,7 +310,6 @@ void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); =20 /* Size changing operations. */ =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 247d35bdc14..b318ddd74e2 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -6,6 +6,7 @@ DEF3(and, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) +DEF3(mul, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index c7e95dba241..2d0e2c4b34a 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -433,6 +433,11 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) gen_op_tt(INDEX_op_mov, type, dst, tcg_constant_internal(type, src)); } =20 +static void gen_mul(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + gen_op_ttt(INDEX_op_mul, type, dst, src1, src2); +} + static void gen_neg(TCGType type, TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_neg, type, dst, src); @@ -635,11 +640,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - tcg_gen_op3_i32(INDEX_op_mul, ret, arg1, arg2); -} - void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { if (arg2 =3D=3D 0) { @@ -1527,11 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - tcg_gen_op3_i64(INDEX_op_mul, ret, arg1, arg2); -} - void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { /* Some cases can be optimized here. */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619767; cv=none; d=zohomail.com; s=zohoarc; b=iJEcaTZ3HUm7FYB2QOa5s+8ahvVHYAx/U72F3Md33th1DfZlKriLIXiwuU8em33XIeDrpPua36AwmJCpcTnY10/IA1ktzR5z6ZF1vfpbpC8820MDphCvNBAuckOERGrXibje5YTWo6o9Jm4yQtHvwTAdzQX9cR9A/ZbLENkly6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619767; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=zViLnWWimhUqqQWRcEtwFvMmvTWE+xmDjdpS/VswBpI=; b=UoKlxuIF489jUgu/Q/G1BwOzW47NV3FEgjMYE/uKWEGeXxZGLjRPSbVVonVatgQOgI5SWtLKB6a96T0p2UMgmVvOm59MW9Er/BMyVSstPaPUYt1XZystUVdBXu/YUrOK7YWGka7NAz4Mhn0DZg/3T8cJCDpoNVui3Twp8s9VSNo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619767915443.8376383657733; Wed, 16 Sep 2026 21:36:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73lV-0004Zy-Ib; Thu, 17 Sep 2026 00:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k9-0003DH-Ju for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006oI-JB for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cebad4aeso258436a12.2 for ; Wed, 16 Sep 2026 21:28:54 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619334; x=1790224134; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zViLnWWimhUqqQWRcEtwFvMmvTWE+xmDjdpS/VswBpI=; b=hMLK/oCFmTix/Z8hR7gm74KPYSib2hRO6IUkQUnhJ7T6VWW+tr5F7mbcjoTU8wyd5F rEziES4Qx+OrdUXjX4vTItQ5AQC5EKe+4EVyQTJ827BL21KIE2ZVD02tIaEnb5VvdprY XeI78qrC/vQ9TpgeveJ3Pfh8DfsLu/khx+PyktfdrvQ+ua7ypKOCPitLbW/IfyFn1reE eCrX2r9/sbzVI2Izsp1ULI4mmDwM+qUbexkKeGgP5sWjIj3lDBUI0IUY+dVID1u0q414 5Z1KGI874a7xF/QXnOth6D1tQtQrF2hPExVeA2tmEUJ3cKHL9bRFugxQYNl8HBedWTro I2Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619334; x=1790224134; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=zViLnWWimhUqqQWRcEtwFvMmvTWE+xmDjdpS/VswBpI=; b=zzvWWL76Rp44fV5sj349WLDFO/dtHKwAZVrefx2Yt0beSTUiPKsPfTfucYAuIPvmIN d8w3GDgn54VWoRxM57vqAmZvrGU3QeaBoQaI9xDuN2nE1FzNOI4vcz5eaBNKgCsCI0kh N68uQUJciCZqjGEKU2wq/9oLK0kCw6kcjL66/seBItwolXKFVffsiviYBG7YLCR/vGiL l9YOOhd6oexLWF4gl8O+x1AdEsuNMqH42ycLGb7uifY0lzTwomSvkHI+suTRT4NMpHYq AjtXfOA+rUoJQplm8I8ew4K1ipm9FUB7xXxoVLYDAlVXhUz/dfJVH7iGvdquMkcHbQGt sJ3w== X-Gm-Message-State: AFuF++kVabTlS4Kxosr5sgi/P7w7sRXt2C6pvqlYsIg95mqfQW9iTnXb JHTdSdhrWPdDid0EzhUsa7mHcFEBZzzX4gwlcjSRzKowbdiKG3oeJcTmFtUqmCFY5wSzRUJ5sPU wmvtbE8c= X-Gm-Gg: AYBFou0WZKOkhtIjh233ut/Nzxnhv1xOq4uDBnWBzMkhnMaWS/wyu/pcQ4vt/hGuTTu 6USl6D5B3el/ZiRw97l3DpWdAxsSROqjq9TNMC3mTgrxYj3TbvOzgvwQRgMVxySarLZdgVtbVve 80HDMsudbNpbTzAfi56J02n4JZWfbPwRFA7uKwfZfVf1wQwluaWgtcKMN/qjETxKTf4AT8yvD+2 vRu1ou0idb9SWGzXLFEnvLxvOsPqH5I4taIXt3APLcJflI/KXKUwooebaBpzpJ7PNMkQm1L0ind cbZZKb+D/DUnUZJyC2cMXQE7VJCenYeI5WvtPy1dhbUBB8JDeKfPmG3Wz8SrhGjPYo6K4pGtu0K E2+XnfJCDi4t1/VCn5xhIX74IwGDmFDrLWiPS+RK4uPnPpYrxKAFY06vZ4zQLa//LflpX1zzI42 7KtowAqCVDASjtdNsJOpYUdl/tpknjeN2xzTejGNYCfTvFZG5lKKggY7Yi3GWv97Cpc2h/dv+td /FagsUiwSPWhombUg== X-Received: by 2002:a17:90b:3b51:b0:39d:f95d:bd08 with SMTP id 98e67ed59e1d1-39e1e47ac09mr14971616a91.14.1789619333500; Wed, 16 Sep 2026 21:28:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 025/101] tcg: Generic expansion of tcg_gen_shli_* Date: Wed, 16 Sep 2026 18:27:07 -1000 Message-ID: <20260917042823.542588-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619769553158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f45e5961a22..14f8dce347e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -126,7 +126,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); -void tcg_gen_shli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -217,7 +216,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); -void tcg_gen_shli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_shri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_sari_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index b318ddd74e2..b98e5bd80e9 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -11,6 +11,7 @@ DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(shl, TCGV, TCGV, TCGV) +DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 2d0e2c4b34a..1546fc3c094 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -458,6 +458,16 @@ static void gen_shl(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); } =20 +static void gen_shli(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + tcg_debug_assert(src2 >=3D 0 && src2 < tcg_type_size(type) * 8); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else { + gen_shl(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_shr(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shr, type, dst, src1, src2); @@ -554,16 +564,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_shli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else { - tcg_gen_shl_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1583,16 +1583,6 @@ void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, i= nt64_t arg2) } } =20 -void tcg_gen_shli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else { - tcg_gen_shl_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_shri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619920; cv=none; d=zohomail.com; s=zohoarc; b=bPzTjOs2z/0m08JBsTB83su0LePG0J3CSGqNHVss6rQj8wlE0QppWEm8792cmEuGdRoxdYk8UjTAXtSbjaDTWdqHu35FxyEyaJVvZcS1Rk6BPe852SufX+Dq4iZ13HQdmHWmO8/b7nx6CO2lCqTRavKNtcPUL2ROMUv/oK4bRDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619920; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=pBqAhA0+CdAZCUkJyOnIcW3nJZE20xi/oNfYr0M4rBM=; b=SOxnsnmIygbOYPmGS05Qvuxr22Ef67KwMqKq0w005WCiR5yoq5YPgbwlCGwrQl0BqAoEU5Gqs4/l6P03JFFkqeJtJNAzLV3Ilx6v9fTLqKo7i9VMEYY17VW+K5zWtcGSNGn516BMey+TN6bObn4nRCbbkH49nvqh4F6pwKtvLWk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619920259100.77223329530636; Wed, 16 Sep 2026 21:38:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ls-0004ym-W4; Thu, 17 Sep 2026 00:30:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k9-0003DF-Gf for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006oN-KH for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-398a1676000so279146a91.2 for ; Wed, 16 Sep 2026 21:28:55 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619335; x=1790224135; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=pBqAhA0+CdAZCUkJyOnIcW3nJZE20xi/oNfYr0M4rBM=; b=tCKxMyCmrulKu/0IKlaGfhCFNvwnW8gTFN+GBNwpNCfy10fPkSAQ+Oca+1AgI6+0qk sj9Au1MXAPHQu/Dc2GlPkE4/DC8O3NZiHFNeHKSSDXBPRHGwvsjcMxXig6XCvBsyWAQu y9o+WHz7QWy+BWe40+Wdk7sSDjPOdkVeXZOXqBZhXSPh/b1+ELGs6zOO8GBSEZlATDpP uwWG9nqYY+GdcmfV/PeIsuIW5oCPiy03RJWHotJxie3a11WV1Y1iKzkUwJUTgEdWhLks AS+OFE/pB7fjtomC5OjD0btsVw2LDYPCbdenNGr45kRRHT1b9iaImyVV4BkCGxsCJuDY j/EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619335; x=1790224135; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=pBqAhA0+CdAZCUkJyOnIcW3nJZE20xi/oNfYr0M4rBM=; b=xWQPklYbUdEEwV8zvoKQ9phZO28puElUDi6bKE+jYZMi57jkN8C2IY6PxNjqbATHQZ pilSqcA0/SHjll26yJRWeJ0iH54fU6h4Pe6gj0M5TkNoXndIP+rV+wPzWEUg7s8yKiKs 6O2Idv7k0te9bHcrYLZ1ZroytwKJ+art6Vx7FGf33jM75NZv9GDp4HwYM6kgKHQEE6+O 7VxMFn+ZE7lErf+0zsmy5irKxEylOvUHx603hDkk7tasg+9UDg3jhMKgPlgND8WppK3q Ihyfvnvkxmnzcq140JHZP6I91GO6SnJ7ojtD+tn1gcuaCRqlWUE1P1zKcZbC6P+jzDIi Gffw== X-Gm-Message-State: AFuF++ltf6uSBVrQ6kE29rid7ThsO5lBOLm0XNyKFVNh2SNo7USm9xYv 4eMZQwpSXTmb+H2hGX0PjoD096DuQC+F16JRodJdp8nF4xfDDW2BHF/epoUFkmzQr/Wi4TrRIj8 //IqR3jw= X-Gm-Gg: AYBFou3e6tVpR+pnAQ0+VLxpjMfcgjlT65WxlUlNfXCcxIuS8RD1nUpUyMvXp6j3b7N 0upNiaaJWFCoevjvopn6wG3BCvwoUyLwMbAdseTSuiUPKGoY/aYVOUh2jhipW9wP5ZbadfnWnw6 5Gm/yCOv7/m5y2oYywZdHD5UEcXpWuKys5Bn3bWTbVc2yDtAV1vR27rBpPnkETQVcba+PZfDXa/ 7Ar4VSvt6Msj13SFPRTlpGEvctqQB4MVz9ddH3fhGY94oIcKGmbemA2oJuPLmGxOlFstx6iecHa ZEyGInC/7XHGGWUFyaDFaBcPXZxOzZ5vpBH/H8ycHYdaXFm+024VSr1i+lpz8GbME5c9Ds1jxTC 8JPjgkqntCCSE0CyZPX1L46LYUMKWVNclgOXdXYZTsAkZb28k7MbpJI9B/xv7oC3G5wuknwHQne swr/fZU11QJ3S1HiiByJDlAu/SD55v58Gy2cb1Ido6m6KEDZF/j8O9pLblfbW69uhQhuejOqLCL 16vbcU= X-Received: by 2002:a17:90b:1d44:b0:39e:1693:c3c1 with SMTP id 98e67ed59e1d1-39e1e4c8bb8mr11968397a91.17.1789619334464; Wed, 16 Sep 2026 21:28:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 026/101] tcg: Generic expansion of tcg_gen_shri_* Date: Wed, 16 Sep 2026 18:27:08 -1000 Message-ID: <20260917042823.542588-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619922124158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 14f8dce347e..e8ed65d8c15 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -126,7 +126,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); -void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -216,7 +215,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); -void tcg_gen_shri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_sari_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index b98e5bd80e9..b95e51a07dc 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -13,6 +13,7 @@ DEF3(sar, TCGV, TCGV, TCGV) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) +DEF3(shri, TCGV, TCGV, TINT) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 1546fc3c094..99b56361558 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -473,6 +473,16 @@ static void gen_shr(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_shr, type, dst, src1, src2); } =20 +static void gen_shri(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + tcg_debug_assert(src2 >=3D 0 && src2 < tcg_type_size(type) * 8); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else { + gen_shr(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -564,16 +574,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_shri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else { - tcg_gen_shr_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1583,16 +1583,6 @@ void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, i= nt64_t arg2) } } =20 -void tcg_gen_shri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else { - tcg_gen_shr_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_sari_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619789; cv=none; d=zohomail.com; s=zohoarc; b=ZUkiPkQB480jXRKp9VEgnU6SFzQOHi/jqtJidWuRsJH2RWCXJtImNl+sXGC0AUnqGcnVKXlrGd3iCp2IM6IucTB1DLoNQZAClF5e7lu/hXaXkAid8zamSW/Dv1JFOs1nlmlN9/rco4xyeu+FUuO6g5Efd4whUk/PWAFyU7ydeMs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619789; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=gn2BVo8XsZoWSxJt8C4JLF74Lt5/vzi0qWbrkJFiwyQ=; b=awPUC3VB5Rs9LYZ31cJI2CHpteuITxGF5CfbADw7VQu3uPfvrNCOtWZ+F1g1MKuMpMedfsP2zO+QkyIyIY5dwJJO105t9mChRLu89XT5SQm/ED8l8jTvl/Rc/3sBs+o53KbMUz4FjEcmZEVYPoqKnZb7Pnc4Y6rDH0iZkheT0l4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619789269202.16812154024467; Wed, 16 Sep 2026 21:36:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kH-0003HV-Rw; Thu, 17 Sep 2026 00:29:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k9-0003DI-JW for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: from mail-pz2-x0c.google.com ([2607:f8b0:4864:3b::c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006oT-L4 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:04 -0400 Received: by mail-pz2-x0c.google.com with SMTP id 41be03b00d2f7-cc5121bcf1aso319219a12.1 for ; Wed, 16 Sep 2026 21:28:56 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619336; x=1790224136; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=gn2BVo8XsZoWSxJt8C4JLF74Lt5/vzi0qWbrkJFiwyQ=; b=PQMaiZjSm1JL5LWKfJcI5FEV15JdzoHCs6VhS5+bkD57MbaOROgXc12zPAlP5PF/F2 JYl5Lc5en148pByVF26UuBFeufPu+tLgoOey+mcaxeQveobZZt8YGL1lftd/PV6o0fKn 8bu1BESNhcatZPecX7LT65tJf781+eGZCooAGqW8fnIBx6/cWj70bBihH6HMZq4jnrF8 /ItKJN90QP73Sjbc7bP9wafpBXKpIVKJgtJvNTrpjrcbmDtlm2xv4LR1XXiv5H2CS9+V w/BHi4qxK2czxK/k/7I9U7J++00XclPH7w/noeOfB7hVwcWItxDK5kKQqs38BBZwW+aF /Mjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619336; x=1790224136; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=gn2BVo8XsZoWSxJt8C4JLF74Lt5/vzi0qWbrkJFiwyQ=; b=vi+wjSteUNWKN/c1pMNdLzftTyUf9+6Y8norrnbx6/gFbEcwjt4V8zLdtXJEz0FMB+ BelNuy9PSZ5Zy9eGQsYjZDhbqQloRRUhd2UjPIoVq9Uyi+aXA6IU49/YY3IHpBdRFL9O UUIsJNQdOdraNPVGXwvvTY68wgplFBfovc93fYrDOur8HTRdIrOgJTft54YipuLdBWOc whSbUy0BfeWMq7aCKl8oK2Lr5oKTfRgAkEciCkm0Wv6phrFOCNgERmNtQmcOWLqQD1NV Vd/rCbmHacE0QoQwUEYpUh2846SVKdrkGe3T7PJDGDCy9rgn05p6S7K2KOUZAS2e/Iuh 8ftA== X-Gm-Message-State: AFuF++mbHLm4FTRS1SI2cfD5Pp8awABGPoQHtZ6xJVBm5kO3qNDmVOoD jmVf9yRzmxNgY6VluDiwJZODYoK40ucjg71UGOvCI2r6OI7tiDK8txyhmv/6266ZIAujQnpa3kH ZEZ2nZmU= X-Gm-Gg: AYBFou3x6b9GyqZrdNha1FIZUvKqvUidtJ2Gn+OcV2faVY5i/sqUoZ57IOZeZRI/LAm US2ZRx0VJdQ3yGPWilk62daipcaJFNf8UrUGW9AK3eI4wT0RhlU0T3+mFGGZl6IYYBufqm8636P 7dxCBWoD872kY8wo21s72H25c2vsEqTTozE721atBqkTnxyOwYB7S8/gLWwBlx40iuWy78TSV+A O8axsVeeovT1Z+Ag30RwD7ae2GGiqo/w7cuMOn4hUcuMupMS3IyaTHniLiS52/4CJw5a3dyKL4u 75uI0xTjgvBsjAmy4aDVQvyMl4b1cs+eXm4E+KAA+P6xxxu3bTMV+UNwgTz7X//SO9hbIsoaGx5 SbXMpwoEn4hutIrFO3QcRYrukJoT6wexHfnM1IefruM788+4S9V6GrIbwDhqIkdXliZ1ezGpAWA gemKtqi5xplizjPdG30wfW3lXI3ROqZHWHZDrw5BrjjkNVrFDKGBHzBiW2MWNy5BsjnK/kcgH1J 6RoB40= X-Received: by 2002:a17:90a:1188:b0:39e:1ec8:adc8 with SMTP id 98e67ed59e1d1-39e1ec8b544mr5323681a91.14.1789619335479; Wed, 16 Sep 2026 21:28:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 027/101] tcg: Generic expansion of tcg_gen_sari_* Date: Wed, 16 Sep 2026 18:27:09 -1000 Message-ID: <20260917042823.542588-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::c; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0c.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619791611158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index e8ed65d8c15..60c74688b8e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -126,7 +126,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); -void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -215,7 +214,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); -void tcg_gen_sari_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index b95e51a07dc..bfd2cd4b9c8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -10,6 +10,7 @@ DEF3(mul, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) +DEF3(sari, TCGV, TCGV, TINT) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 99b56361558..aabccf49a81 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -453,6 +453,16 @@ static void gen_sar(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); } =20 +static void gen_sari(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + tcg_debug_assert(src2 >=3D 0 && src2 < tcg_type_size(type) * 8); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else { + gen_sar(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); @@ -574,16 +584,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_sari_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else { - tcg_gen_sar_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_brcond_i32(TCGCond cond, TCGv_i32 arg1, TCGv_i32 arg2, TCGLab= el *l) { if (cond =3D=3D TCG_COND_ALWAYS) { @@ -1583,16 +1583,6 @@ void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, i= nt64_t arg2) } } =20 -void tcg_gen_sari_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else { - tcg_gen_sar_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_brcond_i64(TCGCond cond, TCGv_i64 arg1, TCGv_i64 arg2, TCGLab= el *l) { if (cond =3D=3D TCG_COND_ALWAYS) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619495; cv=none; d=zohomail.com; s=zohoarc; b=OtOSbeDlQ+lMe2g5YNHvp/lItLQr147bV7rVRX5BRAqoq0bvdlEtSOR7ecfuF6Bg8qY27CtbORDC8cAWoqiuz6vzcXKZ0GDpXJ6OZNmk5wGpxev6s+bUCERgqsNKirSW4U3GYGpD1mGzoKvM4dJJKYE5+Y0U0cJqJqZM9KW6S6k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619495; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=4YgPpKtv3vK+X6eZmY6C3wjGd41BpUgxi2x7YqJJ06E=; b=ASGGfAiSrbhOyEfllSg1Qw/b5UmQXtBGIjl1OjLSsfCFBgPh/lVXe6c4I9GiFpJ+RrSRZR9xpEUL3zkgOkAddnL8eC/3LZ9k4ebJ4kp2xhnEkv7xB41J4zv5Z1Zr+NjZjSIDjEwTsHSPNfRx/S0ZQSMSIytg60xWz8XcKmvrDpY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619495347998.3668019161045; Wed, 16 Sep 2026 21:31:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73mC-0006Cq-2u; Thu, 17 Sep 2026 00:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k8-0003D0-62 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006or-JP for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:03 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-398a147688bso360699a91.1 for ; Wed, 16 Sep 2026 21:28:57 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619336; x=1790224136; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=4YgPpKtv3vK+X6eZmY6C3wjGd41BpUgxi2x7YqJJ06E=; b=FhcVyfMTw2LCEugYhl1cCUs1aPOJVbPxTD37TuWrAtQk5o7IONA7fVL0xx+3a3DGy9 6r2o97cY31aHK0tWBlLj0T2sf80qtz6JU8//WQdwWtmWLH+WEwSRWikQWxGP3AmYDfh3 00VMggsQ+peCQlW+BeBO6yk5zWpqAtmJWdQvv+soIaGGlJaHCGY9iYVhSKx9MFM9PO5L aBu1Htgyv8kjY9P1A2p61/s+e1Etu63Rqep3YzrMd7CGyICSrzS7R7166Me+fZdAzva3 kPBJ4/urf46FV9/2Nb8XQPoCuO+mnZ0WFYl43coG2AKVk6V6pcFsJCmO9aBxD8Z0DA3C OQyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619336; x=1790224136; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=4YgPpKtv3vK+X6eZmY6C3wjGd41BpUgxi2x7YqJJ06E=; b=sskfeyEh3ZC3HVacNbm11LaP9m1Uf3NG1Lj9k4wQC6ejx4jsXpxbRPXdqRQ5NWz78Q ILS+A0Nt/GtGlAWDdDedhqoz/Gz3XcnDFBdzeBNr2Zs2xWFYn28mp80EwtwXcMeumjYZ VqZfbTz8LK15B+a4A9cgxRzrtaDH5p7eHPQl32Vz05evZR0Tk4eXEhv7wy10GcDlzfG/ hUIj7WcQpfw+4qV1JuirXle8654u5tYjyx3ed2lCS5TqtlBo0LCw+BR1LIX8BStCdM7J 5bVRUVYk2/0fwNjNx21nzUKUMjQXLf6FzRAVeEILQuq0SJsmnrq/VSa23fTfHX2n9Kw7 EZpA== X-Gm-Message-State: AFuF++k3chGIGFasnDnBv6Dv0FuANnRUh0UlaZC+k6tcQnv9uPale9c6 LT415aS3Ll5UN0uE9fgTk4lzOI/4r5lhBVb+2HxbFjaAkTf/YbSYb92/ja/UFEJvHUGu7XNXkZz Uoy/rjAY= X-Gm-Gg: AYBFou3yTbU3IvBHUkyqwyUNI3gpvYuuKpIapYrf7XSpxo9Prtsava+wc28T4qYWH90 5uujqBgvWxSAg35TKkESHhB+ijkKemyDHe8B+7CoaZJdOqsVH+FLFUW6eWiSdDysdKjKKTNuczv DZmyOrNqB9EVLE6qR14m+uW2N4LfJSwSJdcX0HncREDqHStAB/kjUHTMBbHgsYPKvV4ph2Fzg8n 6rS9UbrcU90V+dpW//UjEiKKTdwpwGfiQqB0M1b6hJ6o3zVNQ6CVa0nQtM3l7aYrSVVjVPt4Oje 0tgeV89wKZ6qPP49DjpXSA/1BoMa54fRwto87SsIRr606gKaqeqorVP797KJfftISna1DIQqVtb gnybD3EzlSwmxmCT7E+kgJdzRo2D0b4vHi0SMwcnNprjsTX1pzf76lj8yxt9dPlU0Vez7Cp9ofB iuRNTmPkQ12YLmiWtA7V1lLX5Z+gvxaVJV8MswgBg00g6fMDQ5II5gRPePsgyeFxl0dK0xdMEAK Y8+Svk= X-Received: by 2002:a17:90b:3c91:b0:39b:370e:c807 with SMTP id 98e67ed59e1d1-39e1e4c5116mr12350490a91.17.1789619336383; Wed, 16 Sep 2026 21:28:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 028/101] tcg: Generic expansion of tcg_gen_andi_* Date: Wed, 16 Sep 2026 18:27:10 -1000 Message-ID: <20260917042823.542588-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619496398158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 90 ++++++++++++------------------------ 3 files changed, 31 insertions(+), 62 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 60c74688b8e..57caf5f6631 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -211,7 +210,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index bfd2cd4b9c8..67056e9f730 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -3,6 +3,7 @@ DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) DEF3(and, TCGV, TCGV, TCGV) +DEF3(andi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index aabccf49a81..198e1021ed1 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -115,6 +115,12 @@ static TCGOp *gen_op_ttt(TCGOpcode opc, TCGType type, return tcg_gen_op3(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2)= ); } =20 +static TCGOp *gen_op_ttii(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGArg a2, TCGArg a3) +{ + return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), a2, a3); +} + /* * With CONFIG_DEBUG_TCG, tcgv_*_tmp via tcgv_*_arg, is an out-of-line * assertion check. Force tail calls to avoid too much code expansion. @@ -416,6 +422,30 @@ static void gen_and(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_and, type, dst, src1, src2); } =20 +static void gen_andi(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + if (src2 =3D=3D 0) { + gen_movi(type, dst, 0); + } else if (src2 =3D=3D -1) { + gen_mov(type, dst, src1); + } else { + /* + * Canonicalize on extract, if valid. This aids x86 with its + * 2 operand MOVZBL and 2 operand AND, selecting the TCGOpcode + * which does not require matching operands. Other backends can + * trivially expand the extract to AND during code generation. + */ + if (is_power_of_2(src2 + 1)) { + unsigned len =3D cto64(src2); + if (TCG_TARGET_extract_valid(type, 0, len)) { + gen_op_ttii(INDEX_op_extract, type, dst, src1, 0, len); + return; + } + } + gen_and(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -519,36 +549,6 @@ static void gen_xor(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) =20 /* 32 bit ops */ =20 -void tcg_gen_andi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - /* Some cases can be optimized here. */ - switch (arg2) { - case 0: - tcg_gen_movi_i32(ret, 0); - return; - case -1: - tcg_gen_mov_i32(ret, arg1); - return; - default: - /* - * Canonicalize on extract, if valid. This aids x86 with its - * 2 operand MOVZBL and 2 operand AND, selecting the TCGOpcode - * which does not require matching operands. Other backends can - * trivially expand the extract to AND during code generation. - */ - if (!(arg2 & (arg2 + 1))) { - unsigned len =3D ctz32(~arg2); - if (TCG_TARGET_extract_valid(TCG_TYPE_I32, 0, len)) { - tcg_gen_extract_i32(ret, arg1, 0, len); - return; - } - } - break; - } - - tcg_gen_and_i32(ret, arg1, tcg_constant_i32(arg2)); -} - void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* Some cases can be optimized here. */ @@ -1527,36 +1527,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_andi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - /* Some cases can be optimized here. */ - switch (arg2) { - case 0: - tcg_gen_movi_i64(ret, 0); - return; - case -1: - tcg_gen_mov_i64(ret, arg1); - return; - default: - /* - * Canonicalize on extract, if valid. This aids x86 with its - * 2 operand MOVZBL and 2 operand AND, selecting the TCGOpcode - * which does not require matching operands. Other backends can - * trivially expand the extract to AND during code generation. - */ - if (!(arg2 & (arg2 + 1))) { - unsigned len =3D ctz64(~arg2); - if (TCG_TARGET_extract_valid(TCG_TYPE_I64, 0, len)) { - tcg_gen_extract_i64(ret, arg1, 0, len); - return; - } - } - break; - } - - tcg_gen_and_i64(ret, arg1, tcg_constant_i64(arg2)); -} - void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { /* Some cases can be optimized here. */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619460; cv=none; d=zohomail.com; s=zohoarc; b=V0QbTX8Z1qObBqsg46GI+c3GGX7NZhtUxoOw3kv5o8rowP6BNbxSeCgZTwMGQ1zKUVIiJ3vn5w2AhQhrIc4hzXPheamG8IpNjhW4uzBJrsZ/pENy6T4jVGqO64y9Gxnom9tcxeVZG8TgTTb8P0EOnobC6UGjjl0qU5mcHtfS0ag= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619460; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=Sq8Yv+sp7tQR+JDzfb4K48KyhrUPcZRMabJqL0FAtTI=; b=cnrnGlZh1Qh/0ZkbMc/Ww0lEm/XkWbHL+AoJRrkC507djEnpRXavilGC7OadjyiwNRNiJ2c9qEEf7459h9mxsuRqu1INjgXM2tTtGb7Bc1V+Is1+/ipnAN4v2GjEwzqlySE1neiq5GBZ92HbldwS133TJ33Cq6poltxxSYpA3DU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619460603660.2543752545419; Wed, 16 Sep 2026 21:31:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kg-0003XL-Be; Thu, 17 Sep 2026 00:29:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k7-0003Cr-UL for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: from mail-pz2-x0d.google.com ([2607:f8b0:4864:3b::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k3-0006ow-Iq for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:03 -0400 Received: by mail-pz2-x0d.google.com with SMTP id 41be03b00d2f7-cc50d1b048eso295453a12.1 for ; Wed, 16 Sep 2026 21:28:58 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619337; x=1790224137; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Sq8Yv+sp7tQR+JDzfb4K48KyhrUPcZRMabJqL0FAtTI=; b=ncmkNp4IcGySoLnIzkFikRmDH40kysXOXJHUNIgfQibr2kB/QzNaqW6xS/tODaVLUm R3EueKvzBadU//woVb/oir1pg27YS4G4vgbkaZ9wh1ddEha2Ztm8I4TXgJzy/rCeD1OX TDKYNNuI33QCi0fVJrSY6/eukbe5vh27ihJ4Uq2FP+vyA3K+SYq9usAUf77yv8cIGKCK g0b5NZiPPHndML1nKiWnWxlhiO+BNax9QqmMSrAFR8T+M8IZmSfaQ2d8DKsCFugptVhm 5T8XtEQd+q8uThN3nmcCcDTlqE9MDBAQehvHYMeJvQDVh16kQk5nhYxMRcH95sh/43eo biDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619337; x=1790224137; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Sq8Yv+sp7tQR+JDzfb4K48KyhrUPcZRMabJqL0FAtTI=; b=EegE8y7CFXxIvVCrcGPbVXX5j68ljDPSZGB+t0AYFjjEVfUWafkJ3MhLuOXDljp0Bq 9KlLXPr7WId9KhNtU/E0Kmik/vEDFaR3K1QW9pD7XVE2O2cxnAtA+sUIJCZ2tnLSi1eJ jYjhdfyvZBT1PeY3LOW2+6rV3Wi+xsZbkJXj5RvozTZpHFvf0s0XM1ShLPaE3lqpIybn /v1QO5cf21LlF1v7Dwed4iOnaw8WCiOjm00TU7XANCVveFE7j/RqstPG4nivgXN1BDvo jwXqQ4pjefcaxYhBb/j8mFkM4NaHMxAPvrRkBnsV8jhL2AjuMcv7e4+djUH83EbFzFpK 40rg== X-Gm-Message-State: AFuF++kHo93Ji9TqDdMsK1HYvswBCWBT9spkb3BALztx4RGOdq+XeemQ a+VvL75bvnHeg5mRDLuEgwDSzrDs0i3RG9A0HiHl2+M+Jyqst0o2nubg88kgL19YWSCxlP/YF6A Ojzk9Uj0= X-Gm-Gg: AYBFou2lw3nZJmJxmpXZaohunwFaufDhDCSn+6DIHVt/PubC2V5MUU2FTGj0o9+yxe5 uioMQyJ/b1dSeMZgOLIBK+9jS/BIX7v0Wf1rKtw3T4aBXG8cWoe6FhAiqhYw3/iCi2SStaSx4qd fpVCdi0lOY/01/rlHDiqbpyrNGM/wGc0HPoJ4r0jEbjtqpBT7KqWrmY3bdiVq4vzYZUr+UrF5pH QE1ipNTACpYuilVc56T3TJdm0oaGrV3kbzybhkO3/8OHWY2orQmPXmdkBw3Mxu3TjYBmeiuq2nI 5hOIx6Y3lKpFwQG+fqNYZR96VRX6XCz0/K0Siv7jT2ajn5KuJM1H2h1FhhHIdqkQslNTPjsUdop IcbydzrBdFMMnqRdVrV9DXzPk54kkZI3NQaAgzyGOoni5iCoCnOrgZmR3K+cnqN3J06z8iE+KJp 6ZPSBphpMQalJ1qCMhoF9z6LtzPxrwTDNDYZFh7xqbwn9MGXnmSGDbJf9FQy7bqgTHBPa8PHv+k birIDSE X-Received: by 2002:a05:6a21:4a98:b0:3dd:5831:ef5c with SMTP id adf61e73a8af0-3dd5f5af371mr13862125637.17.1789619337353; Wed, 16 Sep 2026 21:28:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 029/101] tcg: Generic expansion of tcg_gen_ori_* Date: Wed, 16 Sep 2026 18:27:11 -1000 Message-ID: <20260917042823.542588-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::d; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619462203158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 35 +++++++++++------------------------ 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 57caf5f6631..a30e9972b86 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -210,7 +209,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 67056e9f730..2c3604cc7ed 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -10,6 +10,7 @@ DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) +DEF3(ori, TCGV, TCGV, TINT) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF3(shl, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 198e1021ed1..2c7627e7cfc 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -478,6 +478,17 @@ static void gen_or(TCGType type, TCGTemp *dst, TCGTemp= *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_or, type, dst, src1, src2); } =20 +static void gen_ori(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t src= 2) +{ + if (src2 =3D=3D -1) { + gen_movi(type, dst, -1); + } else if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else { + gen_or(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -549,18 +560,6 @@ static void gen_xor(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) =20 /* 32 bit ops */ =20 -void tcg_gen_ori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - /* Some cases can be optimized here. */ - if (arg2 =3D=3D -1) { - tcg_gen_movi_i32(ret, -1); - } else if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else { - tcg_gen_or_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { /* Some cases can be optimized here. */ @@ -1527,18 +1526,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_ori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - /* Some cases can be optimized here. */ - if (arg2 =3D=3D -1) { - tcg_gen_movi_i64(ret, -1); - } else if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else { - tcg_gen_or_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { /* Some cases can be optimized here. */ --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619441; cv=none; d=zohomail.com; s=zohoarc; b=CgK1SQbDhMzC/M46PoA+O20eDz89FWzn2eMdntWrxvQMa9xBRfoYmfY8h2VKWteyiz0fUrKI61o6RmCIt06gn2np7BIUyk/AwyiXFDFu/q2HvvWslLd1x2Hr2p78mASookFTBL758wU9JnzU8xAdu+Q7O8ifGRJ3CFjHoI6kFh4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619441; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=rE6Gp/rdILGcFkeRqaWTBtq7xL0npMobAFrbzizZRMI=; b=ZBvS08IZaaXitVIXjEGPfqXhFUWPhc4+GuTFOU4kXJUajTHS1klAVJXTO642L2IFuEVDIK13myvqlCk+RqtVq9FfW+yWtyhk2R+QAergCrmakGF1fOHrz82hVF+QaVUytSYLo2o1XRHfxUnOdFUxgnRvwNuDIr/PHv3PN8ZEVy0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961944128273.81088404528555; Wed, 16 Sep 2026 21:30:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kQ-0003Nt-Gt; Thu, 17 Sep 2026 00:29:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k9-0003DG-JL for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k4-0006p0-Cv for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: by mail-pj2-x11.google.com with SMTP id d9443c01a7336-2d90ba1d807so4759285ad.3 for ; Wed, 16 Sep 2026 21:28:59 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619338; x=1790224138; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=rE6Gp/rdILGcFkeRqaWTBtq7xL0npMobAFrbzizZRMI=; b=WJoFppg25F8W/YcTYzyNdigXZr2AMsmZ9EhSQH1zUlb0jt75wp3PePa8UJXmwfG1Sz V5JzGQflDBCHiqvMIGCF2qQFB5bUb+fFi5XuF5sdWlN1atHTKYmHSvNauE7aTT1SjWj4 WoMpp3nZ+5WAOPkNn1lkugyF+nYR6mcA/JZWYRF9Tm7jfUVqxuwS9uaR/3PCnnKkhrJG LW04YVyElZvgR+/rMv6SVOeykDrmVD9yG7Rj4MOoDhAsITVn+DRBI6ONTYoP/QvhR/D4 hB9/df3hsUIFM7ZF7QZvYL0jHKpQ++7WcAil6q6xRMu5L7sEsAFh9d7l0U01Yh5S3+e3 2yvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619338; x=1790224138; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=rE6Gp/rdILGcFkeRqaWTBtq7xL0npMobAFrbzizZRMI=; b=ZpfIxjsB1voCgjwda/OJEsPZjAdOg9ajwfnpHzmo8085a8WQuZ7toI1PPkkrf1JkIf mRjmqJ+b+zF9w+EbQGSpRL/z6XgQw2dsvobt7lvb9oE1mFDw0hWuQPFWT8VdwKDDju2h QtfTuVTsQQK3DZc7Qz6TIc8W5baNHoUNeZxlVf/tfMobH4SVNZJ72N66vIOYV4Ty9mCz +eJqaqaCCzPCwxK/dy49K1jpbaae8B5Xj84sqfOyVWkyg9h7U3SfOj+IHo368NH0VMeT TxfDVYtDBIpq2Brmju0AeKepZwxzDIz9S8E7lmW+aaIUCe0seeGGzyxzFuwbDAzQ0fbn fzkw== X-Gm-Message-State: AFuF++nCSO8stE3izGm0Xyffb8A+5RIXlkoY76M6pMQFlV1p9xRcnkus BXbUOyd7gm05hKMU164gbY9FCPVoP94GSgJmLJ8hiHKdeYtysDa4sUkshR/fblEQSro6mKwh4f5 DdCI0 X-Gm-Gg: AYBFou2SIzRa5bEqdoCcCAmYQ3IetxumsPzy6U607VJ5wVz3OCgHyVhwqnWbTTzxGym a151urOe70wd1153bQSDVk1pPtDOB/Vz3nm1eRuT1xfWt31z+FIDMhdyFjceQ+AiZYbMoZPef8m iCTdWGmAOygbm97socOlQSpxKQVQy6SRfsfF2noHkx7cPc2Tj0oAtcNfH6ycesrv7X0YAQ0pvdD Y9y7vY937sace0rTXnY481qRvm8QDRo5yjJaYdQDnUnb7y8ScK2D3PZrQZ+tkuz/gNarRS5HAGd 5+H64qx5XsQnlZXW3fuhPl9wNZcI4H5Nkf12LFxOsCkCJ20BnayFf/9RcwMNcRctFNtGVNF5Hre aLDrFkJehMVii2zr5r36hi0Q6mnatdTM33vffKUcowN4H4u7mPkgOKhZ7tpYV1HjG719E9mKGK5 4BwyLBFdWl4f6OGZFSMauKRa20EYCaQnjIlSMoJaio0iN8cNyqZj3yJP0yoRZr92Fh23JguEpSM JvD5SQ= X-Received: by 2002:a17:90b:548f:b0:39d:f731:e5f3 with SMTP id 98e67ed59e1d1-39e1e4d2ce0mr12565407a91.24.1789619338350; Wed, 16 Sep 2026 21:28:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 030/101] tcg: Generic expansion of tcg_gen_xori_* Date: Wed, 16 Sep 2026 18:27:12 -1000 Message-ID: <20260917042823.542588-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619441934158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 34 +++++++++------------------------- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index a30e9972b86..cd651d6e427 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -209,7 +208,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 2c3604cc7ed..b620a314480 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -21,3 +21,4 @@ DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) DEF3(xor, TCGV, TCGV, TCGV) +DEF3(xori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 2c7627e7cfc..e1338fcbc50 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -558,22 +558,20 @@ static void gen_xor(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_xor, type, dst, src1, src2); } =20 -/* 32 bit ops */ - -void tcg_gen_xori_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) +static void gen_xori(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) { - /* Some cases can be optimized here. */ - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else if (arg2 =3D=3D -1 && - tcg_op_supported(INDEX_op_not, TCG_TYPE_I32, 0)) { - /* Don't recurse with tcg_gen_not_i32. */ - tcg_gen_op2_i32(INDEX_op_not, ret, arg1); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else if (src2 =3D=3D -1 && tcg_op_supported(INDEX_op_not, type, 0)) { + /* Do not recurse with gen_not. */ + gen_op_tt(INDEX_op_not, type, dst, src1); } else { - tcg_gen_xor_i32(ret, arg1, tcg_constant_i32(arg2)); + gen_xor(type, dst, src1, tcg_constant_internal(type, src2)); } } =20 +/* 32 bit ops */ + void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) { if (tcg_op_supported(INDEX_op_not, TCG_TYPE_I32, 0)) { @@ -1526,20 +1524,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_xori_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - /* Some cases can be optimized here. */ - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else if (arg2 =3D=3D -1 && - tcg_op_supported(INDEX_op_not, TCG_TYPE_I64, 0)) { - /* Don't recurse with tcg_gen_not_i64. */ - tcg_gen_op2_i64(INDEX_op_not, ret, arg1); - } else { - tcg_gen_xor_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_brcond_i64(TCGCond cond, TCGv_i64 arg1, TCGv_i64 arg2, TCGLab= el *l) { if (cond =3D=3D TCG_COND_ALWAYS) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619474; cv=none; d=zohomail.com; s=zohoarc; b=W3EnNcyoL9Fd0tRRwGzQRNXmCTApjRBL9TORW0dBNX9E6CvQkylvnjPapohpT7c9t2MBL6fNaCorYOI43jAkmo/FwKKzmiXfFG+07/K/Qlb6KsTyz6TnWyfmMZMR5Pf+E5rpaGeVBRxJKQnra4lrHPZ/2A5HaWBoPOiJtzxjGeQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619474; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=pXBzmLKK2kYI0+zni+gpeQfaJhIUyxpRdoQvDQizyiE=; b=n8f5D5lQ/h2XU7S6iGbcBJdO8k7tuWw0EAOxsv9ufB3iHHDk09MZSYy9Wxb3EirHsGEWi8Us8Uv4myPxdfU7EZGGcemY8I929WnkIdaTsA3Rcvm+dx5rJFmhPzfaUi+vX8cuhTtg/Nswk3KUqDVlZVLwUZ8OrI7GCQmyV9t1YPo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619474263472.580528050352; Wed, 16 Sep 2026 21:31:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kJ-0003Hm-0N; Thu, 17 Sep 2026 00:29:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73k9-0003DJ-Md for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k4-0006pU-PC for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:05 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-396ccb1a990so323939a91.3 for ; Wed, 16 Sep 2026 21:29:00 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619339; x=1790224139; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=pXBzmLKK2kYI0+zni+gpeQfaJhIUyxpRdoQvDQizyiE=; b=eVBenLYl1qsYDM9cd+pFGyDWYe9QOCk9K1ciqd5CAN+zdLOB7dQ+nGPAHMed8jZuma dRv656YxGs0xenPPHQZqtuWFzQm/lrbQqErHjugvkOIper9d/A4ZhbjYcD7eIF6RPiLm T7YCayr4HD0DrK/ClKr4Z6VVPJb2e3ta0azt5IBCSdIuMjNNC7VTx88rFl8a9g5zA4WU 1SEQQyox2YBDTBzSDiwGP35peYD6Qs8JHxXGSTAtoHOry+9MbcyUssA4M3aiuLWr7DTJ axlg17Ss6irH3wP5RODwy/yGRmav2MZlokGOmN4Ij2g7HvBuWYz9UAc+2h7ZQyy81n4Q XtkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619339; x=1790224139; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=pXBzmLKK2kYI0+zni+gpeQfaJhIUyxpRdoQvDQizyiE=; b=xbNRRgrtawfO/Hwz+6hZn8yjAOlb62c0Jr9OQpvPAFyykHVB3KGm+usxd5n6K/KY5w WctdW9fl1xQVftLd7rhDfJtDEM5u3jarCccUkK0igb4LxW1mgKLJeKIi6ezVtz4r6HZ7 r4fpuqSvwXJ59XgcqRfrFcr7bP4OuazYEAzbN/mrWNUEk5dCC/wlipqclUUqH2f/xzo0 qqVXHH+phMlRmSmbHjFH7AJVuTTTCdXLarTfjZoJR2DbqknLm35rJ6m7RrTf+6UAuVwt Vfu3jInCbKvld1vQFBoUtAP1fZhe0Tg9gD2rVWry3lWG6ygvRyszK8tprMK0hpdPwjng z1rw== X-Gm-Message-State: AFuF++lDuZe6yb/CyPi66zv4mgJWrpSA9/L7wLTosFu0NDYIGj+c8TL3 Fq2ayqq/LUWjAPGhuHQW4K5r3T2p5AKE5Q9vQuXThFrfPcjGWjAosnU/0/T2rT+PROxePKmU7S0 GiQhgBXY= X-Gm-Gg: AYBFou1pog6bWDm1xjCr42w+cYYWPfJ0hFCHbN56hO3UMZNO1zrSjCpAHCsL1WvOQOf 4N7X+Rb4ouJN4XKnc+BDIq7/RdvtqySW42EeZLP4KrlM/pEFuiqIUrrGEXjB6liBBLv/EHPmKeB XoLPuaXX97VlfQi8i9Q4LWxixt76DHn+VwVpKz21SQsTXx5tirvI/5yUQvTKh1TZZm7uIHZJyat S8xExJr1906ihZTPstkxWAFChAl6z1rx/F+kNxQivXb/baaeqzWTNf+nunRqtbafLjwtw7UyZg5 ylUwL0Get/7ajdpRtQh76puSb3HExHiXl+LbxMT4sojUXPvcMcKA5XVERoeNU/cuLPhoQMeb0OV SjhY+twRWR6bf5G//zZ38TrtpXsAPsQOV9TsPWJPgg5XqQED200OPwcdXH6ZmN9FB3552qRWmi4 2YCqobjZ8XKlRE/DzCZLAOSoI7HLnsLwbr+rNZcQVRc7MT7oDIGYZdqB6IBezz70b+WftZgWLCC Zl/uxC0dJwqJrLMpQ== X-Received: by 2002:a17:90b:3941:b0:39d:f2a1:3a with SMTP id 98e67ed59e1d1-39e1e43cfecmr11978549a91.15.1789619339363; Wed, 16 Sep 2026 21:28:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 031/101] tcg: Generic expansion of tcg_gen_muli_* Date: Wed, 16 Sep 2026 18:27:13 -1000 Message-ID: <20260917042823.542588-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619476195158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 33 +++++++++++---------------------- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index cd651d6e427..25e8d27a54f 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -208,7 +207,6 @@ void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index b620a314480..8e97c1b37d8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,6 +8,7 @@ DEF1(discard, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) +DEF3(muli, TCGV, TCGV, TINT) DEF2(neg, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index e1338fcbc50..db47364ce78 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -468,6 +468,17 @@ static void gen_mul(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) gen_op_ttt(INDEX_op_mul, type, dst, src1, src2); } =20 +static void gen_muli(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + if (src2 =3D=3D 0) { + gen_movi(type, dst, 0); + } else if (is_power_of_2(src2)) { + gen_shli(type, dst, src1, ctz64(src2)); + } else { + gen_mul(type, dst, src1, tcg_constant_internal(type, src2)); + } +} + static void gen_neg(TCGType type, TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_neg, type, dst, src); @@ -637,17 +648,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_muli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - if (arg2 =3D=3D 0) { - tcg_gen_movi_i32(ret, 0); - } else if (is_power_of_2(arg2)) { - tcg_gen_shli_i32(ret, arg1, ctz32(arg2)); - } else { - tcg_gen_mul_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I32, 0)) { @@ -1576,17 +1576,6 @@ void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 r= et, } } =20 -void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - if (arg2 =3D=3D 0) { - tcg_gen_movi_i64(ret, 0); - } else if (is_power_of_2(arg2)) { - tcg_gen_shli_i64(ret, arg1, ctz64(arg2)); - } else { - tcg_gen_mul_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619519; cv=none; d=zohomail.com; s=zohoarc; b=NYtO3BeDKP25kiBi/Mo7HV4yTQH6mpI0r1ZeTKXV+I9EtMGqpfj+OGUCGb+mZVWaOEseT0iDgwoVNyLupGIuoUw0KM21jeJQ/fHIALzO1fT5DRYb9lO7DhtkTsxPAc/yYlEls47S7Fh6I2Qhl7hl+O+UNkaWVAv1HVeP/jBpjtg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619519; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=EjC/hgEAHyg4QeR3ltbofy/cVH5NVRwoIGMREd1s2Ew=; b=P3o5CTqAva7V2DwCww/QTTmQUL9rKDvrNIhlaxlVy22v46lhz4ubyyQ4HouwzSLgHw9Ffs7DW/jiBDRbhvCZxOyx9ayWAC4jFCYjPws4j88B/OXFJpSWs+lSUGhvXQ2y2YTUIrCdljRHO7658qNJdXbavoNUVVzhpB8irC9tkqs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619519477741.969493917324; Wed, 16 Sep 2026 21:31:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ka-0003Ph-Ei; Thu, 17 Sep 2026 00:29:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kB-0003EV-EO for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:09 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k5-0006pj-NL for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:06 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc4d04d73b8so308357a12.1 for ; Wed, 16 Sep 2026 21:29:01 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.28.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619340; x=1790224140; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=EjC/hgEAHyg4QeR3ltbofy/cVH5NVRwoIGMREd1s2Ew=; b=tMJHMKjCgEv+6JUVn1hJnC+hWexvOZm6EK3JVkJlbqRGg1d+PyiOBzDGXfyNvndPrX CCO1DMYXuAP9ExMImgbub543YT4Q1r+arm1tkSiI4KkJpsDOjkPXjPadoIG/yYL8M7yj 3RNDatAIpHt+BE2o4yQdBWGejWRqTBhFT6x+7KS5sbY+g/t9NNV2WUggYEe45Ysils8B wZSJrfIvS+BjZprciwKMV3hH9Hn2edoNxdqWg2iorGXsShtFYIVY9dxtohMZbYr9VhXO 79h9rnZe5XZFK2NrI9zam3HB8AUTXN+xE5M6yRAHWavFeJZuDNxpxikngQGXwIrAa6RC K5+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619340; x=1790224140; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=EjC/hgEAHyg4QeR3ltbofy/cVH5NVRwoIGMREd1s2Ew=; b=vHFULMw2FE4aEzotIpM0DXGpeZ8zOZDZXmOch7Wo2GElKcOByU2wT20smXmsQT76Fv ttK0xbstTQJLcL1+/bS5q66LO5TjvoV2KoR9d7oDp4Q3O+jyh4gDgxeK3mQWlcNdt0og xmDJNZJE9NmZiWFJbYkT3CjLbRK7KyJSbvGZ+vNj13SthsQOKuz7Qtbw42ku+/VaTzGk e69dp4vCJpYjj4kZ88Y0ESfzz6m6sNsQrADwGS4lT64jnenA6k6lgavoMPwcHsZRmr4L FQMfFDF06VOpc2PQ3jsK5x8R0qj51LCFvrLt1v16ZQaTblfwsdPgpk3DCtrJMV6kHBUZ /VVg== X-Gm-Message-State: AFuF++lBTVvsv3xQb17pBPXdJUGhrkWWm7BcCvWtKX3mjib1gNxOIKXi 2eAjfEvO3H9vy8+1JWhx6J1gFgnucS9OVwP9Iw5+dAuEeeEp85rJhVLBNGMe+RmfqminSlDNiAR IVnvWDJs= X-Gm-Gg: AYBFou1os5hfY0EiyDuRoeguT/JFeuLgH5STUbZqZHg6umHsnnILl/zA8xFIu8R7SGN TB6Iq9ruj60GZKh5ZgKRzN9rWf4Aj2zX8ssP8jl4K8BECqkbRDGBENOB6wQSo7IdSxz+JrQ6z9W V3jbF997pRqbVKw7ciZRL9RAqXeP4PSLKZJvoUV2tyv3Q/CDpfE58i2/3WaRRBfcyRTUnVpUWdf q5dOKMNEXEg0/98/1EKZDWoRM0gKq3GFlSMyFPaBvm/d55bfbHTd9/BzrADq8ErwNnqOxbkXPhW cZI3B5JCfYkf624k17AU3PhPp1rLb6kYmH1jAQFDP738oVA1XvDP118pFMH7slpdekYRqiGVBel RM2px/U4PKo7443kdXTTRxUPPnbqxXBJtucipLNCewn9JBDpKJNPm5HaS0UOFWF2ZrVpFDiZQQd V9oHbQwM4UkAH2b1f0N8LpuFmWrP/2wh2dPNM/amMjcUWlW6nCmwA3Tq/ZDY/UHI08HTsiB93SF d/B1qw= X-Received: by 2002:a17:90b:3e85:b0:398:bee5:61d6 with SMTP id 98e67ed59e1d1-39e1e55f7ffmr11724461a91.24.1789619340293; Wed, 16 Sep 2026 21:29:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 032/101] tcg: Generic expansion of tcg_gen_not_* Date: Wed, 16 Sep 2026 18:27:14 -1000 Message-ID: <20260917042823.542588-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619520433158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 3 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 28 ++++++++++------------------ 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 25e8d27a54f..a8dffa7c5cb 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -203,8 +203,6 @@ void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 -void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg); - /* 64 bit ops */ =20 void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); @@ -258,7 +256,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, = TCGv_i64 *b); void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); -void tcg_gen_not_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 8e97c1b37d8..20007c90680 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -10,6 +10,7 @@ DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) DEF2(neg, TCGV, TCGV) +DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) DEF3(sar, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index db47364ce78..9a2626e9669 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -484,6 +484,16 @@ static void gen_neg(TCGType type, TCGTemp *dst, TCGTem= p *src) gen_op_tt(INDEX_op_neg, type, dst, src); } =20 +static void gen_not(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + if (tcg_op_supported(INDEX_op_not, type, 0)) { + gen_op_tt(INDEX_op_not, type, dst, src); + } else { + /* Do not recurse with gen_xori. */ + gen_xor(type, dst, src, tcg_constant_internal(type, -1)); + } +} + static void gen_or(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *src= 2) { gen_op_ttt(INDEX_op_or, type, dst, src1, src2); @@ -583,15 +593,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_not_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - if (tcg_op_supported(INDEX_op_not, TCG_TYPE_I32, 0)) { - tcg_gen_op2_i32(INDEX_op_not, ret, arg); - } else { - tcg_gen_xori_i32(ret, arg, -1); - } -} - void tcg_gen_brcond_i32(TCGCond cond, TCGv_i32 arg1, TCGv_i32 arg2, TCGLab= el *l) { if (cond =3D=3D TCG_COND_ALWAYS) { @@ -1843,15 +1844,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_not_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - if (tcg_op_supported(INDEX_op_not, TCG_TYPE_I64, 0)) { - tcg_gen_op2_i64(INDEX_op_not, ret, arg); - } else { - tcg_gen_xori_i64(ret, arg, -1); - } -} - void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_andc, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619575; cv=none; d=zohomail.com; s=zohoarc; b=laDYD0fkQOzGSaSpRMma41ZTEi6P65sqalU5lAst0K0zfBadlPAB6Yg08m+603KAzJvNN3OPLQndu2lwBnOV4fvrclCGlMhQiROfQC39Fssyl7zpiva+ylQCK5Izlcsd93sgWzUSph7mkkElS2VMO2usWMORh3gwsnsdCbNkwOs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619575; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=Jx9DLc4i3XAB9yWHymCGsCEcpc13lR01X3/dMGZDCr4=; b=BF3JXbH1yPiIPTag3tfKcwsqYnBMOBWJkuh/NWUB+tQWhttSaJlcEQU3k3VPqYE+R/PPVtqCZi1cMMxrgPtVes9y7lbjZHzPn59A9fq5A4gSQxU/9zz9umMsk0q10BrD5TCpC5a8whbHtFlOXuKijmMh3OpoUpSAQuTWGUTZi6M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961957586841.10311037928864; Wed, 16 Sep 2026 21:32:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kc-0003Ta-Vb; Thu, 17 Sep 2026 00:29:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kB-0003Ed-Fl for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:09 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k6-0006pv-O2 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:06 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea34ef3so356401a12.0 for ; Wed, 16 Sep 2026 21:29:02 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619341; x=1790224141; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Jx9DLc4i3XAB9yWHymCGsCEcpc13lR01X3/dMGZDCr4=; b=c0jd5d8sB1Y1frklXyEKo0hhWm1p/2GyqfbzhCLq9v0fgEKCYgkfjJVirWMt18KfhK V2slW43GuQtglH06qmDG706XDnxhmSe3dqHIerrrxR6WZDTpDm5wX/xAqMKE+QM9wPPA kR1NIFq1thC9b46W9XMkOzZgzE7DMz8VohWKDYZMZl+nwjP34EnkEb2Sr6wolT4xZXTO kCUtXB6sC/fokQ3jofpVLyZABFdkTq/v+hhN/SIp+zV6adaxU9s/xk+ZeYrb9275UgAJ oxEN6PycRTcSTw2Id6sJWLpH7rb1lu9rkq4oVrfugSL35OeU/EpTpwRNz8DHBB9Ah/xc v5mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619341; x=1790224141; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Jx9DLc4i3XAB9yWHymCGsCEcpc13lR01X3/dMGZDCr4=; b=RGACWU5ha/XsBuykQK5Ilxi644h8R6Xv2xGasx0vizUdrG6zvpwaAksdJBfBwEqzsH 6PLjU4ioQpnLKHIy3JzcvxVZU0b4NZMvl2q17r2IcH6DD9B61PzoNl+S9l9TXILH/I+V 1YkPdYr2SGLd6mDSmvMy6CQr5vBflMqdLznFHTdKxtCVn1Ym6VdxZx+rwfe+360fw+ck Q49hmqe+Cdccs1xR9YT2hl9Jsb8bp8FFwA7F84yW+2QSeQTQdRwl7aSVW/4yIfg5LXrm /dPGlgIDU5uuqUItGlhTUtuwum9wco0dOAI0CIodXgDLjAtQOQ5J/pm81u/lj171lWgU bEnw== X-Gm-Message-State: AFuF++nFdpGa17CSMIl6VJ2cD0XbLFyADm5P9LUtnapknUflLnu5f3+F AA+OH/NABxGcSM5lksGApyWiMGHLqVlwz6PrW57ZmgQhN4LDtr2aVgxUqXyhmegK9dAZtM1Nkth 5hvHK0Vw= X-Gm-Gg: AYBFou1kPGgihcrmNHfOUfQsf0OAdRt5xOI0S2G2OvWfYbWW1ZffzCci95WtimFGxEX Go7aA+vvk81h7m9CV5BUG1tRzh+kphZNsjgZ+QC5YdopCQoem9IraAJmv8mvelauLG9nsn4YebZ gEzEfbNZDIgGvCuT8JSdawEG9i72a+u2DMI4h1P+bG/jDLVYdVdOOKT+KEZSTj6y5CLncfX49zG rx91TAh5Fs51Y1L3YMccYsAb7iGaJjx69aTHyxoSxeVKcO6wjc95pRy1Oq3I9FR5Sw1q8CU1OOB OdHYaNS9gfyNLAbImkWHgVXfEfHy3h1k6ABNN2u+2SLxAkPkdWyH7A9l9FpnrT9yL48WxentNKx /Wtl+hfyWMcDDIrXZGSsq8yXzUtSzSIpShhNGMs2yMm7oh6JoWS/h1XJcEzewzX2zD7+wc//i1k 1Zhn1BulF9Eap6kRILCs2OdOQQpWa/LkfyNO9GIDYg1d9h7f2UqzxAWUNUbrTqUhivNLIDkMU4J cjzGcY= X-Received: by 2002:a05:6a21:3a44:b0:3d3:ae50:97cb with SMTP id adf61e73a8af0-3dd5f7adaa6mr13533016637.24.1789619341216; Wed, 16 Sep 2026 21:29:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 033/101] tcg: Drop division helpers Date: Wed, 16 Sep 2026 18:27:15 -1000 Message-ID: <20260917042823.542588-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619576618158500 Content-Type: text/plain; charset="utf-8" All current tcg hosts support division, so the helpers are no longer used. Signed-off-by: Richard Henderson --- accel/tcg/tcg-runtime.h | 10 ---------- accel/tcg/tcg-runtime.c | 44 ----------------------------------------- tcg/tcg-op.c | 16 +++++++-------- 3 files changed, 8 insertions(+), 62 deletions(-) diff --git a/accel/tcg/tcg-runtime.h b/accel/tcg/tcg-runtime.h index 0b832176b33..003c963bc7d 100644 --- a/accel/tcg/tcg-runtime.h +++ b/accel/tcg/tcg-runtime.h @@ -1,13 +1,3 @@ -DEF_HELPER_FLAGS_2(div_i32, TCG_CALL_NO_RWG_SE, s32, s32, s32) -DEF_HELPER_FLAGS_2(rem_i32, TCG_CALL_NO_RWG_SE, s32, s32, s32) -DEF_HELPER_FLAGS_2(divu_i32, TCG_CALL_NO_RWG_SE, i32, i32, i32) -DEF_HELPER_FLAGS_2(remu_i32, TCG_CALL_NO_RWG_SE, i32, i32, i32) - -DEF_HELPER_FLAGS_2(div_i64, TCG_CALL_NO_RWG_SE, s64, s64, s64) -DEF_HELPER_FLAGS_2(rem_i64, TCG_CALL_NO_RWG_SE, s64, s64, s64) -DEF_HELPER_FLAGS_2(divu_i64, TCG_CALL_NO_RWG_SE, i64, i64, i64) -DEF_HELPER_FLAGS_2(remu_i64, TCG_CALL_NO_RWG_SE, i64, i64, i64) - DEF_HELPER_FLAGS_2(mulsh_i64, TCG_CALL_NO_RWG_SE, s64, s64, s64) DEF_HELPER_FLAGS_2(muluh_i64, TCG_CALL_NO_RWG_SE, i64, i64, i64) =20 diff --git a/accel/tcg/tcg-runtime.c b/accel/tcg/tcg-runtime.c index 7c0aab98a80..77c4024148f 100644 --- a/accel/tcg/tcg-runtime.c +++ b/accel/tcg/tcg-runtime.c @@ -32,50 +32,6 @@ #include "exec/helper-info.c.inc" #undef HELPER_H =20 -/* 32-bit helpers */ - -int32_t HELPER(div_i32)(int32_t arg1, int32_t arg2) -{ - return arg1 / arg2; -} - -int32_t HELPER(rem_i32)(int32_t arg1, int32_t arg2) -{ - return arg1 % arg2; -} - -uint32_t HELPER(divu_i32)(uint32_t arg1, uint32_t arg2) -{ - return arg1 / arg2; -} - -uint32_t HELPER(remu_i32)(uint32_t arg1, uint32_t arg2) -{ - return arg1 % arg2; -} - -/* 64-bit helpers */ - -int64_t HELPER(div_i64)(int64_t arg1, int64_t arg2) -{ - return arg1 / arg2; -} - -int64_t HELPER(rem_i64)(int64_t arg1, int64_t arg2) -{ - return arg1 % arg2; -} - -uint64_t HELPER(divu_i64)(uint64_t arg1, uint64_t arg2) -{ - return arg1 / arg2; -} - -uint64_t HELPER(remu_i64)(uint64_t arg1, uint64_t arg2) -{ - return arg1 % arg2; -} - uint64_t HELPER(muluh_i64)(uint64_t arg1, uint64_t arg2) { uint64_t l, h; diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9a2626e9669..5577f14ef62 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -659,7 +659,7 @@ void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_= i32 arg2) tcg_gen_op5_i32(INDEX_op_divs2, ret, t0, arg1, t0, arg2); tcg_temp_free_i32(t0); } else { - gen_helper_div_i32(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -679,7 +679,7 @@ void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_= i32 arg2) tcg_gen_op5_i32(INDEX_op_divs2, t0, ret, arg1, t0, arg2); tcg_temp_free_i32(t0); } else { - gen_helper_rem_i32(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -693,7 +693,7 @@ void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv= _i32 arg2) tcg_gen_op5_i32(INDEX_op_divu2, ret, t0, arg1, zero, arg2); tcg_temp_free_i32(t0); } else { - gen_helper_divu_i32(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -713,7 +713,7 @@ void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv= _i32 arg2) tcg_gen_op5_i32(INDEX_op_divu2, t0, ret, arg1, zero, arg2); tcg_temp_free_i32(t0); } else { - gen_helper_remu_i32(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -1587,7 +1587,7 @@ void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCG= v_i64 arg2) tcg_gen_op5_i64(INDEX_op_divs2, ret, t0, arg1, t0, arg2); tcg_temp_free_i64(t0); } else { - gen_helper_div_i64(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -1607,7 +1607,7 @@ void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCG= v_i64 arg2) tcg_gen_op5_i64(INDEX_op_divs2, t0, ret, arg1, t0, arg2); tcg_temp_free_i64(t0); } else { - gen_helper_rem_i64(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -1621,7 +1621,7 @@ void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TC= Gv_i64 arg2) tcg_gen_op5_i64(INDEX_op_divu2, ret, t0, arg1, zero, arg2); tcg_temp_free_i64(t0); } else { - gen_helper_divu_i64(ret, arg1, arg2); + g_assert_not_reached(); } } =20 @@ -1641,7 +1641,7 @@ void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TC= Gv_i64 arg2) tcg_gen_op5_i64(INDEX_op_divu2, t0, ret, arg1, zero, arg2); tcg_temp_free_i64(t0); } else { - gen_helper_remu_i64(ret, arg1, arg2); + g_assert_not_reached(); } } =20 --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619480; cv=none; d=zohomail.com; s=zohoarc; b=jhsdj7c8zByQhVuB7hlYHFyO9gYzHYcZ8exZ89+0sWGaHcMZQOZIi1blQeMMg1sQlAbwqT3UlNP0DAHNJoWpd+XtOn68Ynetv6cNL8yfLAACDJ3QZzr0PzAYf6MQWQvt3gkzqYPrbrxRYdZDQyzZe0IFKOiZroNeClTQfS5Eygk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619480; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=wUOB4nTcF/QLG/rH/OOsYp6gOqeOoGHFogDGd5ZRpt4=; b=IZy/FgIPGbq70gmd8B+eHUMz83r+/+z7DbcrN7XX1z1W3kJnu3t2Q7hsIui6tGNkCjGbt8Rp/4RhI1p0Nm8hZdXjY0jQtdZjBgWkUP+X6aJ1JNvdELeo4yxzLHpqvfR5y7yr66jk3LsCRO5vDzp1IpW6UA0n4L75B89TtJsljlU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961948011142.82185078328939; Wed, 16 Sep 2026 21:31:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kJ-0003Hp-DN; Thu, 17 Sep 2026 00:29:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kB-0003Ee-Ft for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:09 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k7-0006qM-Ot for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:06 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc4cacd3409so389040a12.2 for ; Wed, 16 Sep 2026 21:29:03 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619342; x=1790224142; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=wUOB4nTcF/QLG/rH/OOsYp6gOqeOoGHFogDGd5ZRpt4=; b=RADSg0/uN7BQiemQJ1FPPmCqP6Pvx9W+YmxR5KNUWmDi+NdzoUUpIHmMk5eq/3FZ/K CAWopbkEjIHA2t8A/X2ZrstB+MQWRLWCDKVKgeTL7dyo+1z2VQDptL9FTjmh2+XhDTOV 9m/gRL282c9VcscxefIXqiPJ+jYb5l8ckXGdTEXNOyvylA9Llw5LJPil4RU2lPFE4rCt g0OjgcEB2fswiq4Du6Yw5hY2iZlybrVMvfOXCTTiA2UzInAdirg9d4hfQpdQsX4C6y0S pWgmwdM58dxaz8ahfKfAH0QtGg5qsgU7TB4uQgGmU+zoXnKS6CB3xSwDl7NNSTmMXTC7 VI7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619342; x=1790224142; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=wUOB4nTcF/QLG/rH/OOsYp6gOqeOoGHFogDGd5ZRpt4=; b=oEs1oVfvcUTysMbumkLcxEcQyprZKI9qWmAGL68usHgTcv80qTWFIsJRxnvX+q1JI4 W9Nz/sSBlSyLCVtjYAPGdz5MVT2yudLU6On7Fa6TTmt3L94xedBnWUOyrEEu+gf3Tj71 +W8GGO2ZnCaCE3dZ1JZ+/W5DW3MttbAgLMRHbwhiXw3vnatWaJQzFlhNyBxvaWWkgB49 OusvKvnwhkkFx89WMvN2GhuWfrrXHhCTZFo2oT1DtmxOIgglsS3DaVMK6aH0Xs2elwTA 5hDZAl81HXlfYFUcy3OReTKIA2BZaOJCzhiWZhNUsrs5uwAR9AP2gs2Xi+I4zIPqSbfm IATg== X-Gm-Message-State: AFuF++m/P2RakdFk253FXDg9nZau9C0nJ96BOu/GRKzgDTwaOZrsjWcV e1EUCJv4dzuUwg7La6KJsrcrb+QWmFlJHzqHmoi9mMduDC9EPLbETC54pNlvdW451p3AaSP8JmY RhkCMyk0= X-Gm-Gg: AYBFou2u8CHfozCbliZM6yBj4QS3soUJh6sV/81I+FxvJIznQYEkGwa98R/xG/MKUCy DxlKY8vJwAyPNJ0M2FssuskvO1WnQA/yL2kst6ZMOJrA7SMRo4kPIjS4pn9HjN+g/dvOLC9uo6d JcohDiAcZAHSGCdbxouOY+Ero4vd90eMSPq3g6Ea3w+Xy2HbVN0DCpxfg22z74+jTvJUQUGltca sLrZxl2JmnFjaS8BPyg2PYcDUZDLhwlRHVUagLt3Pg0mpMlnTxlhdYkW4za6MLrL40Rbdo9JkEY qjDy5gRTdxBfvFPWh70Emn6kYSzgLxzHNHlwNeNZzw3jVp48uwui9jb+I637ksx6ghEN9lz3R+X txn+xwRKdycuK87jMGZzZ3L7wdkqb4cOVj8FLmX5s4YIWE/VonIJ9RQihLB3jWPgPvsc/uU56ar +RdQcAeo/6Tbb+Q+RAArxgBuuGcNMj+Zu8V7u86J2aW0KByP4+Lp0Ugdu0hZs61+Buh5HnFQcAb 9GVNGPg4zjP9+lkLw== X-Received: by 2002:a05:6a20:6a03:b0:3d3:ae50:97c8 with SMTP id adf61e73a8af0-3dd5f7a9bf4mr12779508637.21.1789619342219; Wed, 16 Sep 2026 21:29:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 034/101] tcg: Generic expansion of tcg_gen_div_* Date: Wed, 16 Sep 2026 18:27:16 -1000 Message-ID: <20260917042823.542588-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619482326158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 51 ++++++++++++++++-------------------- 3 files changed, 24 insertions(+), 30 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index a8dffa7c5cb..2f8a9f48eda 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -205,7 +204,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 20007c90680..473d472823c 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -5,6 +5,7 @@ DEF3(addi, TCGV, TCGV, TINT) DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) DEF1(discard, TCGV) +DEF3(div, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 5577f14ef62..ebacffead4a 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -121,6 +121,14 @@ static TCGOp *gen_op_ttii(TCGOpcode opc, TCGType type, return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), a2, a3); } =20 +static TCGOp *gen_op_ttttt(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, + TCGTemp *t3, TCGTemp *t4) +{ + return tcg_gen_op5(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2), + temp_arg(t3), temp_arg(t4)); +} + /* * With CONFIG_DEBUG_TCG, tcgv_*_tmp via tcgv_*_arg, is an out-of-line * assertion check. Force tail calls to avoid too much code expansion. @@ -451,6 +459,21 @@ static void gen_discard(TCGType type, TCGTemp *src) tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); } =20 +static void gen_div(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_divs, type, 0)) { + gen_op_ttt(INDEX_op_divs, type, dst, src1, src2); + } else if (tcg_op_supported(INDEX_op_divs2, type, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + int width =3D tcg_type_size(type) * 8; + + gen_sari(type, tmp, src1, width - 1); + gen_op_ttttt(INDEX_op_divs2, type, dst, tmp, src1, tmp, src2); + } else { + g_assert_not_reached(); + } +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -649,20 +672,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_divs, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divs2, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_sari_i32(t0, arg1, 31); - tcg_gen_op5_i32(INDEX_op_divs2, ret, t0, arg1, t0, arg2); - tcg_temp_free_i32(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_rems, TCG_TYPE_I32, 0)) { @@ -1577,20 +1586,6 @@ void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 r= et, } } =20 -void tcg_gen_div_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_divs, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divs2, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_sari_i64(t0, arg1, 63); - tcg_gen_op5_i64(INDEX_op_divs2, ret, t0, arg1, t0, arg2); - tcg_temp_free_i64(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_rems, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619974; cv=none; d=zohomail.com; s=zohoarc; b=ZA2uEfI0vfuDYfpuyfu6cU2uHzcK8A8eKuIm3/n3sgze+3cXCLGzeDlebmokUrzGH40darg8tcpgbwD5uTBFLgCaXrpGD8x/mzW1W/E3RbaLviz6HrfMNc84FYBjozQTwiQdwCuW3IpS2WE/HW53buGI9aWxRRVeRU0Ua7xWWDM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619974; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=gCagFY9mrpszpvLeVnyj7Wim+i1wybGsO4ncoXWiXzQ=; b=axnBdXqGhcUn7LmNlIDPSk+3MvuOg8n89WIL7iC9nrw84Jz6tA+381fruXneKpMlCRwqlsIoSKKug/MudKeXgToyBf4SsToc9+ffd68Fv55RjafT1rNv9j18x0idjmSzdgChUcSXNT6ezLh/deZTelk/Iv1A7aAwu3YRYtsC/So= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619974132261.71822223750405; Wed, 16 Sep 2026 21:39:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kI-0003Hk-O1; Thu, 17 Sep 2026 00:29:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kB-0003EW-F1 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:09 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k8-0006qh-Gb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:06 -0400 Received: by mail-pj2-x0f.google.com with SMTP id d9443c01a7336-2d90ba1d807so4759915ad.3 for ; Wed, 16 Sep 2026 21:29:04 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619343; x=1790224143; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=gCagFY9mrpszpvLeVnyj7Wim+i1wybGsO4ncoXWiXzQ=; b=OMPZIZ9gBmkSKBIQbE/s8vGLAT92yAwZGWtKlzQ43nTVHz6jZtwUEQQB2HZkvVKZPW xlzWtH4Xtq8SNgv8LUF24YX9tBzQmehSm3QBN/HdGzbjEje9SvRZnGM7ieuZhlCeb/95 ZVj9QuQC8Tas4ll4w75gmQU2n1bZEp/East2AbsUUMYXZjz5ZwGsic557gz4I3fUis3X ISWpE0ICA7qrrOlB0i0MZ9HUuQKxsoQ7NKA9/i+yBLtwAuS3odUZo7HGo9ZVuC3NE+IQ KqVZ3+qcQwORK6P3KLxLUo9EwjlIaHmE5CHHMHATJfnfYkpzS9n18GnsGhP7mUWWhzch CuOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619343; x=1790224143; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=gCagFY9mrpszpvLeVnyj7Wim+i1wybGsO4ncoXWiXzQ=; b=SKIWU1IvZ81eAnnmPdNlYih6PLVEflRadWqLm8N0vcb99NhV+NuaaZWjFbaKsjsttV 6p7GotYZAfWgAhKme+cBm8mWeWqaalsLebwI4oaY2TeLyRWqz8pfU3fEVC+POlZHQgHF sFO4ELYIhQ1ys7FqhxXtx1u7D2s7DoR3ZvZhw6H6pM52Kz4dg4dwxrHbz3OnOkHHc0al JWy4yWKqgJSDWIyM1FvZutzVs7CRa7OVdRl5vBIL+IJSqNEgePxcwCUZWWiflfoAL2M7 BfoX6sEx8lk/ADpxVv7UsK3Ndr8Xg0Q4pHZym7m8YiEDdUAHChKlidGFsW5HCdCfZYFI bmtg== X-Gm-Message-State: AFuF++m501PISrg/xv37OjPbBGDYMWRSzFy04ELEnXle3lMHgiROvXMz bdZiTK8uiNq2UP5gp9kUhqB6cKJxYUDXZ4kDrtU55pmUM27mUpTW+vyO2x6aCDE+lWBJvJE3HeV d9rbDVgE= X-Gm-Gg: AYBFou1OdaNnyA1OeM2bD/t11kEhxw8GOYgJEUR39Kz1ho+Vg2H6dUxIG3beuV01GVg oiZtU7A0H3JV4eGKrRz6QYKkgPMc4q1YICXuuiqmFpFz7CL2jScsiAEMyfXOuvCTP40HvqGxvfu l7oV92Tf1gbfVWH0KzfV3s51IEkm1GW9cs9KXPcJrfQkQTmNxc3TZIx5lJWp28Oypy5YWwNQH0D +RiuHLQw+BugB/vU7pdTwUIzE/aleaWtDPgf3NLlLhpemM8+cwLIV9o8MEZCCU4bz60kSrFKl72 vLyhl16/nM3Jt9CkjeY/ZnTMSCX3rsTEoCode3LzpucuIvIej4LE87bm5GWq/wNhkXab+EWtXZ9 18WLgFMs57TiG3B6rzAmlJdrqF50ij+09Ns+SED/WoPXrshSM3fL3TSIQIONoltOrV6GdvsROg1 ZLGB7jdSqgwosyFgOKovE//lTrnY3mbbgJvqymBmc4+N5lF+1fY/u0tZGfYTjbsKvVs3RRdu7+9 1xUf9M= X-Received: by 2002:a17:90b:3842:b0:39d:f6a6:60d8 with SMTP id 98e67ed59e1d1-39e1e23e8bcmr11197278a91.3.1789619343135; Wed, 16 Sep 2026 21:29:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 035/101] tcg: Generic expansion of tcg_gen_rem_* Date: Wed, 16 Sep 2026 18:27:17 -1000 Message-ID: <20260917042823.542588-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619974535158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 61 +++++++++++++----------------------- 3 files changed, 22 insertions(+), 42 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 2f8a9f48eda..6223d46b199 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -204,7 +203,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 473d472823c..67261d12741 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -14,6 +14,7 @@ DEF2(neg, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) +DEF3(rem, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF3(shl, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ebacffead4a..8ec4e38fae2 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -533,6 +533,27 @@ static void gen_ori(TCGType type, TCGTemp *dst, TCGTem= p *src1, int64_t src2) } } =20 +static void gen_rem(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_rems, type, 0)) { + gen_op_ttt(INDEX_op_rems, type, dst, src1, src2); + } else { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_divs, type, 0)) { + gen_op_ttt(INDEX_op_divs, type, tmp, src1, src2); + gen_mul(type, tmp, tmp, src2); + gen_sub(type, dst, src1, tmp); + } else if (tcg_op_supported(INDEX_op_divs2, type, 0)) { + int width =3D tcg_type_size(type) * 8; + gen_sari(type, tmp, src1, width - 1); + gen_op_ttttt(INDEX_op_divs2, type, tmp, dst, src1, tmp, src2); + } else { + g_assert_not_reached(); + } + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -672,26 +693,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_rem_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_rems, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rems, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_divs, t0, arg1, arg2); - tcg_gen_mul_i32(t0, t0, arg2); - tcg_gen_sub_i32(ret, arg1, t0); - tcg_temp_free_i32(t0); - } else if (tcg_op_supported(INDEX_op_divs2, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_sari_i32(t0, arg1, 31); - tcg_gen_op5_i32(INDEX_op_divs2, t0, ret, arg1, t0, arg2); - tcg_temp_free_i32(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I32, 0)) { @@ -1586,26 +1587,6 @@ void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 r= et, } } =20 -void tcg_gen_rem_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_rems, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rems, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divs, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_op3_i64(INDEX_op_divs, t0, arg1, arg2); - tcg_gen_mul_i64(t0, t0, arg2); - tcg_gen_sub_i64(ret, arg1, t0); - tcg_temp_free_i64(t0); - } else if (tcg_op_supported(INDEX_op_divs2, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_sari_i64(t0, arg1, 63); - tcg_gen_op5_i64(INDEX_op_divs2, t0, ret, arg1, t0, arg2); - tcg_temp_free_i64(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619973; cv=none; d=zohomail.com; s=zohoarc; b=ELMH6pS+vrG1joDZL1f9rmxuwXzitXtrEqLW69zgwSYr+d7pNzKQzpn9/Hxz8J+8gZN/UgEp/ssHz1ovlnSqlJ2neBS9BlNylIoztKdzgfd38PudKoTVEknFkYBMvns79YMyDNdpaDJWW6VXhsTFZvd2t1keqR4ObfiygcgcVW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619973; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=+Z8XRA5TTDfutp2SRTCbuug1pU8X6pmV724bFSBJdJ4=; b=VxIjNhAAEAwIQrTY0mx7hqediqGbBi5vagTmIoROJ04k55e/g+gcGYmM0XsewU67xuLiIRH8U9Py40vS05nlNAjqmp/wNSqrHtxEJDYItTettQBEp6DXbn/LYJaJMJasOCKNfOkL7RTKEMolSckFdGpHdgnGQjeGEuicEeABE8s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619973653983.4000442198476; Wed, 16 Sep 2026 21:39:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kI-0003Hi-5t; Thu, 17 Sep 2026 00:29:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kB-0003Eo-Tb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:10 -0400 Received: from mail-pj2-x0e.google.com ([2607:f8b0:4864:39::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73k9-0006r9-Np for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:07 -0400 Received: by mail-pj2-x0e.google.com with SMTP id 98e67ed59e1d1-396ccb1a990so323974a91.3 for ; Wed, 16 Sep 2026 21:29:05 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619344; x=1790224144; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=+Z8XRA5TTDfutp2SRTCbuug1pU8X6pmV724bFSBJdJ4=; b=g0gPWYwtoQvOixYQ4hdLxa5p4VOdM44VBExRLJ21iK58mISyeKOuGxc1vA7UUl9RQN ERcuenIVggsdxT3r0ARNxmBpXUB1DsTc/lClOzx8+UpWtOH/xBy7MAZt5s5oY48jDp0H 9tXZCI6CISytXyFtnIkK51Q4cmJSRSK4UAXBZdoX9P5qDw3py4t658NajL3IrxVAEWPZ ufrIcwRbh8NX097UsROEZPI3IALpdp/X8aYiXcAuJsWqwPK/EPMPZ0IuMwv8s1g2uFlP 7B5rzOYRTPL2zVgkR/eLVEjUaervgeR4RXhjXkOVXApOOOlZ8m8jIySB/Dqwh8M44rnI F4Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619344; x=1790224144; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+Z8XRA5TTDfutp2SRTCbuug1pU8X6pmV724bFSBJdJ4=; b=2PaBXzoCvAdIoooa4Zq0+lOxGccKBSQQiTRasGUTlpe2KwaYHm9Mday/ZpTN3eXWWt w7s/bU6ubVmBxqbA6rsEVNctMO0ANZSEJLpoc4uv5em3R910/E9HUr6IywB82gMFUX6a d6L1WDy4g0vjAMN9rFLnIxK6JlOGROem4QKLREU/87flVrAv/u5atCvPH4yR3A9FI2KE ImUnWMLr95dkCJ46DfS4S8d6gpecmY0D8veaWbOFr7hAww2lXEiQGbq064nJOpQg04oQ 0sUozbUVCs/fN0G3Z4Q7mOk4pOJpyhdDsAOFQ11bxnyXh3hje+mDMk3FsbTouBcEkk7i WbxQ== X-Gm-Message-State: AFuF++lzDHcqLq5CzLut8+Gy1s9NA/t8OFbnWEGPv6f0zmBplfGuhmjl Z7DNLoRfqtS7VoGggF+NbBdwJdHhPMLOTa9dzdE2sCV3iawn/IbMuWFXtUwemmx+1M+bstINnEC inHX4sd8= X-Gm-Gg: AYBFou1G9oZt2KKmY2EOcgogQdmNmO1WZ39usHqizsx7HnUzhCGIXtsWJF7QFG6SSDU EfnX3vp2Phmuz4WAkPvaNrf7MAiinUMdR0O6QkL0cLwfg0GXksF42mce/bDlX5pUyWTI3F+tec4 t42IOhhO8iuegiYX7h3T+OdVsO6ktTGchxc64bXzEliI+6v2DGmUWO5VeaOZde4q9LedAP08KjA EbdgRaN0j8m3aG7rkF4M13z+eXFJ8M0F827ymedL8wwvLNz6g6u624PEkEuuHruyKpy6eIMTcjZ KNpWVLCjO2EndJYarD6zoTXanbhxbEp6J7JtOuRA/5diAtNYGzJMrUi+nLIYN8ulFC+e9oRGNuY biV/XHxhLdrRBVi9r05Hr1VJHqex/f7KuIJwgF5o7UG/ZggZtwL2/YUESlUwtBt6W01kDRC7xOP MTXpqCEhZImiXQ5MY9heZoffAVgvMoNF2/MXIp8qNImmk5pa4nQr2ccmW0Bp6sVIx4TLgHzx7o1 J6lCuk= X-Received: by 2002:a17:90a:290:b0:39e:2f57:67ca with SMTP id 98e67ed59e1d1-39e2f5848c2mr4729416a91.0.1789619344098; Wed, 16 Sep 2026 21:29:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 036/101] tcg: Generic expansion of tcg_gen_divu_* Date: Wed, 16 Sep 2026 18:27:18 -1000 Message-ID: <20260917042823.542588-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::e; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619974650158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 42 ++++++++++++------------------------ 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 6223d46b199..05b4bee34ce 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -203,7 +202,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 67261d12741..e67f11176d8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -6,6 +6,7 @@ DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) +DEF3(divu, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 8ec4e38fae2..9bc7446915b 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -474,6 +474,20 @@ static void gen_div(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_divu(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_divu, type, 0)) { + gen_op_ttt(INDEX_op_divu, type, dst, src1, src2); + } else if (tcg_op_supported(INDEX_op_divu2, type, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_op_ttttt(INDEX_op_divu2, type, dst, tmp, src1, + tcg_constant_internal(type, 0), src2); + } else { + g_assert_not_reached(); + } +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -693,20 +707,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_divu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_divu, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divu2, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 zero =3D tcg_constant_i32(0); - tcg_gen_op5_i32(INDEX_op_divu2, ret, t0, arg1, zero, arg2); - tcg_temp_free_i32(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_remu, TCG_TYPE_I32, 0)) { @@ -1587,20 +1587,6 @@ void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 r= et, } } =20 -void tcg_gen_divu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_divu, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divu2, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 zero =3D tcg_constant_i64(0); - tcg_gen_op5_i64(INDEX_op_divu2, ret, t0, arg1, zero, arg2); - tcg_temp_free_i64(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_remu, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619686; cv=none; d=zohomail.com; s=zohoarc; b=iwaNYnxgDTtA3no9ZrikOXkf7iJ5ip/o3n+csc7utFI42P0FaL1MnNUMib/3oS+wZAtTER8gcljYtl6sf5OX+KqVOJZosEBwEeR3M0Mt/hX1xl9la4S9x1Y7WtB888Zj0+6HBpwc6l6wOQ/CRDczPOBycaQdQpDBKKLgquRUVik= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619686; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=HTqb6Ytqyni0MZUbHkECQVzYmI8HSCtGvwg7ShWDocA=; b=HLmdqhHlbP+9eekG5dc0M4Cz204ViyA2GGMtmc3X8RuJHb0040wRTG1Pq6APUsPdzzV3/ywydCx6IM8b6DHLM7JMll66ql/OJsuP9gK0RdC2MZpn7FXzpbZH/6L3F8SR+/AyBhi4z0OIwGj8bd6u8tsTMzLpDkAmMYg7YLrbyx8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619686126549.0608849702941; Wed, 16 Sep 2026 21:34:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kK-0003IF-Bo; Thu, 17 Sep 2026 00:29:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kD-0003F2-5w for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:10 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73kB-0006ra-6c for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:08 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-8692a856865so357789b3a.2 for ; Wed, 16 Sep 2026 21:29:06 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619345; x=1790224145; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=HTqb6Ytqyni0MZUbHkECQVzYmI8HSCtGvwg7ShWDocA=; b=FZAQYZP4X7fq0anKJlaGK47GttE8KTQ3hMGvwZ9M3FLYMfkCoy5W/FQB2GtJk89ErC Nk31kC4VnQCEIGvZLOGvDdQvD8cJLEC7apjReP5TEhOg7dOVWLriQAY9i9VddrLbojTS LWTxwSzKk1v050b49QZQBiWLBAb2mhdLgd8KjZlWUMiAb3fyU4oqKWmfVNMAFNNn4RBZ dWpkvvOia/4gPipRUgjjPJGB4AE2QljWH74XaDkWOW3PdQyDeG+G7XxXQTsLcl0US1Dt oqxvPjoaV2J4WlVPpWahrbtTrYtq0gMtRFWg+z1RIoRffe/Vs4MK+ubPYtoZzYvy9J8c 0iTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619345; x=1790224145; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=HTqb6Ytqyni0MZUbHkECQVzYmI8HSCtGvwg7ShWDocA=; b=ff3FrV/anEDAiFHetza9z+A20I1VlQcyi5gIYWuqVwcGjl+qBMB0A3Jf9kpN1sSnK8 TwUHIQeYfPjAcAFIXgsPOjo6Ks0t3kPcD6Miw24cn6D6fKd0icMJrAOipk35DSVP+VxP ZpOK1LLIbldd0E9G9wBxl1TzgNuIboKF2QQxtNI7iZZ1hAdHgamZkRWcPO5FIaES/hLW ywSwtypCD3xDf7eYHADGdBF7/+LRBwPX1/lOtvhyD4sg9m/iYMQBA93qkCDJWBoKi4WM S/ZMTHQyHs6kBCv2tYy5Kd2pyxCPDaI6o4Fuer8mKRDVsJrt23HtqZaujF14beltSKdc BAcQ== X-Gm-Message-State: AFuF++k8XUxGtCBDeUv47dtaCIqsYC4+GnQnGD8zX6RMFqGjhkY9Cf0N wwH8+KQBoXvkMamWfqzczLkkJtWx0ncEj5T9MQ0HlFGT60jL1ChXmYXqXXI/3k965MyGgDAkYav g9eZwZV8= X-Gm-Gg: AYBFou2jkwwUOEThHDd5bZYsSEB43CzdjjR+9fz3lARS7wTV387KmxuT5Tet8z/7tTS +95UJ6EC0VvQYOy9FayXEgUWcdoy/J89R5F4iTWdSfQRYG0NeVN2QcfkUEXTqwaJiiRuo/DI3Kd VdxJmiaE/COIsLn5HC8b6yYCZZL15W9kNNgRlkds5dXIc5XMTTl5c1o4+AMPm8mFsmnL68O37ah m3eRanbfKu38ZuF3fUYb0uV65qJCHBHUWKi4EQj+JQWV2Me6QPJpuFMsnvFZLYYzGjrFGTItU4R xXsNNflwKggyOZXEQ9hMI3CUg/58nvZA0IsWYtFOYuTFO1GVwRM6d2hi0OhbbaMD/kiN3e7yadm BATGUwiaam0HVA3MSMw2f2znt+6cIrw+xA1iJun0MnxRI1DCldetiFP9XmpW/6RsQl4ogs5pMfA Ds7EoP+XETGHKdicyS1YycWrjxDW7kmDixGPnXPxGFq8pToirGvE+ahveEes88hbVhfXdz9XWXc tcKZLk= X-Received: by 2002:a17:90b:2648:b0:39d:f70f:f034 with SMTP id 98e67ed59e1d1-39e1e2f4d41mr18473959a91.10.1789619345293; Wed, 16 Sep 2026 21:29:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 037/101] tcg: Generic expansion of tcg_gen_remu_* Date: Wed, 16 Sep 2026 18:27:19 -1000 Message-ID: <20260917042823.542588-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619687129158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 74 ++++++++++-------------------------- 3 files changed, 21 insertions(+), 56 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 05b4bee34ce..f0572df01cf 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -202,7 +201,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index e67f11176d8..cffbb4d08a8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -16,6 +16,7 @@ DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) DEF3(rem, TCGV, TCGV, TCGV) +DEF3(remu, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF3(shl, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9bc7446915b..4b94bba91f0 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -236,20 +236,6 @@ static TCGOp * DNI tcg_gen_op4ii_i64(TCGOpcode opc, TC= Gv_i64 a1, TCGv_i64 a2, tcgv_i64_arg(a1), tcgv_i64_arg(a2), a3, a4); } =20 -static void DNI tcg_gen_op5_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, - TCGv_i32 a3, TCGv_i32 a4, TCGv_i32 a5) -{ - tcg_gen_op5(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2), - tcgv_i32_arg(a3), tcgv_i32_arg(a4), tcgv_i32_arg(a5)); -} - -static void DNI tcg_gen_op5_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, - TCGv_i64 a3, TCGv_i64 a4, TCGv_i64 a5) -{ - tcg_gen_op5(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), - tcgv_i64_arg(a3), tcgv_i64_arg(a4), tcgv_i64_arg(a5)); -} - static void DNI tcg_gen_op5ii_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, TCGv_i32 a3, TCGArg a4, TCGArg a5) { @@ -568,6 +554,26 @@ static void gen_rem(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_remu(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_remu, type, 0)) { + gen_op_ttt(INDEX_op_remu, type, dst, src1, src2); + } else { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_divu, type, 0)) { + gen_op_ttt(INDEX_op_divu, type, tmp, src1, src2); + gen_mul(type, tmp, tmp, src2); + gen_sub(type, dst, src1, tmp); + } else if (tcg_op_supported(INDEX_op_divu2, type, 0)) { + gen_op_ttttt(INDEX_op_divu2, type, tmp, dst, src1, + tcg_constant_internal(type, 0), src2); + } else { + g_assert_not_reached(); + } + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -707,26 +713,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_remu_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_remu, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_remu, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_divu, t0, arg1, arg2); - tcg_gen_mul_i32(t0, t0, arg2); - tcg_gen_sub_i32(ret, arg1, t0); - tcg_temp_free_i32(t0); - } else if (tcg_op_supported(INDEX_op_divu2, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 zero =3D tcg_constant_i32(0); - tcg_gen_op5_i32(INDEX_op_divu2, t0, ret, arg1, zero, arg2); - tcg_temp_free_i32(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_andc, TCG_TYPE_I32, 0)) { @@ -1587,26 +1573,6 @@ void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 r= et, } } =20 -void tcg_gen_remu_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_remu, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_remu, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_divu, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_op3_i64(INDEX_op_divu, t0, arg1, arg2); - tcg_gen_mul_i64(t0, t0, arg2); - tcg_gen_sub_i64(ret, arg1, t0); - tcg_temp_free_i64(t0); - } else if (tcg_op_supported(INDEX_op_divu2, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 zero =3D tcg_constant_i64(0); - tcg_gen_op5_i64(INDEX_op_divu2, t0, ret, arg1, zero, arg2); - tcg_temp_free_i64(t0); - } else { - g_assert_not_reached(); - } -} - void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 8); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619486; cv=none; d=zohomail.com; s=zohoarc; b=mTnPe5fhW21r8npMGyB40Q3BoP2Cg76fkJW0RQytP7ekXtf7wdgJxq5Gn5kneY+mskPXCU/kAV64nhqNYMLISDL95rSnvBRFcl1DQw5KJkLR75fbKi0Ut4XB3GIS2yHl0oawDbS9MgHfydgoqWUW0WJSAxMFj5oW6meTaDSji8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619486; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=vQOwEqLDGgfElesYbWjWHMNbsHHjSy84xRakyQG+gX8=; b=lnhSGMog+EA9hnVu0Ma73mATnqkxVdAYdC6UD58bBbc52iEkLmT2h6maAjvTBp/G0ZNkRRVSdksZ6NYYmkO9dt98pnC8xH1mOlXwElDzOxV0DaS/6xtNXIteoWZ+xskdhxtHcVAOuI+/e/LeMl4pVWYrnIEFbzyCrkDN3rJsAVo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619486974665.8781825125812; Wed, 16 Sep 2026 21:31:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73m5-0005T9-GD; Thu, 17 Sep 2026 00:31:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kD-0003F7-CE for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:10 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73kB-0006ri-OD for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:09 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccc02279so328961a91.1 for ; Wed, 16 Sep 2026 21:29:07 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619346; x=1790224146; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=vQOwEqLDGgfElesYbWjWHMNbsHHjSy84xRakyQG+gX8=; b=wNbhebSfrlFMU4cwm17ASN+R7DtycFCAVoUohOpqLYSD3PUgntVwY0fAiEJe6SE0W3 A/yBzuIImMlxWR/xckJkrbfU6HAkZ1JgJgSAuKBSzB/xBSaTWSUXPP4ib4tdlnTEX6q2 ljsZD02nzhNhbA7VJuq7PtJwWtcUYuO0IYLK5hr8oefWhpBczKkr9aTA15SrfF/NtMRG sCqMnhm3xkanz7RdO4JSBtndqLrK3GGLf1CWPodY5bGvIi0TghLXVq65+cdI+7g1BnAf 4+VAAAgG8zPmHd3akjQH0ZEsPtS+uuFUj9FsacdwqFFT+XK0I2s/bKcuC8bsZoJim7EF wAJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619346; x=1790224146; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=vQOwEqLDGgfElesYbWjWHMNbsHHjSy84xRakyQG+gX8=; b=jCsvnJciMmqeBm1tIQe7aGr3u6pJGdEGWOlE419fVqDdD8PF8JCIglZvckhF/uOu2R LeVNeObJ0c0yHO/lLnLPf9buEnotrGNwDga42dCVbJGpzOShTd16tFQokLW+Cvo97Wcm TAYbatwKaqAW1SsvV0ydBBe5T/7d+PTctrkPE1hU8gWc1+V6dtaXpRfCmUXfaatfXFV1 c7mboqsgGnM+NahJrX7kv8hc0OQmGJ2Ad+iWLGHIA54Yt0WB0kjyE83WALLkiJkX4EnY 08Ldy9zSvO9NB24qJcXciGVujJ+8HBzG1mfQVhJXoE5vKEHUmX6QdsHsRX8vEcFI/WZv tpcA== X-Gm-Message-State: AFuF++lwQKOaag8VcblHY5lT56kTLYrArbLGuYaFZPvFu0PQnHIJ6BXZ RMdaEKvrbnl1hiVyOBFELNzyWjiTTu/bwNdC0gfYyINoJfAwth0Y7B6M+Tx6bnFEzpNNP4G06R3 w4rWBZk4= X-Gm-Gg: AYBFou2PqkQlxGHL2bFktb0DroMzGgNfnAXk/c8f8IrvviCe4aIBkuQBncbX3fRs47B 0ZkZ0qZH/0zuQKVhzMDy1W/g330qIixdSDMzWbH2m67xdE3pVG+Dxx8O5zU84ao0Lp14+p3OptR E1QYL3Qtar+I0G4iRpALKR4Beh2YqaQl3nOPW1xLYf20pogCg8BRF/0HDBBtGuNdPtpI7Zg7Dv4 B3mYj5/ztDq/9DXpJ7oBxRWO0c+gFuBhSJlAw/J9hZ7rHa8QPaWLcox8GR9B9LV+bb9NVSgcqJ5 KlOzhz4PtLtlw4wTKsmv+4PxWDszd9JnKHgI7gmskfoPkHGA3IASlDD++dsvGgIVDtrbUOjnckd 8vE+QBA5qUHcekE5E9bwejB3PKHoxazt2lUIXGhxHbL37USNu6ZrmaZ2q7xPARplY/Vl2L3Mn9g sqU+94UkzIvy4XOPshzNBDSZ2Nt1KciTr3b1Z15iRHiAPIKfvr5j7manyoODGK9kOwyyQtqL0tg Jl2PhM= X-Received: by 2002:a17:90a:1c97:b0:39e:1fb6:9659 with SMTP id 98e67ed59e1d1-39e1fb6994cmr7689976a91.22.1789619346328; Wed, 16 Sep 2026 21:29:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 038/101] tcg: Generic expansion of tcg_gen_andc_* Date: Wed, 16 Sep 2026 18:27:20 -1000 Message-ID: <20260917042823.542588-39-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619488275158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 36 ++++++++++++------------------------ 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f0572df01cf..7517e8d9d9e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -201,7 +200,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index cffbb4d08a8..b05a1782513 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -4,6 +4,7 @@ DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) +DEF3(andc, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 4b94bba91f0..262d2cbe2c1 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -440,6 +440,18 @@ static void gen_andi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_andc(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_andc, type, 0)) { + gen_op_ttt(INDEX_op_andc, type, dst, src1, src2); + } else { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_not(type, tmp, src2); + gen_and(type, dst, src1, tmp); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -713,18 +725,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_andc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_andc, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_andc, ret, arg1, arg2); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_not_i32(t0, arg2); - tcg_gen_and_i32(ret, arg1, t0); - tcg_temp_free_i32(t0); - } -} - void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_eqv, TCG_TYPE_I32, 0)) { @@ -1772,18 +1772,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_andc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_andc, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_andc, ret, arg1, arg2); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_not_i64(t0, arg2); - tcg_gen_and_i64(ret, arg1, t0); - tcg_temp_free_i64(t0); - } -} - void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_eqv, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619488; cv=none; d=zohomail.com; s=zohoarc; b=gQnVVFCt12AvZb4V/9vaKYf0jMJmdOhGJ4g/g+lcL/uaIkUyCVzhgyfchuuXtnCf9zSH4Fa9mP/H1ykDToVJK1nuY5c8XY64EcQl14UgOnIiqT50XyuX3fYI/3gLcp5HJr1qiYqWQwCuxjumMdb9zgZ1Xxafphp7uNow/xanxZ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619488; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=5YEY9qk956Hy3+jdNRXDUZWYX8AsPshUstXhFW4DTSY=; b=GW/b4LeubYFvrTo870UHBliBD5yWr1tpK6ihOrxcUixbEHfnAPHv5K4dRVODpoVqW9Kt0CLPryo0Io6H3ew87/UTh+VaRO1EmXw7V6Q/TVEfl8ethKgHWd+clz/MCC5MnljeyZylGv1VS5hdzqGRSPjPoSPvX3Dstk9Mu/TNxBE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619488652165.61173822654087; Wed, 16 Sep 2026 21:31:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73kJ-0003Hw-PH; Thu, 17 Sep 2026 00:29:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73kE-0003FA-Ha for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:10 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73kC-0006sI-Qb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:29:10 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4ae2cso333330a12.0 for ; Wed, 16 Sep 2026 21:29:08 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d771e5sm10458984c88.15.2026.09.16.21.29.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:29:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619347; x=1790224147; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=5YEY9qk956Hy3+jdNRXDUZWYX8AsPshUstXhFW4DTSY=; b=lQOxS8D05i6NCTLB3jtvAjYgC8ZX3EdFEaPes65s+/sin5Onwb2LJKVayeDy8pr+tf HUFgYoeP+8K43Rl3b/Q0vBY+zXLnw10LBGzlaHHTv3QMm7ubgpfiRLsZab14YqOg+T2R LDcid0vTnJGROeh6HLkgO6Lux//Nn59wL16yYy6jVbdlr2t1MxMAZFA2OtVvLVWV2Gh6 hebl+j858sqMDZFX7NWpiofXU639LYLaQ1FQSIApP1Xl+TEyC59XFBpwhI3ENW7WClbB AzRfWvf2w7iPQdwT1mFePc7P7Yb7OKIx6KHc8fDIhWaZYGmFXadajjqwa14cyk2za5pj ln3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619347; x=1790224147; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=5YEY9qk956Hy3+jdNRXDUZWYX8AsPshUstXhFW4DTSY=; b=a6anzWpyJV4wlDdqgmWVjcvXFrRrwp9Mi4i552ruwk+1yADNTYnH89IxMv+ImpEOY/ rQAd2o24PlUMHOXM674zcr/nQTGfCPVMp6cd3Vgg+kJ5IF5CWBYHBOzMHf79Tqm6mNCK 3OsG+to9+K5ozWXi4tb6qnJaeHho6FxcuiSakJMy3ML4oLBk3P1uAxggOSrhSDbBXPTr +VutgPD3JJ9YLAzdDfr+ynbdTPXMZp21gn5luMFgeG2japE9J7r40pl7PzPKaRNxh0gT +aMtNu7qeEQ9Q+vO/8XSxmcbmZOzzGMkVLr2/ZhECEpN7QptmHxibodARIoI3TQb/Fj2 OKbA== X-Gm-Message-State: AFuF++kkO+g7sdu90jjLHqeggdMhW+Uyt7YJ5rd0H3IlosA9n7Yj4K7S OuXMrtW+b2z6EaUJS7X++oPH3Of4JpLriFvuZPt3xMvAwHPpb1DIoUdXI7sYWsW5ftuNOjwAzWh Npi6yg2k= X-Gm-Gg: AYBFou3apsU3uTVb0aOAtlqEBLEG6FnYcV8nA1/rNHz0QP1YKUZYGGRYul3/+o5/YhV J6F/ZVGmIy7/WcZ+1S/By1NsVfk+sz+gydAKqAAYIBBZ+Vdc/e/xrtmL09HHFWEBeztdEwAfIgV Pj/tkmR6mS0R8dM6Dy+Rv1dWNA3wKXWhvy+rUkuXR0RNXpOYN3nHFRi/6kRmken47LfDtZftglc XTUabNAKFv6wzCtcoVspb6K6Ya1bZon15HtbllTSTRTP6AZdSBNCmdjvDRfxddPT2hUO828kM4b G1xFBqSAS0WLjWZ3V4b8Lv6btCKFpBZf+FOQfymjrO5hq7HiDOv3Ac/D+lXZvRPwW3Jnm+pZayv N21IKaBhCt+OGGhtZzCo3cfK+hu5fWiOHxFvE6pIAtkh6M6pFR+ncZy/qgM7TqkbdTY/jalQUpm 4+P+NpuZqMKQcE8lUF5uLa5aCfolfDZ9RBeE8/Gn3vJw1ucHB5J4Rtel9wjPR+4I5LKQXuyWMpy mFWZd4= X-Received: by 2002:a05:6a21:4598:b0:3d7:b90:acba with SMTP id adf61e73a8af0-3dd5f3b80b5mr12375830637.6.1789619347249; Wed, 16 Sep 2026 21:29:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 039/101] tcg: Generic expansion of tcg_gen_eqv_* Date: Wed, 16 Sep 2026 18:27:21 -1000 Message-ID: <20260917042823.542588-40-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619490258158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 7517e8d9d9e..fbbc3acad83 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -200,7 +199,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index b05a1782513..c1b99a280ac 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,6 +8,7 @@ DEF3(andc, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) +DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 262d2cbe2c1..4a3622692c9 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -486,6 +486,16 @@ static void gen_divu(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_eqv(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_eqv, type, 0)) { + gen_op_ttt(INDEX_op_eqv, type, dst, src1, src2); + } else { + gen_xor(type, dst, src1, src2); + gen_not(type, dst, dst); + } +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -725,16 +735,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_eqv, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_eqv, ret, arg1, arg2); - } else { - tcg_gen_xor_i32(ret, arg1, arg2); - tcg_gen_not_i32(ret, ret); - } -} - void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_nand, TCG_TYPE_I32, 0)) { @@ -1772,16 +1772,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_eqv, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_eqv, ret, arg1, arg2); - } else { - tcg_gen_xor_i64(ret, arg1, arg2); - tcg_gen_not_i64(ret, ret); - } -} - void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_nand, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619642; cv=none; d=zohomail.com; s=zohoarc; b=DSCOCdBQrPvCYbq3RXhTSqW58sieVQ0ZUaUCmg1QPtJyB9jf/YwVTu5RPx0Ma6YrNu3Ws2cwvty+pGtvuhg76KjKsTQJ375FjkYsfqiay6brr8moJoJq6lKAtkGdtZvT+yAJuV3TZsdRXVNTKHrr0CSZFuNa7raygI8CFxsLK5w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619642; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=qe/PwE2iMATNOOIZvTWsULxmmq4VESGYWl2IC//N9r8=; b=N2Sg5mXpkRg2ZSELjOI79GXcCdHV9z/aO7i7dDrO2KWeOb6WTD0D0wvJWjeliIHihidmbuvX1XQkg9KAXs2UWv7mVgSCsFR7Npb+9pLqm21d+Hz652414nIyQu/HgvZqdL6yC4zJZolQqoBNgnC5SYyLyHymIo2cPEfCDcw5cOw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619642763916.998823563272; Wed, 16 Sep 2026 21:34:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nK-0001Jb-3P; Thu, 17 Sep 2026 00:32:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nB-000158-4y for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:13 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73n9-0007CB-2m for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:12 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea50dc3so247238a12.3 for ; Wed, 16 Sep 2026 21:32:10 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619530; x=1790224330; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=qe/PwE2iMATNOOIZvTWsULxmmq4VESGYWl2IC//N9r8=; b=BsezNvvCMFliJk+1xo1peewIJuU9NOeKjLCWwXnR3yk5R4OF6KUre1z9FaOlNqaOi2 PTxRXP5HYxecaPrFOb1egM4X9oIo4MOzd00U322MUQdMuEbS6YqgUJC1ErcwPLN4F6FA E5urAYMETZl97/ykPjqRnQYbCBAKuNKpNwIcmRyvcAFGiZE+Ze+ZhmgI1jy7vSKWm1ED 6l/73smZnAdJkZdKt3+EzoQR0kj9gLDpHw+t/DHWzmtSN4QnQD55FAXMIl/vSfFU1UqJ l4orZcSlnf3aKQJjenUt5uh+nEaMMLpzDE2mIp8XMRZfQvEvRpCTbRY2iAjK4jgs5jCZ CX2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619530; x=1790224330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=qe/PwE2iMATNOOIZvTWsULxmmq4VESGYWl2IC//N9r8=; b=kFCTjDtg/0Up5PCKo+mESgpwhpAL36Ht9dAX44ysyzE8xBAigf5KxEwp1Nt6bqhT0I 81r/mjOaLXe+Mhy1uNjpcUiYNa4NmlD0eFH+M6dj1KaVKfqb3yO26su76IMihmL1DqVS yM0cRS+vp6jUahPa0tAJyPItlKOWIvxB8a3dxHdK+aviCaM9tCLIizdMlmUTQhjwBy9X ZuAcyWMd3IscmeOQd9NwcK7fQbhvJfeAU+GQvABWhSGXmVleznDHa2aqocwkOQL4HdYk ed7i1gVq1WRCCj/zfAIixoUCN/+mcisMflYExtCqg+OxWdzL4P2Td7aO0iMjDi59G1kZ FWYg== X-Gm-Message-State: AFuF++m4pDMsoT3gPoR6dgpiIEdvqpt+0u2sagIlu78lp6/FWJ1e4Utm OkKR7SdmTJjyMmig91hQPZRz6GJ5NmS0qOb+1Y5JSX6c8pP0txrSh9fHNyE1lHLxWF0wZgfAImq ZK/gohq8= X-Gm-Gg: AYBFou2L12eq/OO/Ymc0JRr3G3+ODkvFtUHvypDDghG4uJUlFzbxgmZQFrVU0Djsf3Y lUCFQOmD6fscH0Ysqd/nzfYbfqrUr1aRUcCtKI14mMl7bpwI+lhIWAOl1M+Jk1+RuFXfYdthDqV +hfkOba6DKiShuetnrluAQOm/k4OHfEyrwhUujAB1CBG+7iysHupNHdYK1eW5xoYz+jNTnKcYM7 pK/SAxzfofLynd3dsNJAbFCJus4lsEBKORJ/YB0LQk55XggwzjExAN2ry+6K0EsPwLGc2NObzSL BZEoxih7VwsuP24c2NtGkEX/GPwS4yYKgCG5yT4IYYRJG7fnsPe+KC8I0Cealh0tBiekB57D5dx 3CF3QqJvRWznwZ6zxtMEfNJTwbsoMGMRMtaeUCatBDIkq5Ih/I50VUCHB41/ID2n4m8XVzo1Vp4 cHjoH3qilRBw4CjNOO/ES3P9oThmFMGBxAvWKuXfUuXlYNsZ9gdQPelyu+bTzwcVYBqGI7nXROT B9TCRsjKZgedAOghg== X-Received: by 2002:a05:6a20:2586:b0:3d3:ad3c:49a6 with SMTP id adf61e73a8af0-3dd5f73ef7bmr13040228637.20.1789619529494; Wed, 16 Sep 2026 21:32:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 040/101] tcg: Generic expansion of tcg_gen_nand_* Date: Wed, 16 Sep 2026 18:27:22 -1000 Message-ID: <20260917042823.542588-41-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619644976158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index fbbc3acad83..613e844aecb 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -199,7 +198,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index c1b99a280ac..80d174a6cb1 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -13,6 +13,7 @@ DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) +DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 4a3622692c9..47381b7eaf4 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -524,6 +524,16 @@ static void gen_muli(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_nand(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_nand, type, 0)) { + gen_op_ttt(INDEX_op_nand, type, dst, src1, src2); + } else { + gen_and(type, dst, src1, src2); + gen_not(type, dst, dst); + } +} + static void gen_neg(TCGType type, TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_neg, type, dst, src); @@ -735,16 +745,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_nand, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_nand, ret, arg1, arg2); - } else { - tcg_gen_and_i32(ret, arg1, arg2); - tcg_gen_not_i32(ret, ret); - } -} - void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_nor, TCG_TYPE_I32, 0)) { @@ -1772,16 +1772,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_nand, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_nand, ret, arg1, arg2); - } else { - tcg_gen_and_i64(ret, arg1, arg2); - tcg_gen_not_i64(ret, ret); - } -} - void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_nor, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619577; cv=none; d=zohomail.com; s=zohoarc; b=YeYCcOOf1tgNnUPxNZlxf/wHq3uHOlfn7olwDSiCcE5rcJnbJI8s1GUTVkFYpoqd5kNy3+ATo8WbnWzXAWuELBPIMbNnkdQBNXOf8luE145uPUKFzwoFiXp+WA0fy2so8UawFwnJP8eYSeMqcGtBK0czJ8CiIX3H9lmijmJbkcM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619577; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=0ocFvmkr4iifAApCfGk+XDNkHdJfMVXYlmziP4EcjQc=; b=Lx2uh7RBJ/jfLSzLcte2qGJGgnJBV5B1zUD5iuiYuhdrxZ+rZ+hC9Tqx+88B21A9hQNNun4iTZFZKjr5RS4jHVRhrHsPioq1vXeaXBBokeqqLT9e4sTrF486XoxFHXj25a7uebvyEeKJjGL+GsiAbudiGBJp272O9b9tZodKpSY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619577836526.6812923250122; Wed, 16 Sep 2026 21:32:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nk-0001v4-SD; Thu, 17 Sep 2026 00:32:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nC-0001Ax-6K for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:15 -0400 Received: from mail-oi2-x0f.google.com ([2607:f8b0:4864:32::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nA-0007CJ-Aw for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:13 -0400 Received: by mail-oi2-x0f.google.com with SMTP id 46e09a7af769-7f4f0d37f93so278179a34.2 for ; Wed, 16 Sep 2026 21:32:11 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619530; x=1790224330; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=0ocFvmkr4iifAApCfGk+XDNkHdJfMVXYlmziP4EcjQc=; b=YZ5thGQDtEI8l72mBltRgndRa8eClx/RjWYC57U8DgxdaNknNZF4v3pGYGttv3EhCG g16zGba0lTTpX/noTsZ6xQlunc5ohK7FNAA4GyMWnRahIsUcA8zvheEMWPbXo5Pjgosm RtO/fsG5+WBR5D0Z5NUP7phUrHoeQVUDtYEDSCN30aQbPURVWVqAa2fvgkNElXwQPQM/ Oc0D/mZGGe7yooRiLd2N//kHOrMcUl11j1a/4F8b7a0E866p6QOnoX6cwYwUQ/2w4EVt c/aUiGPVUsKxUZjTsvMVbWoUy01cZqRGb4tkhxYmE8+wEWg1BnxrQ1D+Cehr5bltRTix kbAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619530; x=1790224330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=0ocFvmkr4iifAApCfGk+XDNkHdJfMVXYlmziP4EcjQc=; b=yK9x7P71rzLZ7IorgdF2UYmvm1btuIpB8zgVv/dmBamGhbwqBxjQi0DdIvzPmwtp/B R9tlIf1bfGNuZ75MV+yfPl3wSvjy2t+Mcnr7bZMQsUnCemqA+u8nVjBqpYhZ26AlBaSv NGMfZLER6YZXQ9NmSKoEHEkjx/Mm8haNtRR8lIMJtm9UxZfoYcqpRNvmIf2Bvy6ETmvG kJxYdaxvS+WF/XwMGIKA5VFqXXVpbDNrrhOTk8JGNuS1aJvebHCRABIa6m523HlzgRXQ wVEB55QUwXody7sNGVstp6VS61D/SqDgbnfcIvvPn9ek57p8HhGY6AvAWfDJNqaUBXLn SExQ== X-Gm-Message-State: AFuF++l7W4rGn0wA/N8LwMqTXG2qwU46EVkHLzFi2amcoaz8hXoXBg8R wKa2Aj6hRzwWpDWSEWF/1kZkP/NzIK35+qMt0u0JR5a2+1SAbAp0oJ5ULnOkObOCvPUAC7S6jP6 /HzTEFZs= X-Gm-Gg: AYBFou1mdU3VbgY98UmpzmmLQHIUigfE6RWlvg5rkhb0Nd6t4plcZgbHyEmSRIdugYw 8RqjVZdIBQ2cqjG8lxNfSrCyvuuc1599dtEeolOYmLwHz+0nLu54RPzvTW0hoxSufEfDulvfd2x mGmqMPf0rl8EBktpJTIlnWiMHDXiqoi8cbhR8dTO2txXBB45RlXZ/zDkR8c7E1n/SPjMFS0AvSp lll1U5Il0vTF24yolKRQVhsUuDMhk7N69CLPoir+RF3TtHIdKmPEuPq2a+8qvmYa89kyMejjmqo ijuZk6A2xt1J6cfMybqEh9wfi6hYYXbp2zKJSYIk3Le0X4PhhqLznPlYnOeDuqM1DNGPHHpoh2n 3EWxDknxYzqen9DM1ZNZojH0DHC9UnzIVq7FV3m/xYl2Pt8uL5pR4upOwHeBBHQJ5LpCidHbFpK d1uh8nhLVybgZbm22r9HLRsjnO1AM8RZkwol2dBnIe7iZ07pJTLE91esF3uXdpkngiV02KsVuaQ EJ0hqo= X-Received: by 2002:a05:6820:2213:b0:6b6:c0bc:365c with SMTP id 006d021491bc7-6c7d1ad0e87mr5111859eaf.22.1789619530447; Wed, 16 Sep 2026 21:32:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 041/101] tcg: Generic expansion of tcg_gen_nor_* Date: Wed, 16 Sep 2026 18:27:23 -1000 Message-ID: <20260917042823.542588-42-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:32::f; envelope-from=richard.henderson@linaro.org; helo=mail-oi2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619578718158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 30 ++++++++++-------------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 613e844aecb..1fb10ffd804 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -198,7 +197,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 80d174a6cb1..62dc85ff6a6 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -15,6 +15,7 @@ DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) +DEF3(nor, TCGV, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 47381b7eaf4..9c911816eb0 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -539,6 +539,16 @@ static void gen_neg(TCGType type, TCGTemp *dst, TCGTem= p *src) gen_op_tt(INDEX_op_neg, type, dst, src); } =20 +static void gen_nor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_nor, type, 0)) { + gen_op_ttt(INDEX_op_nor, type, dst, src1, src2); + } else { + gen_or(type, dst, src1, src2); + gen_not(type, dst, dst); + } +} + static void gen_not(TCGType type, TCGTemp *dst, TCGTemp *src) { if (tcg_op_supported(INDEX_op_not, type, 0)) { @@ -745,16 +755,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_nor, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_nor, ret, arg1, arg2); - } else { - tcg_gen_or_i32(ret, arg1, arg2); - tcg_gen_not_i32(ret, ret); - } -} - void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_orc, TCG_TYPE_I32, 0)) { @@ -1772,16 +1772,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_nor, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_nor, ret, arg1, arg2); - } else { - tcg_gen_or_i64(ret, arg1, arg2); - tcg_gen_not_i64(ret, ret); - } -} - void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_orc, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619571; cv=none; d=zohomail.com; s=zohoarc; b=lt4HZMVnTGflAHRNGmKfOOwfgasfzyu+OuDGztPG601McskazlQWG2I33B0t6YHE5Tyqx3QRN538PDvuoOuymDRafqv66NGOh4M2AX/fcLtKsoqtgmti+jgzVuiYFmufv5HZmkeVfrwxXoHbH9eUPNDX2UoYLbJOh8RJ4VXlvKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619571; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=G0nqiK59TEqDZWj5X3IUro3ZcSa/k6Zs4DhFIDgSsoA=; b=T28+m+efbAQ4Qgm7sdbCSuWmrDwmFPT5E/ImLpqzxtwmIYCJV/KxbLGu7JY0jWlwBRR/aWrn1tAJdGBPOekzHDdmt67M0tWRrHLq3TSIMnbw6m0G9zUdhM8FLNCaUUNNeCyFv/HckedxHI73O8LjZK6SRpp8H+2g77UtgoXs4Vg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619571696577.0354474789171; Wed, 16 Sep 2026 21:32:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nS-0001VA-1t; Thu, 17 Sep 2026 00:32:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nC-0001BP-Na for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:15 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nA-0007CS-UM for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:14 -0400 Received: by mail-pj2-x10.google.com with SMTP id d9443c01a7336-2d747eb79f6so2881725ad.0 for ; Wed, 16 Sep 2026 21:32:12 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619531; x=1790224331; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=G0nqiK59TEqDZWj5X3IUro3ZcSa/k6Zs4DhFIDgSsoA=; b=TimEr75l9zPCDHRYqU39GVki7g9rS6ztJrWmClYxjZgJv/H1ahAFg+EISCaqmosaf4 E4k9+/p0S+UYD5PvYCoTK3UbmZ/jz6sRKF2R7SHgBVxBIt52FJ/yP2CyXfCsY47gMImG OIpB4gy6NCku+rtBBu51RUcxeyElo32EHv31kirZUcIypTdQi/39l1JFZU8yU8+grjql vadKGxOS+oZ4Tt0CJJyM2n2j+SgxKYkXcvP7UoxlEnxX4UV6q42YlVHgI5XJWvmU3+6/ 5VRgKWlfBEMbzkJQnJEq06S5CC3SSfDKUPJnE5h/567tUfQxTTyY3QdCyJKbNPF+gymz sqXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619531; x=1790224331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=G0nqiK59TEqDZWj5X3IUro3ZcSa/k6Zs4DhFIDgSsoA=; b=aMri0ZjBTCF632DXKr4UqUJ8kAggBw5NFJQ/be1JN82zcPSF0XCk6CoMizU7e9MZXl c4Nqnr4vn+odaKyRbTu+S8N+4/4Nx4OU3ifZx8S8WqnydxjAA8ttcXUssn26hotWCRGm ql1QgiB3Bf6Iq7JAsVT/WLUM83g2mk2Oi8NjENFpHTXCfCPhZd+MEElxNeIZp+Ux8IWY K5s6vfpmhXVfdOkLrapKrCAoHXT7BXtKb94EyRmzZbj16XcyC55QoNFkzgidmw9vLia8 iLJSVeT7BYzQjHWgwqrseMTUVXZrUWmD1t/G+DF/2x1I9+Yo4317aof2UcnQnxV1oBLS Lw6w== X-Gm-Message-State: AFuF++l5AxzkK+BpNNNqC+dNEjGfopC5HtEdynrDwykfi9otKjrlHGPO 7D4E3d4OjSzu0z9mGggCufscy8WhMdS3mM+rUJ132Xlr8VmJuR2LsI+Igl0EBdP5fVfeKh0joyS EoVHUjB8= X-Gm-Gg: AYBFou2X74RlSfbzl0m/hoJyP9DAYAHGrgsdSCAfDwp4JuXp9b/Ew9Y+soFOgbOVb7w PJuiQqKOqM7NCY3h6gAxABC37mpaN6/fS4mG57I7WeDsQldFk2r+KDS10s/3zOZ1pBBtBvw2GlV CwYjd2AkY1z7a92ag4JmcagFxBVEBBLM2ahHe5JrPq7a0asndz+2xYuiVjLf4G35gk7/pY31ySS 57ItA4yBvULhc167Ihb0sVbQcwiqE2iBVnF1yZMO88tzB7HnKdx5DggFU4MYQr4QOIsVYTQrsHY 7y+X58siDHLEIPV4cICPRXKNfCfrxig38bM8yyAWA6PjiauK3lk4ntNRuwXCqLiX4DNUea93Vt6 Wc2iSwzogY3iPoZKkEiv23wBmx2LvZahflFjvubRaar6uqsuB6oALQHdZM6KVaRydbR6TgCO0U1 Jkd0+sSDRkttoGnQWm8g0Af57h1NgCEw8QPKE5h7bC1mzysYXXwGMrX5anvHSKoMAbh+l/SBadD 3cOWN8= X-Received: by 2002:a17:90b:4ece:b0:39d:ba21:fd90 with SMTP id 98e67ed59e1d1-39e1e491176mr17267452a91.16.1789619531386; Wed, 16 Sep 2026 21:32:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 042/101] tcg: Generic expansion of tcg_gen_orc_* Date: Wed, 16 Sep 2026 18:27:24 -1000 Message-ID: <20260917042823.542588-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619572594158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 36 ++++++++++++------------------------ 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 1fb10ffd804..a5b9e0da647 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -123,7 +123,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2); @@ -197,7 +196,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 62dc85ff6a6..e17caafd890 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -19,6 +19,7 @@ DEF3(nor, TCGV, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) DEF3(ori, TCGV, TCGV, TINT) +DEF3(orc, TCGV, TCGV, TCGV) DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9c911816eb0..8b98a0b1c12 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -575,6 +575,18 @@ static void gen_ori(TCGType type, TCGTemp *dst, TCGTem= p *src1, int64_t src2) } } =20 +static void gen_orc(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_orc, type, 0)) { + gen_op_ttt(INDEX_op_orc, type, dst, src1, src2); + } else { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_not(type, tmp, src2); + gen_or(type, dst, src1, tmp); + } +} + static void gen_rem(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { if (tcg_op_supported(INDEX_op_rems, type, 0)) { @@ -755,18 +767,6 @@ void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 re= t, tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); } =20 -void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_orc, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_orc, ret, arg1, arg2); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_not_i32(t0, arg2); - tcg_gen_or_i32(ret, arg1, t0); - tcg_temp_free_i32(t0); - } -} - void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I32, 0)) { @@ -1772,18 +1772,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_orc, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_orc, ret, arg1, arg2); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_not_i64(t0, arg2); - tcg_gen_or_i64(ret, arg1, t0); - tcg_temp_free_i64(t0); - } -} - void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619650; cv=none; d=zohomail.com; s=zohoarc; b=nNoixc12Xh14ROewPLcSXwF5vrhOfjsxZQGRzIQ9VC57bitOa7smx24PwUkFBnYGW6oKDAQLBh6tyyxQeO64FCrBf2x50jZPBTa8sc6gq0WDWGLS8+dNiu+zwFnfABfjqhGW12qSzuLBopZIqUpVE/1eIW3ZtxMKbIc0yrHTnMY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619650; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=+x4xrktbqqWpbRQSUlRvKiXAMDa/dHb1ft0eXd9qX+M=; b=NWHaeB2GiVIL1qjidVFSAXinwTx679IBC0Ws8cPt1aqdIjI958fX63sBlhxCD8rS4+ee1I1ECATGOk+FdtR/vFlvADhS5EMgfe+1LkFi3Bt/Rb/KXaRYXILiROm8DwX+kmLX2cYlfks7ZUl5WIXcdZ3uOUQovmC/+3/lX3KFwmU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619650681229.6339060894087; Wed, 16 Sep 2026 21:34:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nk-0001lu-5M; Thu, 17 Sep 2026 00:32:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nD-0001Cv-S5 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:15 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nB-0007Cd-Sn for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:15 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea50db3so223801a12.1 for ; Wed, 16 Sep 2026 21:32:13 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619532; x=1790224332; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=+x4xrktbqqWpbRQSUlRvKiXAMDa/dHb1ft0eXd9qX+M=; b=ooJkWqotDdwXdCJuy2oexylC68HJSO+b5z03Qjg8vFCOmxF9DcvgvaSG6puQ6FcOI3 PyMEGcv8sK1Z7IrZiuJcYg2vol/fMI1tc6S3dUYmTAZ4bU9CPb+8UdydDJ1Y0YkIKIVF WT77GUix5fpoG16CsKN055+XOO/tOfdJoGcJ67bbKf+011mSIV/N4KrIE4CnUvJeBUdf Uc8YUCsgpDn+/5fRP/YXjEI3IW/JMLeh12xNoevAd20FC374PftRaJIO+P1qWHNWRpW4 TnfwMfpe0BuDcVT5vFMMh1h/cZ+MAnWkAOBUM7xDGoJ7hhugVgMt6G3KaGeLjN8zRydO 17fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619532; x=1790224332; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+x4xrktbqqWpbRQSUlRvKiXAMDa/dHb1ft0eXd9qX+M=; b=2VzlCGZ0QPEKAb4d46dsJaEXxQzEh4vh6bepr5sQ/vqUmtU1N/Qo0td4m4n/yqwpDB FanJIfomPqNwLm0+4x4KK360KjlfEjX/GQFKfoKCFpHRwvqoOxBRKTT8MPma2XqVuHMZ lYTiZF94qcNWuovdP/hSHQF2I4SWHtZinSc/3yfgvgRAdveXPx6Eigo4SglGViegf0gO 9FYp9u0WW1gFAKFU265EFhW0Gg1IO3W+84AXSC+rlrHdSesYi58lKm47D/Yse9EGskCo m2paEoEJn6z8oqkzOjNVUVjQZOTXpWnu0qU9meA1yyYwZCm6jUFxQKNnTbAX+pw1nTBz j1Dw== X-Gm-Message-State: AFuF++nz8Is59OtgmVmjv7QUkfpcfxLTiXKThkl8jQzudB/gIlBROFaZ wYLK110OL2QDYgxWkGQToPJYs2NN/8+GE52aGeMIBpBHJKA23OoWiX5XS1QFpm0dE7m05U0sFao flUJvl3U= X-Gm-Gg: AYBFou2GnlJ7yd1iz25k06pPdQvBUHFuKgDEckdB15Z7W+OUTX+YeythFjqehSWxge1 hjuFvVLeN3pv5i9M9B/v7wRWo5SETkDT1ceY1h1oyCZYw7e8Sg3wzrEX7IIKG9RPZBiZ/rODbHp qAnWRHzBkf4X87hCULnqLuJZCfrgAsob/Th41VRNOh3KvCO4KzJ7NhubrZPBecVbpo52wFBcGTy Nq3nbrp92kcX5P6Tl8SfrDtPwZToznPE2KJw5Z2fVLVO2jvlnZnYWhgMzUvAzAPFOsVLJ15RMzc Mno9ipf+yGjWC9MvRdTmanc6V63jkcX1BoLT80vg5qL1hlAYs1lPWiihITuzg6QfRy3A9J0N9sm HatW4R9/4mkzfQEBLobyk70mAV9xXyp1/07ezZB4RClCcXE+LUJC45Bi2RXERCDCk94WWsh+UvS DXmThyNnEflR5PFKVgHm1zOgv2PToMPAltRPhiB2vL+1mtUFwCwGTW7vv9e3EvLY9BsfXyidF5r /FIoYk= X-Received: by 2002:a17:90b:1c8b:b0:39e:4154:130a with SMTP id 98e67ed59e1d1-39e4154157bmr613622a91.10.1789619532386; Wed, 16 Sep 2026 21:32:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 043/101] tcg: Generic expansion of tcg_gen_brcond_* Date: Wed, 16 Sep 2026 18:27:25 -1000 Message-ID: <20260917042823.542588-44-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619650985158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 5 ++-- include/tcg/tcg.h | 1 + include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 46 +++++++++++++++++++----------------- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index a5b9e0da647..31d35780739 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -98,6 +98,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminf= o); QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2); #define DEF3(NAME, T1, T2, T3) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3); +#define DEF4(NAME, T1, T2, T3, T4) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4); =20 #define TCGV glue(TCGv,TEXT) #define TEXT _i32 @@ -120,6 +122,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); #undef DEF1 #undef DEF2 #undef DEF3 +#undef DEF4 =20 /* 32 bit ops */ =20 @@ -143,7 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_brcond_i32(TCGCond cond, TCGv_i32 arg1, TCGv_i32 arg2, TCGLab= el *); void tcg_gen_brcondi_i32(TCGCond cond, TCGv_i32 arg1, int32_t arg2, TCGLab= el *); void tcg_gen_setcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -216,7 +218,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_brcond_i64(TCGCond cond, TCGv_i64 arg1, TCGv_i64 arg2, TCGLab= el *); void tcg_gen_brcondi_i64(TCGCond cond, TCGv_i64 arg1, int64_t arg2, TCGLab= el *); void tcg_gen_setcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 27ea86ce02a..55a2313b38c 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -97,6 +97,7 @@ struct TCGLabelUse { }; =20 typedef struct TCGLabel TCGLabel; +typedef struct TCGLabel *TCGLabelPtr; struct TCGLabel { bool present; bool has_value; diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index e17caafd890..d2bbf9ba017 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -5,6 +5,7 @@ DEF3(addi, TCGV, TCGV, TINT) DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) +DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 8b98a0b1c12..34e85f91095 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -326,6 +326,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2); #define DEF3(NAME, T1, T2, T3) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3); +#define DEF4(NAME, T1, T2, T3, T4) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4); =20 #define TCGV TCGTemp * #define TINT int64_t @@ -338,6 +340,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF1 #undef DEF2 #undef DEF3 +#undef DEF4 =20 /* * Templated operations. @@ -355,10 +358,17 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c) \ { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), glue(C_,T3)(c)); } =20 +#define DEF4(NAME, T1, T2, T3, T4) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c, T4 d) \ + { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), \ + glue(C_,T3)(c), glue(C_,T4)(d)); } + #define C_TCGv_i32 tcgv_i32_temp #define C_TCGv_i64 tcgv_i64_temp #define C_int32_t #define C_int64_t +#define C_TCGCond +#define C_TCGLabelPtr =20 #define TCGV glue(TCGv,TEXT) #define TEXT _i32 @@ -386,6 +396,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef C_TCGv_i64 #undef C_int32_t #undef C_int64_t +#undef C_TCGCond +#undef C_TCGLabelPtr =20 #undef DEF1 #undef DEF2 @@ -452,6 +464,18 @@ static void gen_andc(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_brcond(TCGType type, TCGCond cond, TCGTemp *src1, + TCGTemp *src2, TCGLabel *l) +{ + if (cond =3D=3D TCG_COND_ALWAYS) { + tcg_gen_br(l); + } else if (cond !=3D TCG_COND_NEVER) { + TCGOp *op =3D gen_op_ttii(INDEX_op_brcond, type, + src1, src2, cond, label_arg(l)); + add_as_label_use(l, op); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -711,17 +735,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_brcond_i32(TCGCond cond, TCGv_i32 arg1, TCGv_i32 arg2, TCGLab= el *l) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_br(l); - } else if (cond !=3D TCG_COND_NEVER) { - TCGOp *op =3D tcg_gen_op4ii_i32(INDEX_op_brcond, - arg1, arg2, cond, label_arg(l)); - add_as_label_use(l, op); - } -} - void tcg_gen_brcondi_i32(TCGCond cond, TCGv_i32 arg1, int32_t arg2, TCGLab= el *l) { if (cond =3D=3D TCG_COND_ALWAYS) { @@ -1521,17 +1534,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_brcond_i64(TCGCond cond, TCGv_i64 arg1, TCGv_i64 arg2, TCGLab= el *l) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_br(l); - } else if (cond !=3D TCG_COND_NEVER) { - TCGOp *op =3D tcg_gen_op4ii_i64(INDEX_op_brcond, arg1, arg2, cond, - label_arg(l)); - add_as_label_use(l, op); - } -} - void tcg_gen_brcondi_i64(TCGCond cond, TCGv_i64 arg1, int64_t arg2, TCGLab= el *l) { tcg_gen_brcond_i64(cond, arg1, tcg_constant_i64(arg2), l); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619638; cv=none; d=zohomail.com; s=zohoarc; b=a/RAEw7JyFdyNIvhOyuHGoG22bIFftx9ATJGSW3DR59C0stNKLKuh//jQeGijjzxKhMNUNXgvZQiazw02AC+eeScHwGaPzxhNOpvX6UNFByHYSRGAvAA2zf1KjbnLM9Ybp8fRi8ymDSIJKHfYr5Yq6YW2qrOh/Nn9ULYaiJfTYo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619638; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=I5pqQ2J6SFFdXsE26NRLc74uPP3a3FI6aFrdRYK2Cbo=; b=cztRYd3Xdh9PTMdWdh2wKR9V5Me96N6ZVPWFlTQDGtCaFeQHNtttGG0FqRa/moWh/TpQalN8YNizjn7IdQ7rIiDxB2mBqFmTJAMrr9U7lbDXm+L7/XSkWKYN1e3t60XvcJJiJTSvCJtrMGklIJXPQPgcm3fOFp6GpOH3xfA8sRU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961963869551.51016475133201; Wed, 16 Sep 2026 21:33:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73oF-0003hB-Q2; Thu, 17 Sep 2026 00:33:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nE-0001Jc-TP for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:18 -0400 Received: from mail-pz2-x1d.google.com ([2607:f8b0:4864:3b::1d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nD-0007Cv-50 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:16 -0400 Received: by mail-pz2-x1d.google.com with SMTP id 41be03b00d2f7-cc1cebad4aeso260148a12.2 for ; Wed, 16 Sep 2026 21:32:14 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619534; x=1790224334; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=I5pqQ2J6SFFdXsE26NRLc74uPP3a3FI6aFrdRYK2Cbo=; b=NpdoJv8GKVGwc2lHe0o5Yo0M63SacJsS9CZoPbxYSph0A6DA2icAnoB7dpfLPd4i+S LRCufAdO0bST4duYPnC1WpI30WdsU0gEBQCtzDXdpm8L6CRQn01r9V5pRWsdomP/2NAK NRCHVHZmr30y69O2XnudxMxEmBBecBPVSt4kQNopNxOxWW2AITckPphZsKMybWSULuOD jD0sZj1+Qb9KcimVKpMMYjlrDqi3gxunWoEyqOYDTkajfLa/ouqmOFa1bJkGuYSIgshN eluWg0Oxc4Val7xqREYRyZbDarIl107yPnp/BwDIQyVWoSkGeOaBDzPK1D3z8yJMBYz6 UlJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619534; x=1790224334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=I5pqQ2J6SFFdXsE26NRLc74uPP3a3FI6aFrdRYK2Cbo=; b=qSMET3cBGiLetKe0vX3+Nn+BZ/qd129kRMOdFYEg8ODzdrTV9bsG2oIYzdhBhUb31N bCOKwuRsTR3I50NLWuk90IeJ9tBiIDlsCXtKQfQixqSvrcNxklq4Vsu06JpuYo0nQW/8 tFLXy3vpYeyeA19Uvlrh3Qoim9Qea+kn9xXMMO77+OzJIV69UAtxiTdEzFcUPzL0K5av BZmdWWQug+8eMOJ2Qwnc5sd9E3EMZzrDi78UBX/bV8zygjSxFnjO4GgFYT8iqMtHI/uV eCQCRAELfVnQxRtGq/hv2o0cKi3IJzkPSUeIEtgMzu+J0rE0RfKqFcvp96Crr4gljhOy zpbg== X-Gm-Message-State: AFuF++m6yWrwjVT2MBSh66AXAQ20DNxncHWOKfve7wWwwFQjZaz8YtQq 31G0NKw+4yX4vUovU3daHVLBwj1tx/RKbj86SvzMAX/kkQt9ptvnVuiYdqou+MJNBiHgT3dpOUy 7gPFgHzA= X-Gm-Gg: AYBFou0uR8dGJYn/w4fp+al9BGHKeH53fLOe6L6vWm0S2DnNNXuc15bsPhzyOomAeu4 gNi3b6qg1AX/wLtlOmGcDMNXxDTlDSCX2waIuDR06+trSy3vzppJBmkQ8Uqapqz/d1GOMQ74Z1c A1w8fbMJzkLZ8ulbbXHSltUwWk5JC31snOukOEKXj1s51Nz5l0Yr3YN6xXcf3w44M1zU7bWBlt1 dqerMbzMPf3JzVHz9QHjBTpeGku/oZO8ZG1Mj5Qu/EU7o+yQTNO62tp5GNL9sNMdRn+Hw2Ggo3h tpjNL2fEe0m6eRDsMrx8YzGJU7ZQXXFdz9w9nJt5IOselIKQLwGow68Wt5smVaRWxwTNmQecQgM qSs8eGYgCz9r7xW4d27gceBD3PybVURRjxY0HBaGtKaE3Q97c/3mt7KR48EhCGGScVGh+QhZJJk Xu80g4w1ZhUjQHxRsyhZRKdA95YQoMkpoQkhDWpiA25+nOs0QG9ZFlZPyqyNMCbKdv0XiukAlg9 B/EVLw= X-Received: by 2002:a17:90b:3b51:b0:39d:f95d:bd08 with SMTP id 98e67ed59e1d1-39e1e47ac09mr15006313a91.14.1789619533425; Wed, 16 Sep 2026 21:32:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 044/101] tcg: Generic expansion of tcg_gen_brcondi_* Date: Wed, 16 Sep 2026 18:27:26 -1000 Message-ID: <20260917042823.542588-45-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::1d; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x1d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619640915158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 20 ++++++-------------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 31d35780739..006f668aa5f 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_brcondi_i32(TCGCond cond, TCGv_i32 arg1, int32_t arg2, TCGLab= el *); void tcg_gen_setcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_setcondi_i32(TCGCond cond, TCGv_i32 ret, @@ -218,7 +217,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_brcondi_i64(TCGCond cond, TCGv_i64 arg1, int64_t arg2, TCGLab= el *); void tcg_gen_setcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_setcondi_i64(TCGCond cond, TCGv_i64 ret, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index d2bbf9ba017..63e87c8313b 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -6,6 +6,7 @@ DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) +DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 34e85f91095..abb37a6d623 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -476,6 +476,12 @@ static void gen_brcond(TCGType type, TCGCond cond, TCG= Temp *src1, } } =20 +static void gen_brcondi(TCGType type, TCGCond cond, TCGTemp *src1, + int64_t src2, TCGLabel *l) +{ + gen_brcond(type, cond, src1, tcg_constant_internal(type, src2), l); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -735,15 +741,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_brcondi_i32(TCGCond cond, TCGv_i32 arg1, int32_t arg2, TCGLab= el *l) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_br(l); - } else if (cond !=3D TCG_COND_NEVER) { - tcg_gen_brcond_i32(cond, arg1, tcg_constant_i32(arg2), l); - } -} - void tcg_gen_setcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { @@ -1534,11 +1531,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_brcondi_i64(TCGCond cond, TCGv_i64 arg1, int64_t arg2, TCGLab= el *l) -{ - tcg_gen_brcond_i64(cond, arg1, tcg_constant_i64(arg2), l); -} - void tcg_gen_setcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619879; cv=none; d=zohomail.com; s=zohoarc; b=KzxVztI5d/0CSDHdV8BzspyB31mrT1xmh/V+fKpitLmssHEKMJU3EzfQjQnq+sE8IAPChPAlBt+DTztWDpoplE3Cb8jwu2PmhpvpLNcIH8oOjBXJ1r0DBUUlwjirl6LNQ+nqFygS88Gu6YChuUkcOCkSLk4HXa2XlkBcPF/kEME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619879; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=vmR9bh6nFD/o+Kl8UuKD14VRvSu0WPDxviozaeiSIEI=; b=WOp/AceBxyYQ3SfvsByhgxJlklNYsnVFbBLOpwjWuAJnFa1mQ1Pet1PKn1qmDCgOzBnzmeSczHFu76Lu9U/Itg8Y622Kx3vaXJQFDOT+itNbZufucKazZmZnKgpvWwPmRddBUJ24CWb7fEIa37ZLkr2M0S0L+FpQxaf8IVU3rcI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619879898284.3355960639901; Wed, 16 Sep 2026 21:37:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ns-0002hz-CC; Thu, 17 Sep 2026 00:32:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nI-0001U1-VK for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: from mail-oo2-x2b.google.com ([2607:f8b0:4864:31::2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nD-0007D4-Ui for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:17 -0400 Received: by mail-oo2-x2b.google.com with SMTP id 006d021491bc7-6b1ae7166edso241972eaf.3 for ; Wed, 16 Sep 2026 21:32:15 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619534; x=1790224334; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=vmR9bh6nFD/o+Kl8UuKD14VRvSu0WPDxviozaeiSIEI=; b=XGewsBCl1DyR7/7+wDmW1v/fS2L3/qv2zPpYindIJqRunV9u0ZUVuyIaPBuiRJSq6A z9blIMJV84wIf6oyTph+nfnRjDvW4ycNPpjTgpCeBB7PvtLUZtieJmgoLmRL5odXARl+ dskXzG7BH/+7iE4mNUb9/uVDWrmlz2kyuuPQ0SxHOqxSMBQwOEpuWHIQjlXTk+Ji0s/j 5K1kOQxR+xEVuDJXk6QJGuR16O5GCt8yzLwzc6rCKAVKkjeW9h5c/AwU8RGHhc7xTeqn kJc5CEFi1RVk8CFaeAx66usCsZEgmf6G6zqxxDKy8EJHIq/P25/W346uAIt8Esjbo4IS UDBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619534; x=1790224334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=vmR9bh6nFD/o+Kl8UuKD14VRvSu0WPDxviozaeiSIEI=; b=fSLUZpvRPBb9YXMtqnn9+JHh26FPBcw24+pcQGoGWgvSl3OXEL7Vs7cA9CYawf/+kh TwBjgMj7HYzJaHq0y1uCJCgP3sZOW44CpjISPRVZ5oNLbarBlmamy/egxlopQfKHMQtu QCGIDpki3GA6rv2L9EWRzP7u/Bw9F0wC4FGx9UiZesFMdgIVCITGUuXbssiPRwMyJUmt 7+DtoS5gzXAn0T4Wrd2ta0eWaouWAXvRSFpDktuNWoL2e3R1Z8h2PNc/milYb5AxC3xp YIa097nBV1s1FBqVUjgepKllDtTi+4WvEOdlppsSBrixSGaYcnAybNNjolwmlUKC8d4M PEVw== X-Gm-Message-State: AFuF++nUPXDxsqA3s/G4+L9N7Bgp97ST7OT/o3aklvHCCaK5Dcs/y7u5 BK59M84UX3ht+b48ucEfNrftAJVYOnzvGnTSalaZ9zOo5Uz3qTTuGCzcWb6o0parbh5Zw63U5TP SCv8svmA= X-Gm-Gg: AYBFou3Okdc7s8qPxXSCwYe03FDgUJGV9CF1UZEXKoDV6vbpupiTboR0SWfE/8NqZgn x/K5E6i8Z8zetPTkRazuHoAJ/WYRMF5ReOviCZTV6rm+F25ezDhcPq9TFz41FAXIjk8HzoopfQr h69MJYDub3RQXmwZmP+f7Aj1cgygVvuk56VAMLixQtoCv1Wm/CbFCftXBnfoIEYCrmKDaE9/8hu XGZ6gNLFnoGTczjbuldbTeQrIkk6YqMz10H0p9ogFAYK5nIsYwhyrEYd+AHIagxc3priEnfsRdt xAEmU14lQmUtIhNZJS0tTYyQB5GnQ6oB9RkB8k+ks6/JrTrFgXnbwst37swOvEN6E0T/9fpFocM Ij+3tkLu/wGxjM9SBCKElOBhsoa5ZInhc0KToAnRCteJ7yRjjrxHnLeBJq2mf2exbLxLS90oY40 KkArngDuzYR6vSuiG+lSX1pAn1GWF3NrjaQFT21MXbUcXdmDUhPOYWtcqyIHaHX72bILH8+T0Tw VH4Sr5L7neq6wg6YQ== X-Received: by 2002:a05:6820:200f:b0:6b6:93d6:afcd with SMTP id 006d021491bc7-6c7d1bca6a7mr5342215eaf.26.1789619534491; Wed, 16 Sep 2026 21:32:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 045/101] tcg: Generic expansion of tcg_gen_setcond_* Date: Wed, 16 Sep 2026 18:27:27 -1000 Message-ID: <20260917042823.542588-46-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::2b; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x2b.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619882082158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 ---- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 42 ++++++++++++++++-------------------- 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 006f668aa5f..2df3fe5f6a8 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,8 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_setcond_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_setcondi_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_negsetcond_i32(TCGCond cond, TCGv_i32 ret, @@ -217,8 +215,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_setcond_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_setcondi_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 ret, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 63e87c8313b..6ce86d2005a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -26,6 +26,7 @@ DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) +DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index abb37a6d623..762888aef40 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -121,6 +121,12 @@ static TCGOp *gen_op_ttii(TCGOpcode opc, TCGType type, return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), a2, a3); } =20 +static TCGOp *gen_op_ttti(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, TCGArg a3) +{ + return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2)= , a3); +} + static TCGOp *gen_op_ttttt(TCGOpcode opc, TCGType type, TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, TCGTemp *t3, TCGTemp *t4) @@ -673,6 +679,18 @@ static void gen_sari(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_setcond(TCGType type, TCGCond cond, TCGTemp *dst, + TCGTemp *src1, TCGTemp *src2) +{ + if (cond =3D=3D TCG_COND_ALWAYS) { + gen_movi(type, dst, 1); + } else if (cond =3D=3D TCG_COND_NEVER) { + gen_movi(type, dst, 0); + } else { + gen_op_ttti(INDEX_op_setcond, type, dst, src1, src2, cond); + } +} + static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); @@ -741,18 +759,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_setcond_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_movi_i32(ret, 1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_movi_i32(ret, 0); - } else { - tcg_gen_op4i_i32(INDEX_op_setcond, ret, arg1, arg2, cond); - } -} - void tcg_gen_setcondi_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { @@ -1531,18 +1537,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_setcond_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_movi_i64(ret, 1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_movi_i64(ret, 0); - } else { - tcg_gen_op4i_i64(INDEX_op_setcond, ret, arg1, arg2, cond); - } -} - void tcg_gen_setcondi_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619583; cv=none; d=zohomail.com; s=zohoarc; b=CCJH9jh9gToGkMyoGHgGP4u/LJPzUH6Jdaq7qzoWHcklOCDCR/F0k7cpIuKRc/QzsTeg/wY5M5zoV+V8Rao8emnPmo7SGXNwU0dF67hXcOqRRPzAKnOOEJdOorEbHLXpCXTJb4MySTUKkLjrny747fabhSN/h6knrXeLL2QwJLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619583; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=dXkmkZQRdy1MWhyM8kA5bqNu3zOHMZSLy0pvwRwNPE0=; b=C/xaLWnfAOlV0YyJNNoT4NAM7FnC4hh4iTTpaElV2QO2VO+cjyNoUdx2uX/BKwhquNw2iIUVgXwOaufJl8DMP6ReEXRAkLKu3bAxp7EY+xAp4FH526gaWse/sEwVT25kzhguVQRNoZqx9kfeSadIDeLEcn4GGAkjy1FHXoL8frk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961958307450.047451134810785; Wed, 16 Sep 2026 21:33:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nm-00025J-PG; Thu, 17 Sep 2026 00:32:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nJ-0001U3-0D for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nF-0007DG-2K for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:18 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-398c066106cso295705a91.1 for ; Wed, 16 Sep 2026 21:32:16 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619535; x=1790224335; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=dXkmkZQRdy1MWhyM8kA5bqNu3zOHMZSLy0pvwRwNPE0=; b=wZK5or4bVn0qpXfh8gGWV/v+vGDN3tEMb8tYR+ZceL8yTZXb70yUc4MlynHjf+nnBh PVwLYTNJgDgME6Jk7eaEtUkc1sU5/zJSec1pUKdVpYnnYATV9LHNIhA3pcuYuR4c/GyZ jxs1pkLFpJO6IEDoMVAeF0uJEIWsFyKbJZKpn3yJZYjSM1o78pW2pHIG5Z2DNnChBxSb /VxY6jhqT40ZauTLa0TaG9qIINY4pCL8d1XEsPzGllFWieI+HRWhRPjvfbp4OZVR2pTz bE6lEtVyV8OZOol9f9393UuLd72+PXkxQABxTyOnFIE/NnvVlyfbraQzGB1VnuM+7o0u rWIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619535; x=1790224335; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=dXkmkZQRdy1MWhyM8kA5bqNu3zOHMZSLy0pvwRwNPE0=; b=0APR1X99kqw3tpQ9YfmBv9+2tlLxXnMavmTARqYXUzLfk29eOMu4plDW6yiMINhYSR MqIfV6lb9Hjv+c+oLzY3XUz1itLCNZGBE0ByPVD4N7kS7rfGoilrzd2W6vYseRpFQBRN vpPEESgtJ1vf7npeNYigYo1j3TqkutEwYaaAsjOtISwUVNEcPuzH2TfSIpdOziSozJiL YXugX56mKXx2Zg+B/TMTJzH3J0cPymCVQVhgHqRsMmGQ/S5aQsYXVSyE+DJNcKMHinEj bfMj5vqlc1764nRIC6WPK/526y2yyTyqnifnG+hvJtuCaWcbX5CT+MftNHpT8ojCIe8x DHiQ== X-Gm-Message-State: AFuF++knOGecBg57BSVv7tbhfB4gDgYJoPiTDTDLvew64u/WccvItU/p ejlNHaIWeoxTCQV+GhKoC6aN1VsmHkgd3UN1GpnDTz+1nn5BLuL6r+qXV78UWsqDRKyN20TlohE R70VG0u0= X-Gm-Gg: AYBFou3RPSe7TiW4iSoDKGF9oBSLO07uk5g+VlqprfzN7zAH8mEm8+Igpei4ih/GmV8 9THhplXPHNBW/KlJQt7RlupG1RaYZekvqkk99fmW7+CJuBZJ9nCAdRaQNZ1om60WdIuVVfH1FzD wIaLrahSaSIN3Z3Pf0kgQChoSt6KZtkHex3jcCAQX/EZS3kEizGQvKyc5ialy/xnS8AnktOAYir mfBKcQgIkujTQEEiXQHMfb5j6S/GqBvkbG/ZGdSpDwfCboLipyx8c+SagsFoOk+VIlgHTaKrJen 1JTte7GVKrLMTD2Zpfjw9M4+RifM3gKEGlHc/weOnISsLkbc20vPiFojZTH3Q8u3p4LbkkBwz75 uW2jIvTkPZ844QBFU0gwic8x4hDIfwhqfpsXPFy5CB/sKh5cgb2EjTrdMuPk7Bhc3hYauZT2cWL 0JSZRfdqdC54Fp7iXyg6RZNcf4PHizt633iQuSxLOLUPA0bFq7wwLaPiwjrv3jHenuPK1YrP7ww y0MqKw= X-Received: by 2002:a17:90b:544e:b0:39e:35e4:d31b with SMTP id 98e67ed59e1d1-39e35e4d992mr8960344a91.5.1789619535471; Wed, 16 Sep 2026 21:32:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 046/101] tcg: Generic expansion of tcg_gen_setcondi_* Date: Wed, 16 Sep 2026 18:27:28 -1000 Message-ID: <20260917042823.542588-47-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619584713158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 ---- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 18 ++++++------------ 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 2df3fe5f6a8..c3fd467400e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,8 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_setcondi_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, int32_t arg2); void tcg_gen_negsetcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 ret, @@ -215,8 +213,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_setcondi_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, int64_t arg2); void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 ret, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 6ce86d2005a..42e0fde523a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -27,6 +27,7 @@ DEF3(remu, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) +DEF4(setcondi, TCGCond, TCGV, TCGV, TINT) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 762888aef40..38902e4b54b 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -691,6 +691,12 @@ static void gen_setcond(TCGType type, TCGCond cond, TC= GTemp *dst, } } =20 +static void gen_setcondi(TCGType type, TCGCond cond, TCGTemp *dst, + TCGTemp *src1, int64_t src2) +{ + gen_setcond(type, cond, dst, src1, tcg_constant_internal(type, src2)); +} + static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); @@ -759,12 +765,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_setcondi_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, int32_t arg2) -{ - tcg_gen_setcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); -} - void tcg_gen_negsetcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { @@ -1537,12 +1537,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_setcondi_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, int64_t arg2) -{ - tcg_gen_setcond_i64(cond, ret, arg1, tcg_constant_i64(arg2)); -} - void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619671; cv=none; d=zohomail.com; s=zohoarc; b=mGBcDHQrADxytikv20Poy8I2OG340G45cngqMHlT6ODp2SUM+tQNoSpWYxoQ2xgy9Yyi/vS2bkPXp5/MdQ1EOnDsccdPgETyeTtjN8gFTqGfd3mUKcIn16KTcPpGJ32DUS2zMl61+EVtH2330GVMjYNbIOJ8aoraehYbDhFmkWc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619671; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=2nXWGw5zcUWnvEdQ2sHc/iNn1wy6zCyjLDR0NtaCqJA=; b=JbtBM8bIEbd9L+TbOqXVNtQ/H+h60gpSQ6KyF4Ic1/Xvvn9CsN4G6ioRKdXUq3ga9vmb16Mo1C5ihqSzhnQQdSZTrNCMPvcINy6v4G0FVvnYuLWaPILaWw5mNqZuQyFM+7qUTR8Et6MuuI8HQs1jvC/ffHrfQo4H8G1KkdwILVs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619671532942.3905351357334; Wed, 16 Sep 2026 21:34:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nu-00035C-RQ; Thu, 17 Sep 2026 00:32:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nK-0001UP-HQ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:23 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nH-0007DQ-QC for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc4d04d73b8so309983a12.1 for ; Wed, 16 Sep 2026 21:32:17 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619536; x=1790224336; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=2nXWGw5zcUWnvEdQ2sHc/iNn1wy6zCyjLDR0NtaCqJA=; b=WjujNkk2mW2jPQhxJxjyAxwI/INxqY5jtMqOsPPbhRG+u+Xwps76wQaZ6U5X+SdveF M8zJOhoRX16vKM+soCx94s7fk5cjd30XjEZdJPa+7umh+/Mi4JmKyAtoInGfp5mudeLG A/Vkn6zy0MbSbowjYFFX1UHr3LC8sieDRUVH0kyiiHktK//Iz/+y4yjPvKB1LY6bW2OU hD5bIFPXiHWn7Mi2Goh0n/mz9lRN2Ib0P2gsjg/fIl4Ca5mdeWSGjP41gB3OIo2lptF+ iATE5dYIBTOfrMR/FKEiD6hqkf1N96HJ5M+8glLC2oqsIaYedMU7rmw7cpxqai5TMr+v 8QhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619536; x=1790224336; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=2nXWGw5zcUWnvEdQ2sHc/iNn1wy6zCyjLDR0NtaCqJA=; b=IZfYx2xoCMCnE4AC30vh4fDl88P21aThZTAAD4QPq8F0WVQQstYvjXBuZUAmHlHIZQ hEt0bOiJ8S0cr+8Rvdpy1IviqZ32RNijnkUbitzgW4i22o7YkypkmsCE5KkSjAi9Xs3R 9Z8CNBnOznS6qDjtWSKTUfhggR5A3CK6X+HDuNtAM16jNsWuRUzVNCKJR31JXsF6mwLd bMuzys6hrhRDyPhYzrQFI3sGI0tu822cnXwFb4PIO+LXRWB8ZvyVZP8wccl6S39Otbdp qpDkC7mwrEtRXG7g8gghH3lIf3TYpI02E/WeK1AHCnMJNeQXt2FdS20qbWoCwV+Jy0Ng /MiQ== X-Gm-Message-State: AFuF++lXLHEIOCvnyHXiK8QQHTTeIcnsxbMp79IJpkXZmkLkOo6q9lYK xOKpYenzgGKGqQ9H8rSAas3xVJiKAwDwvRjWeSjeqv+sklIwOmEyWmi/8guoeH81hxhYjUtYZDL f3oKpL5Q= X-Gm-Gg: AYBFou2xlJDLA0Mto/K2nrJXw6MpUyL2a630RLjhWUZfksdYY4Ljd/EGmH+j+1nWlXP MAJw8yt5Y2JRsF8Ku5L8Bs+p3Zj/3rP8AE/bHdCR/kmOlsSCuwrHllaG4O7rZEadLhyGHumLfCN xgeC+53g3BMwOQ6Kx/oY7N5piwRMKU9CgH6wkD70hEMUrOmd86lyOXjsTkmFwaWDcmgnlxWXM4B PHSXBdVT/SfcsPyFxMzqYl/CAuXm26XV1KlVgXYwYmMq4BUR125oFFQQ5pyYar4BLPNjzmFU0at qMMgXYYEITEgK9J+GKksUklqWkpDjDLzzN1NNA+7Nwygv0SC5/Q+CQV7jNpMg+Jo/WIKebwrIgj O3LL+ubWAPGy5vyQmwcBJ3Uuii4hcaAGGP9rvB7mZ2BcHiPx6hsl1vkFXquURVLw0Ld/ptjavIZ fG0i0OsJslVoOqcHZ/057dIKRfI+Wb8vGrER/XlnVRBnHQSBVRs7UD64Zd6aOil5IAp1wqiZ9GN UTQTS8= X-Received: by 2002:a05:6a20:6f0e:b0:3d1:e510:905f with SMTP id adf61e73a8af0-3dd5f3c26dfmr13201208637.1.1789619536379; Wed, 16 Sep 2026 21:32:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 047/101] tcg: Generic expansion of tcg_gen_negsetcond_* Date: Wed, 16 Sep 2026 18:27:29 -1000 Message-ID: <20260917042823.542588-48-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619673067158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 ---- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 36 ++++++++++++------------------------ 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index c3fd467400e..6ec53bd7a15 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,8 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_negsetcond_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_movcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 c1, @@ -213,8 +211,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_movcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 c1, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 42e0fde523a..8bbbf39f13a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -17,6 +17,7 @@ DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) +DEF4(negsetcond, TCGCond, TCGV, TCGV, TCGV) DEF3(nor, TCGV, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 38902e4b54b..4fc8d23e629 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -575,6 +575,18 @@ static void gen_neg(TCGType type, TCGTemp *dst, TCGTem= p *src) gen_op_tt(INDEX_op_neg, type, dst, src); } =20 +static void gen_negsetcond(TCGType type, TCGCond cond, TCGTemp *dst, + TCGTemp *src1, TCGTemp *src2) +{ + if (cond =3D=3D TCG_COND_ALWAYS) { + gen_movi(type, dst, -1); + } else if (cond =3D=3D TCG_COND_NEVER) { + gen_movi(type, dst, 0); + } else { + gen_op_ttti(INDEX_op_negsetcond, type, dst, src1, src2, cond); + } +} + static void gen_nor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { if (tcg_op_supported(INDEX_op_nor, type, 0)) { @@ -765,18 +777,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_negsetcond_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_movi_i32(ret, -1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_movi_i32(ret, 0); - } else { - tcg_gen_op4i_i32(INDEX_op_negsetcond, ret, arg1, arg2, cond); - } -} - void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { @@ -1543,18 +1543,6 @@ void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 = ret, tcg_gen_negsetcond_i64(cond, ret, arg1, tcg_constant_i64(arg2)); } =20 -void tcg_gen_negsetcond_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_movi_i64(ret, -1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_movi_i64(ret, 0); - } else { - tcg_gen_op4i_i64(INDEX_op_negsetcond, ret, arg1, arg2, cond); - } -} - void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 8); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619680; cv=none; d=zohomail.com; s=zohoarc; b=GkF7EkVJqTL5C8Q2VZoKXzqfbNGzX+dJunufEYSvPXVQqvb/x1DJhPJL8coICsHuvRUZS1U1lICjMwXbswL0NF5IdoFif2nvFhH15KbnKMma8+7ictlnBhfQuR8jtUVbFUBNRT0qvFuwSWdK8I1JS+vwE2o/YiC6WMUP7js3Zk8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619680; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=h5dzr7U9WMKHt2bDyFr+kGeGhS0c/3K+Cu4eTX7xA2k=; b=D3DfHGDuTbag+O4My4kKRt15rtXPJpe1JsTNlZotqvlVowj7UWipEeu+l7aCrFKhSVtcwn1/ahvCk48BIrYba8Alc/MuUvtNCvehOh+Xw9hQSzGPBQwVXW2tddSbh42rR3Pz1BK1YvyeovzdATR+wyFm2H8iwU/9stbngwxgsGg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619679943441.4514264652747; Wed, 16 Sep 2026 21:34:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73o8-0003d9-1M; Thu, 17 Sep 2026 00:33:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nL-0001Ul-Fb for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:24 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nH-0007DY-RO for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4c79fso154729a12.0 for ; Wed, 16 Sep 2026 21:32:18 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619538; x=1790224338; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=h5dzr7U9WMKHt2bDyFr+kGeGhS0c/3K+Cu4eTX7xA2k=; b=kp/HykT9DXvI4bORH7HScVBH/8REH0JZCdKCegbkqid6OJeV3Zwn9IvuzYNkVSqbYF novxmTnkgf2Wz1jzc90CtunTbUFhIIs473o5U31EmXOuVv2x+SLgoPLSvUeDYC5Du6Pu NRsphNINcB3LDxc7oAAqRomN45FPX3Iax8Bu3sLxyGxSFwcaM5D4i/URls14ifSdm+Gg dN/Q92u0AsauZfhzQ8yfEWCdv0it7eit5wTi6zzmr6WT4KI5KE8R2x+WnyM8lT1/wHMS RIVe1oNxZyHrTs8ZcQb+J00MpPOxI9fIzqjmmgIx0E5z8vFp3Dnioo2F5lgRtuT7K/Ev ttIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619538; x=1790224338; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=h5dzr7U9WMKHt2bDyFr+kGeGhS0c/3K+Cu4eTX7xA2k=; b=0OA/PqrC5S8+da/Z++RE/c9V01vlk43Vv5hhiReJ87wDqcc8ci/u+r+9xd83w81QfL sBQ0+zeAuq8WsLkeYAGKre9FM81BGzI3NFP2n5QTW1r0S82j17vZ5jnPpiLGCxxqfu6D EmwtOpbOVtNkEy4ivXvmFbFmIh1ZLaOQkA04cmoF3xDZ2Hv6MOklt4HJPnVsKKX0JXKV WxuFaVdzIKxVB2Mg0aYzWkcSbPtQkPMoNyeh94etxCz/AF7WibxSPVfAYD1lphLFziHb hLJWlzelwiq1llGW78mC7v5ChOIDHH6gRX3leoHcQT5y2GqwHxjOFUorUshDZrs+4S/5 rvJg== X-Gm-Message-State: AFuF++naEKTwKtQgzHviN4KR0Z8O6MS2c8ObM9sggji3KRidpDdxRM+T KVqdw6OFjvJjMj6ZXUFqJ6jLYcry5YkR02xKC00uzz5o97z1S3VAdPwMaJXqM1PM0xsc50C2wab zsO0Vylo= X-Gm-Gg: AYBFou126JnqvixcCTGG/7wn6BDdSGN7658Ii0AGEmloEK5g3JMSJ7nL+MSH90wJt1a Pxq/3NrU5LMoumgdlAqoSJ5++icZx9oke5L8WCSLpvLsAuMGnTXgy+zyepKyxg40APcqLlmK9Bc mVCRXbK/IFJ9hgclk2vSs/Du2l2yT/4mrq0wjaJcj21wfNHwfpS8wKSZGoGwQKO3O1QD/++1Hte LkBjVFW5Jyo8i1C7mkPf2hNVJiMElaaJTxNFk97VIn676WkaReknOemg/YXqRw+2SCf1MTRpu0Z X4JSsmlkWZAHczi/PtDxz26IKn2WJxVyBj/bOtMcQL/cVKh9cAhzRKBACCr7KByBxYjwbq333r9 9srC0DqJqNO+XoBw+M86Dtp8fpGpKk0kUzDhkDsrUcTV/3qi+zpIUygVu/iwf21YG65ksn8rMzF ShqiXcHM+TmxiFHEbCx6SjbPbAgCp1pkTVgh3kCZfRn9B+XZhUcACrgwgmUrgMCAFtGunKztTDt 6GsqDOgQgs+PMG69w== X-Received: by 2002:a17:90b:3ccb:b0:398:ba9e:75ff with SMTP id 98e67ed59e1d1-39e1e52627bmr12538775a91.21.1789619537312; Wed, 16 Sep 2026 21:32:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 048/101] tcg: Generic expansion of tcg_gen_negsetcondi_* Date: Wed, 16 Sep 2026 18:27:30 -1000 Message-ID: <20260917042823.542588-49-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619681116158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 ---- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 18 ++++++------------ 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 6ec53bd7a15..9834a70cac9 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,8 +146,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, int32_t arg2); void tcg_gen_movcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 c1, TCGv_i32 c2, TCGv_i32 v1, TCGv_i32 v2); void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, @@ -211,8 +209,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, int64_t arg2); void tcg_gen_movcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 c1, TCGv_i64 c2, TCGv_i64 v1, TCGv_i64 v2); void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 8bbbf39f13a..a620c8ad69a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -18,6 +18,7 @@ DEF3(muli, TCGV, TCGV, TINT) DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF4(negsetcond, TCGCond, TCGV, TCGV, TCGV) +DEF4(negsetcondi, TCGCond, TCGV, TCGV, TINT) DEF3(nor, TCGV, TCGV, TCGV) DEF2(not, TCGV, TCGV) DEF3(or, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 4fc8d23e629..334e5569e09 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -587,6 +587,12 @@ static void gen_negsetcond(TCGType type, TCGCond cond,= TCGTemp *dst, } } =20 +static void gen_negsetcondi(TCGType type, TCGCond cond, TCGTemp *dst, + TCGTemp *src1, int64_t src2) +{ + gen_negsetcond(type, cond, dst, src1, tcg_constant_internal(type, src2= )); +} + static void gen_nor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { if (tcg_op_supported(INDEX_op_nor, type, 0)) { @@ -777,12 +783,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_negsetcondi_i32(TCGCond cond, TCGv_i32 ret, - TCGv_i32 arg1, int32_t arg2) -{ - tcg_gen_negsetcond_i32(cond, ret, arg1, tcg_constant_i32(arg2)); -} - void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I32, 0)) { @@ -1537,12 +1537,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_negsetcondi_i64(TCGCond cond, TCGv_i64 ret, - TCGv_i64 arg1, int64_t arg2) -{ - tcg_gen_negsetcond_i64(cond, ret, arg1, tcg_constant_i64(arg2)); -} - void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 8); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619754; cv=none; d=zohomail.com; s=zohoarc; b=V+7RWyCTB9oYKVJf++TnRU2oVkFH2CQnc7KWT4GlkxtRIdAmFdLcG0Z3zrmQThrIu20mfAJ/2tPS/ELdia7Z8355uymHn0f2Z5fycaobQIj1Glv7+oyoDEpxTpZA27iL85yOGlOn8+3SE+t3H+6/RbVIv0iLBedlZ69/pe3wWWk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619754; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=uOfMS7qrYhZaWjxyr4L4+3ETjJs54g76uVDGzRGsGoU=; b=UPAPW5UQs0ao6OPUGnMj4/Y2OgKj8t4KJm7QweXDQmqucGG9eI0P+hOEV8vWIIryv32wAB/vKWyVSRC7acr+ylsJiJKkU6CPgQVSI8b4Ve5ULrh0s5yY09sz/uKMFsMih7YJGDFM3vlKP1R/CWJXwrMSJJICsPlKLaDQDej3S78= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619754913877.5966064397313; Wed, 16 Sep 2026 21:35:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nq-0002U3-S8; Thu, 17 Sep 2026 00:32:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nL-0001V9-M8 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:24 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nH-0007Dd-RA for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccafb751so323491a91.2 for ; Wed, 16 Sep 2026 21:32:19 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619538; x=1790224338; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=uOfMS7qrYhZaWjxyr4L4+3ETjJs54g76uVDGzRGsGoU=; b=un5HDpFb4fEF87eN7c3ry2rOYNePo3J0qHPm3EnBc3CWPu1asqb/12hPzSDid6pa13 ZSvpKws6tZEFcLW1cv8QHUgf6axSUgEQrj+Pcm2oBPwhdI3k6dkRsdSN/3F7a25lIv65 OyfSFk0Auem2DRu8DxvI4S8WiFc23vc+fJeik8TdrszXmLu9KwOUTHnb25tzkTuBi514 wt/VF/g1iGUtNqOSPMgZ5uXn4t2bsH0fO8AO+9QLmXr/w5ko5wnQfqW7usKF1OwqwRYx G4tZKzCTWRrAdemYe0Nmt6XY0DIA1XE0na1SInk7M1eKadvRDXR/OlKOYiHPDg2Giad8 rNdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619538; x=1790224338; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=uOfMS7qrYhZaWjxyr4L4+3ETjJs54g76uVDGzRGsGoU=; b=Cn7CKh/7ee3GXnt7dpAHYy8Yt9unslRD67BocjUQlISknm5RUiLHeU7wdm+dqRB22P RVdNjRfwJ2w5hbd3m0D/0tv3WOlZF/rzQQh+AGUg1EknkJX15aGPQJo/vCiFvU/Bq4r+ xjjPQUclR8qiPc6bwaY1Zxvx72jeXFvAZBA6qQzfSwEyxQoiGIAkv2UKDF+OL1cZSw7R YKRVDZbClhu9A7aZNCVNz42yxQcq4NcMBAw9+ndBFsb9dMo31f/fJSrorLnF1RvQjcca Em+TFrNwysEqPvWQXn0wSEDfiScKxMVEzn9HBNW2LrJcez5Js2FtYJR2qEiBuBXxNjsN UYfg== X-Gm-Message-State: AFuF++lrZ4KgmMEU1chTDOb1GfJ+FJQplxBhw3CLcwrvehY/a2nY7R80 E17Q+ix8GwboYgQvMKduCMcy8Gcifk69mG52PxZjnLSKFsrqOgdIl9EHeC/Q/Ajvwoyvj6f5bK6 T0REY X-Gm-Gg: AYBFou3KYAZVL0sDoEIPcAHsEFolO86IFhiDioAoCfU6qJRfSuGgtBVCU3Rh5hUTD1U 7QiIDbPyZCNneiUEm8IHxNVV11A6dVckyXvWM7PfrnJTuCD576Qrjl4kXsGGMh0+7pgn7j0tlOz notz1KEpNp9fffLaQsVO/74o7qhkAdra88usFxY/yJCw/9YIloI00LZ9qZBJo481hNpUnu7Dwf+ W1EsfL8dulkzdZ56jMmhULEsisHC2Bu7H0H+6+qn5eISxQJGWIuW/G1eKS0MTRFCHHd2ulhEuJU 5FY/2RqGdOEZxM8tjPFM0y+id6bNo2jMCl1k0uEM765aaJ98JpV7qgawW5/2V08Ia01QY+iUzeV jgJ96R38FgyzpBbmzy4JsNNdCB4UV2fhsp4SwBQY+FOCJy1rHwJOBTiqdePyQcdvqiulqrvSquk ifg82bcEi3cYbZYNSAHkp/4Wbfz7PnFn459PN0HAzs4Y1xWAYMvs0kMxQem8gkAVMRM7hS2LVfD gemBI0= X-Received: by 2002:a17:90b:2748:b0:39d:f06f:79be with SMTP id 98e67ed59e1d1-39e1e4649camr16668571a91.15.1789619538326; Wed, 16 Sep 2026 21:32:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 049/101] tcg: Generic expansion of tcg_gen_movcond_* Date: Wed, 16 Sep 2026 18:27:31 -1000 Message-ID: <20260917042823.542588-50-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619755573158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 7 ++-- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 70 ++++++++++++++++-------------------- 3 files changed, 34 insertions(+), 44 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 9834a70cac9..4d660ca2db8 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -100,6 +100,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3); #define DEF4(NAME, T1, T2, T3, T4) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4); +#define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4, T= 5, T6); =20 #define TCGV glue(TCGv,TEXT) #define TEXT _i32 @@ -123,6 +125,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); #undef DEF2 #undef DEF3 #undef DEF4 +#undef DEF6 =20 /* 32 bit ops */ =20 @@ -146,8 +149,6 @@ void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); -void tcg_gen_movcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 c1, - TCGv_i32 c2, TCGv_i32 v1, TCGv_i32 v2); void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, @@ -209,8 +210,6 @@ void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); -void tcg_gen_movcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 c1, - TCGv_i64 c2, TCGv_i64 v1, TCGv_i64 v2); void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index a620c8ad69a..26583254111 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -13,6 +13,7 @@ DEF3(divu, TCGV, TCGV, TCGV) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) +DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) DEF3(nand, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 334e5569e09..9cddfd370ff 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -135,6 +135,14 @@ static TCGOp *gen_op_ttttt(TCGOpcode opc, TCGType type, temp_arg(t3), temp_arg(t4)); } =20 +static TCGOp *gen_op_ttttti(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, + TCGTemp *t3, TCGTemp *t4, TCGArg a5) +{ + return tcg_gen_op6(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2), + temp_arg(t3), temp_arg(t4), a5); +} + /* * With CONFIG_DEBUG_TCG, tcgv_*_tmp via tcgv_*_arg, is an out-of-line * assertion check. Force tail calls to avoid too much code expansion. @@ -256,22 +264,6 @@ static void DNI tcg_gen_op5ii_i64(TCGOpcode opc, TCGv_= i64 a1, TCGv_i64 a2, tcgv_i64_arg(a3), a4, a5); } =20 -static void DNI tcg_gen_op6i_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, - TCGv_i32 a3, TCGv_i32 a4, - TCGv_i32 a5, TCGArg a6) -{ - tcg_gen_op6(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2), - tcgv_i32_arg(a3), tcgv_i32_arg(a4), tcgv_i32_arg(a5), a6); -} - -static void DNI tcg_gen_op6i_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, - TCGv_i64 a3, TCGv_i64 a4, - TCGv_i64 a5, TCGArg a6) -{ - tcg_gen_op6(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), - tcgv_i64_arg(a3), tcgv_i64_arg(a4), tcgv_i64_arg(a5), a6); -} - /* Generic ops. */ =20 void gen_set_label(TCGLabel *l) @@ -334,6 +326,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3); #define DEF4(NAME, T1, T2, T3, T4) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4); +#define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4, = T5, T6); =20 #define TCGV TCGTemp * #define TINT int64_t @@ -347,6 +341,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF2 #undef DEF3 #undef DEF4 +#undef DEF6 =20 /* * Templated operations. @@ -369,6 +364,11 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), \ glue(C_,T3)(c), glue(C_,T4)(d)); } =20 +#define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f= ) \ + { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), glue(C_,T3)(c), \ + glue(C_,T4)(d), glue(C_,T5)(e), glue(C_,T6)(f)); } + #define C_TCGv_i32 tcgv_i32_temp #define C_TCGv_i64 tcgv_i64_temp #define C_int32_t @@ -408,6 +408,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF1 #undef DEF2 #undef DEF3 +#undef DEF4 +#undef DEF6 =20 /* * Generic expansions for templated operations. @@ -544,6 +546,18 @@ static void gen_movi(TCGType type, TCGTemp *dst, int64= _t src) gen_op_tt(INDEX_op_mov, type, dst, tcg_constant_internal(type, src)); } =20 +static void gen_movcond(TCGType type, TCGCond cond, TCGTemp *dst, + TCGTemp *c1, TCGTemp *c2, TCGTemp *v1, TCGTemp *v2) +{ + if (cond =3D=3D TCG_COND_ALWAYS) { + gen_mov(type, dst, v1); + } else if (cond =3D=3D TCG_COND_NEVER) { + gen_mov(type, dst, v2); + } else { + gen_op_ttttti(INDEX_op_movcond, type, dst, c1, c2, v1, v2, cond); + } +} + static void gen_mul(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_mul, type, dst, src1, src2); @@ -1092,18 +1106,6 @@ void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al,= TCGv_i32 ah, } } =20 -void tcg_gen_movcond_i32(TCGCond cond, TCGv_i32 ret, TCGv_i32 c1, - TCGv_i32 c2, TCGv_i32 v1, TCGv_i32 v2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_mov_i32(ret, v1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_mov_i32(ret, v2); - } else { - tcg_gen_op6i_i32(INDEX_op_movcond, ret, c1, c2, v1, v2, cond); - } -} - void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) { @@ -2017,18 +2019,6 @@ void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al,= TCGv_i64 ah, } } =20 -void tcg_gen_movcond_i64(TCGCond cond, TCGv_i64 ret, TCGv_i64 c1, - TCGv_i64 c2, TCGv_i64 v1, TCGv_i64 v2) -{ - if (cond =3D=3D TCG_COND_ALWAYS) { - tcg_gen_mov_i64(ret, v1); - } else if (cond =3D=3D TCG_COND_NEVER) { - tcg_gen_mov_i64(ret, v2); - } else { - tcg_gen_op6i_i64(INDEX_op_movcond, ret, c1, c2, v1, v2, cond); - } -} - void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619693; cv=none; d=zohomail.com; s=zohoarc; b=MCPpHIpilufnYrn0+IyYTRfLw5WXbewjYZ0iVV0mqFa8j+DpcXJwKfjooIi3FF7dTXLjFM/srnw4RuyeG96peceoWhfSBA0xbyWIFzvOK1yN5MTaENrHnIi16ri2zqyo/eTyI+LEZ6BlLYmeUWD60KzhHj9B3suYCWmyoKja9+Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619693; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=xcnVaWYwKuRJkZD8NRUMBmVfxids9+SS5T9dm6c9GC0=; b=a0iD8wb1j0aHXvT5SEepjn/2r9Cjh6TQCs9b1QMLBftALkn/OMfIObkuGd6ZAHzADUPiCHMb6UYX80Xldv4u28ek1E55XJjusNQGfmoxHxVWQ7a61lppri8yfe9Y8osU3ncDX8R6TnYGsPK41F649zls3Ve4ztlzRGp/rYSgXSg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619693732558.997695102545; Wed, 16 Sep 2026 21:34:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nn-0002CE-Bn; Thu, 17 Sep 2026 00:32:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nK-0001Ua-U3 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:23 -0400 Received: from mail-oo2-x2b.google.com ([2607:f8b0:4864:31::2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nI-0007Dj-P7 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:22 -0400 Received: by mail-oo2-x2b.google.com with SMTP id 006d021491bc7-6b4bff33d18so159959eaf.3 for ; Wed, 16 Sep 2026 21:32:20 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619539; x=1790224339; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=xcnVaWYwKuRJkZD8NRUMBmVfxids9+SS5T9dm6c9GC0=; b=rKowqsmgQw/wuUaZGcE934VNZNrioJo7ih28m6YQUEYqZwIV1f/aKEZCM6A+hjGTmP i5EPYEVHv/RYWBM6zvg9LOzoi/UUiBsHuU3tjfLUuQWdFqGe7rvsvX1GlpNoJEmFosAB LHQMkoUa4fB+vRIkouIL0kX5MWHAHvjC+3MqKQ/PndVXGfYYPDh9LxXcp0AHwG0rufhR y+Vz8QLHgJ5WXi1orgXJwbchyPg79GVzjqWPuGxMMMirg+Hx7wUByl3fNBqcvQB3mfuW aygHrLO9VwT4mz9hIuLC/rsijfNbLooU8cPFCcwN+k5bP9WTzeycDqtnhfk6ESbM4H/f /5Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619539; x=1790224339; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=xcnVaWYwKuRJkZD8NRUMBmVfxids9+SS5T9dm6c9GC0=; b=wAMlxfwUr0G7clcnUqvE1anQYqeM3+gGqn4bKaHDcOEC8ZSJgNU0NtTE0/iXwvpsVH j38Q/hL8+PRtG1+061jR/HTT37O/hKMfzdOfHq5MnQOjZwLO4v1G2BZtJjGG+5v04QsS tSZN+9EhGXOcIUBKpgoRCZHRbOZssTZ0+L+8yJApZ37z5+zXdOsQKoNE3lY6sFin7ZmY D8OZNAJZHd+KkRxfzt34NwVhrt/gLcejBMRxBjn1P8+kiTFmhPMsh0VpQOQpRNhGOum5 SNX9zd6AuSOqsR+TCqnOB8auqeO7jeOl4b8lz5CTYBvVofTT1mzPSqu1pzAT9wtjCLCN UEvg== X-Gm-Message-State: AFuF++mApXuCTzpevNR0Mn/muTHJZInpWe0FNgK05lbabIy7d8+vtOiE gNaMk4amdD51dAJ07lTsFlqY0JUWoQI+7VvY4UvZi/gOCnTE5RpFU+lePA7QDeTR69Fe/Xvaher Dunnm31s= X-Gm-Gg: AYBFou1ALBJYAuzCLwVyHV1J7F9IsrH7PryFLn9LfYJoh4mLPvoVnV0CUtkpHD812KO EOSQC4TXz7E/jwsoRrFvIiBEGt/OHgB8P+3EXR/TeKM9XQeaVFUj/NbdDO0MQujZ00JyYaQvxLW KEQLWXsRceE4zp5Hw5hCpdQ3GKr7uJ/ivm0/a6XoJw2Y8Ap7qOUsPC1DyKlaK5NIBGXZflXK1R7 5hVRQi9oo2+JJK2uAXiL0FGpc4UbDJx5bKiTCtLqoJlYlI8SqqTyjhjFECDuQUoYDlJXYl09x4F Uj35Mb0lE90wOGctxYxctb0OGfbV+F8C8Rv6tFoVnebju6POTk2bv2S1iXpCxy6MtKT1Yb3xxsy j6L4xLDAuwhcV/jTYQmTyRZCPkUyu+G11P3shP87RhD97uE7EU2YeTnYMIwY4y0XuyLLoX2tebC bgBqUv3uEawxQgLa29naF9nHNvJ/EcapW/LiOzSTxhqYHc9I3QXmRBn5BerrixNrj66pCYk9pwW +85JRg= X-Received: by 2002:a05:6820:198f:b0:6c0:7620:fccf with SMTP id 006d021491bc7-6c7d45e15e3mr2122170eaf.57.1789619539255; Wed, 16 Sep 2026 21:32:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 050/101] tcg: Split out gen_extrl_i64_i32 Date: Wed, 16 Sep 2026 18:27:32 -1000 Message-ID: <20260917042823.542588-51-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::2b; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x2b.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619695399158500 Content-Type: text/plain; charset="utf-8" We'll need this for other generic expansions. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9cddfd370ff..801ea56498d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -411,6 +411,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF4 #undef DEF6 =20 +static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src); + /* * Generic expansions for templated operations. * We have used compiler type checks to ensure all TCGTemp @@ -534,6 +536,11 @@ static void gen_eqv(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src) +{ + gen_op_tt(INDEX_op_extrl_i64_i32, TCG_TYPE_I32, dst, src); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -2267,8 +2274,7 @@ void tcg_gen_abs_i64(TCGv_i64 ret, TCGv_i64 a) =20 void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg) { - tcg_gen_op2(INDEX_op_extrl_i64_i32, TCG_TYPE_I32, - tcgv_i32_arg(ret), tcgv_i64_arg(arg)); + gen_extrl_i64_i32(tcgv_i32_temp(ret), tcgv_i64_temp(arg)); } =20 void tcg_gen_extrh_i64_i32(TCGv_i32 ret, TCGv_i64 arg) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619801; cv=none; d=zohomail.com; s=zohoarc; b=cfX+kTg6ZS3re2VU+NNNLn3xO9hYu3xdc2p2y7Ypwu/XctaL6xabY2YW3ulzCbIp9kK7m/HAYBvfIVhj4gARqkbkVY429yrfoyd6CR8uiMRsCJeYVXDKRbcWHR4MkfSrcew8RlhXRy9mM3A2ZvCVxpVCQ1D09Q/usl4LpHH5T+w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619801; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=jHctAB//cJFPGP7zTANxE1gzaMaHznpNpHedhDZ/sXI=; b=lxa6sfL/p55X8g8OhqD9dHv8mr6I5G14h6yx1kAgRnr8N9g6GORhdxwnwpSNeGYBpCcY0OIVpnnamAcVxjUkDd0/TsdtNC2GJYnXFfNJu9HYrGzWT0y/J12W2TD1WbWP3Q0UAFfdts6Jk8kF0ha+JtXbSkdP1gW5P+HUaKQ8pYU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961980123483.2093160784001; Wed, 16 Sep 2026 21:36:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pJ-00063p-K2; Thu, 17 Sep 2026 00:34:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nL-0001VC-UJ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:25 -0400 Received: from mail-oi2-x0f.google.com ([2607:f8b0:4864:32::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nK-0007E2-3p for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:23 -0400 Received: by mail-oi2-x0f.google.com with SMTP id 46e09a7af769-7f4f0d1779dso382937a34.2 for ; Wed, 16 Sep 2026 21:32:21 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619540; x=1790224340; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=jHctAB//cJFPGP7zTANxE1gzaMaHznpNpHedhDZ/sXI=; b=DpYUoOHcEoYgn5zRtluJ9DOF1o9+XRMAw+Uu205b6u8ORfJZyelMLJ2ytF/yy4tJMf relGGivIehFERemwvt6Yd/ZQ5M2ol6hzeUn6pdUOSa2CA2Z+XojXsZWqyKkydJxBcwUg Ma4rZOeI+hB3Kq+2y6Zqt1XZH5xUhMs0R+b7tuBJTeDFEuOfKONj/d+cJYrFl+6dM71F Eq2NkGpCkRSCmtMWNMDP4hjIucPHQ5noi+hmskYxFM98eKLI7AvDuywYpNpjaOom8Ffg nGUvSDeBASUghbeqp/uhcY87ZZCKQYzNaDezrCCcuCNC8ZI/rW/Od+uDg/oAWAfOA+El Up+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619540; x=1790224340; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=jHctAB//cJFPGP7zTANxE1gzaMaHznpNpHedhDZ/sXI=; b=cBKrnFdh1KapIotLBQAWQDhDH5v8ckxxKWjerMtBzJlbr7IsDew8l70Gkp48lcpIGR Q+f9vc3Rhd2pee0BdZfWTE9ucaMIGFjh4PlHVoupmuFvsGamZFpDqcqV8d5npXyRuegb tP5cPgj7mdT+bb8drKDsRitQEgccFWRLvk7U+bprYWUtr+7KEjAaT2j9mONoPPhhs1Yq Np6bVfbRRIwreNPv8W9yr79W0PTVIOydDCI8MzB9rpawzkw25S7YIpOM7RoweMG78WfL ywpavKOjZC2e1lkyBKpTrMXYxva0Qy48bqVZX/np6Ftk9SsDnuyh9MiyTzpNOFYZPd95 A0GQ== X-Gm-Message-State: AFuF++lh+dxCWtk4ArsLYTIaXLkU5/8dx64IjrK+lzDRQt7UNX58wQRR WyheT3/a2EB6YMPmByce5jA2A6NCIrhB6yQZqgIKYyEssENZp3VWtBDfEBJBDoYP+9Ne77xQSMZ gPSt4apI= X-Gm-Gg: AYBFou2G1Tp/rxZ+y7ZdHQps9K40dJ2WuUsBX9fuNnk0zax0iD2ler9bTe7F3if/mJs i4mrRiTaoIx2wm8EuGUytsenO2ae3eGLIzCy9vFXw85M3A9MgMGbUujZroiC5LwgBojgUYIuVt5 bbsqIeoGG12mrVaChueFq/dBu4wdWsoDmut6xL1CuMlZgVFzsiPe245NejyhT2UUJOSZUP9Xqdd O6bp3BhnP8pMzJ9SwvjgW6Y/Lek53cicfKj4l1HvZLoNxkQOdjn3hHfbTivWCrP3L79k5UH49jt VO8lr6hdcEiBuqdZPbIxCB0F/+LvKMIBzz10TgmYRUsPeZ+yqcSaWWg4EFrvI2zRzX8E/40nP5r Gd0MCw3cOAa9zo+doEgVYJD5E2/ytVuwcP49ntPL1f0gBapy9dQR6BnyO5sBWuc87g44FmppK5A AxTqunzYiYPhC5GugUjUd8P3SYR0HcbcvS6OKkNQlqXFiEYkZEJiUJJp6J2Xb/eZB1aP/2qq/5y ERwEIM= X-Received: by 2002:a05:6820:4b0e:b0:6be:6f42:3a86 with SMTP id 006d021491bc7-6c7d44e8059mr5440064eaf.47.1789619540314; Wed, 16 Sep 2026 21:32:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 051/101] tcg: Split out gen_extu_i32_i64 Date: Wed, 16 Sep 2026 18:27:33 -1000 Message-ID: <20260917042823.542588-52-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:32::f; envelope-from=richard.henderson@linaro.org; helo=mail-oi2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619803711158500 Content-Type: text/plain; charset="utf-8" We'll need this for other generic expansions. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 801ea56498d..95685a86873 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -412,6 +412,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF6 =20 static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src); +static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *src); =20 /* * Generic expansions for templated operations. @@ -541,6 +542,11 @@ static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *s= rc) gen_op_tt(INDEX_op_extrl_i64_i32, TCG_TYPE_I32, dst, src); } =20 +static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *src) +{ + gen_op_tt(INDEX_op_extu_i32_i64, TCG_TYPE_I64, dst, src); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -2285,8 +2291,7 @@ void tcg_gen_extrh_i64_i32(TCGv_i32 ret, TCGv_i64 arg) =20 void tcg_gen_extu_i32_i64(TCGv_i64 ret, TCGv_i32 arg) { - tcg_gen_op2(INDEX_op_extu_i32_i64, TCG_TYPE_I64, - tcgv_i64_arg(ret), tcgv_i32_arg(arg)); + gen_extu_i32_i64(tcgv_i64_temp(ret), tcgv_i32_temp(arg)); } =20 void tcg_gen_ext_i32_i64(TCGv_i64 ret, TCGv_i32 arg) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619767; cv=none; d=zohomail.com; s=zohoarc; b=OCS01kd4WnAEWMC3747Gr3Drnd5Q8MzDcLih0OErX/jjnhPPSiO5cDsCb8hwCAw+rjpHzP8dQL7ZmEH3U03JAiGhd491kRIZzCv21Zh0a+hTNcMi6JnS2IcBSMSvD1daG0daMPWbJvyD8oJU9mIhOumq+V9oQhGzI5soAh1YA8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619767; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=2gIK9i+abIagtrUqREW1McmS12OAOh5C5dbuLb9AgzQ=; b=HYtd+Pwd8pGMFOvjL9RWGnLzSY6XYfZrzo+32IBVprRB4eWFNvZ/8AKDG43OgfoQGCtqdph+avAJcmZlq8hPHgyKYpPYqE+4mRpUiV5/YQs5KTzCVRf5H7rq2gfD7W+HYW99tZjHb3uydrByg9a3ph7ZeHYnChN29SLBgVGRtc4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619767470843.43260603699; Wed, 16 Sep 2026 21:36:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73oZ-00040r-9E; Thu, 17 Sep 2026 00:33:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nM-0001Va-PG for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:25 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nK-0007Eq-TW for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:24 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-8633a38df87so228879b3a.2 for ; Wed, 16 Sep 2026 21:32:22 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619541; x=1790224341; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=2gIK9i+abIagtrUqREW1McmS12OAOh5C5dbuLb9AgzQ=; b=Ic0NWjMjLTDdBwRlDVOipGFGGCP1hnecdYYbiPPKLJMjhBYabXkau6RiJfGx2U65I6 Tcmqe+WGfYYbTxOEKohaAxETsqOarq+ba27AEjFV5fRDy0cjdYuonj0uEKz7HT+YNjiZ 0Im5kWiQH7pscXUi5g6gJLTgVYeLgIEsvyuYvfa2UknaX3XYgw2hI7HQ3rS4HFSeAnUU C6AMpg0PFCwDqKtxc4L+6Wa6qrHsA0Y2SZnuUeexpxxZoi8BKh9yRc1YxAMEBi0eXtg+ dX7TRDNa65fcC/89LpCEliYa1j1gCNB0MMrK06W1i1tNhSaar1a7fPjLK187vWKVfC5f 1mqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619541; x=1790224341; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=2gIK9i+abIagtrUqREW1McmS12OAOh5C5dbuLb9AgzQ=; b=WgaegEPtQsSsaQeMslVbgY4CeIwwpytHARxybak4jX4vTdgt5ryVx2NuXUa/d3MgZG ue3TnIw7n51CEU4OnE5O9ZjJa8HE8MRl2QljssBjMAvCAKo35DvYNS3dHBfecCVU5HIP Sf6wIjMsqPoE65KGeRI5xowiNEmlZdFIT8jkimgeHSLv8Sqkc7unqU8AM2K2cY745PKw fzKgM8t+c2UuiDjngdJS3IYMFBBfL28wQqvC7E4T47Ksn6z7ziZYwzZMZmi+1a3SsiSu wxVFSJvHGPdGpLXXq3/Pq64p4eAsWBG11dIR7Pzu0t67jpjED7BnJmw/IqsNSL2esn3c Qr3A== X-Gm-Message-State: AFuF++lHkguWX84Vn+rxJwpXHELVIgsBba9cYiC1Xr1SHAXt9wYRP0vG RwGesH3NhfMnPRwjuoSDSzFqbdRbyNFE7S4sdR/of9BCfqp4dNdJixIJEj2STHfkZ7ECKyxTGPo /V9Vrbe4= X-Gm-Gg: AYBFou3UfHfXdSJqQPurxJtsOK2IGG6Oqip7U0aoHWWok9JFfpuLMOrHQwrWQ535cet 50GG8RRisa3l5YOKSXXhyIyBejDvmy09vbWawTSRktww59Dh9tQnHqvQUxRB+ztchD6X3Km2XBB iu5JTueSYwo326Ksjrz7G0o7I7c6zdwskI1NfcL9i8u7W1/5WHrsbCa0UcQBua81N2d6OlErt23 fksFPu3TyNLg53cfov2i8iLsgGtDoNFCO22qi9KWvV68LWKFgDRbtOWRslQwARIKU8lvuSC6sHP SblyIMrBHXWUBECJYfBWfTEGKq0GotEwq3++nVG0Rz8sJx7z118amDeWANXaKsTiBWJYWIHUoI4 Oozeq+t5zWidKiQYD2frkfnPch60kqp5dUoIYBJ38wmF1mPv+pS9tUXDZeXA+A+coFbln6f9jIh bZekB01uZXBl0hFY5+44UFEHD00EL6KmWCrAyrq7Iwdnhu3iA/1kYMKPi7JwaUUok5MkMZOrIYE ilF9iIN X-Received: by 2002:a05:6a20:7349:b0:3cc:b26a:7686 with SMTP id adf61e73a8af0-3dd5f3d08d2mr13026002637.6.1789619541184; Wed, 16 Sep 2026 21:32:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 052/101] tcg: Split out gen_extrh_i64_i32 Date: Wed, 16 Sep 2026 18:27:34 -1000 Message-ID: <20260917042823.542588-53-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619769551158500 Content-Type: text/plain; charset="utf-8" We'll need this for other generic expansions. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 95685a86873..d72dee683b0 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -411,6 +411,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF4 #undef DEF6 =20 +static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src); static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src); static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *src); =20 @@ -537,6 +538,11 @@ static void gen_eqv(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src) +{ + gen_op_tt(INDEX_op_extrh_i64_i32, TCG_TYPE_I32, dst, src); +} + static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_extrl_i64_i32, TCG_TYPE_I32, dst, src); @@ -2285,8 +2291,7 @@ void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg) =20 void tcg_gen_extrh_i64_i32(TCGv_i32 ret, TCGv_i64 arg) { - tcg_gen_op2(INDEX_op_extrh_i64_i32, TCG_TYPE_I32, - tcgv_i32_arg(ret), tcgv_i64_arg(arg)); + gen_extrh_i64_i32(tcgv_i32_temp(ret), tcgv_i64_temp(arg)); } =20 void tcg_gen_extu_i32_i64(TCGv_i64 ret, TCGv_i32 arg) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619766; cv=none; d=zohomail.com; s=zohoarc; b=MauCHejfE81XDcKJMSxKIMfDzaRjjx2Vo0P4/NoGsN+No4cokSBoU2hu+de8eI1RURU2IRCn/yiK5F3NSRBVnolUnRPMPNcUZSTGL69jxY1lhYaatGzzsPAsQnJbESDzvnAeZOEn+AxmdQA/laEXgOh0zOTGjXDFhtwIGA7rBvs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619766; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=9s71lLEDyz/uvymKsLigfB+L/+7adjDVyPL7LN2hB1g=; b=jwTpLxcU1OAFTJdJLbgQXO4sXD36N4xFtRrdbMiIqnS310DAARmuyVgFK6W6Ypb+9zp2VjH9S88AQKTIN0/fnqcHy9yx5rTY8K/FinxaTx58KRGlLRN9kYv2L7+KEMCcnZcz0ZnDrf7A0Cxx0F580URZHCq47Z1m0mRk6b4d80Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619766836421.63891945848786; Wed, 16 Sep 2026 21:36:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ow-0004d1-I9; Thu, 17 Sep 2026 00:34:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nN-0001Vx-En for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:30 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nL-0007F4-MN for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:25 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-39647184c73so309203a91.1 for ; Wed, 16 Sep 2026 21:32:23 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619542; x=1790224342; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=9s71lLEDyz/uvymKsLigfB+L/+7adjDVyPL7LN2hB1g=; b=RMg+tttgk5CKtEoSWV9Uer4HH/ZFDp+F6T0osK+y0276aWNCQ+Zc6/QrJnagIUVTVc GfZFQLOvOzuLq8MJbBydYj0bqemPaWlEDPLDVsx6m3GE6+/2vK55w+5YUY2O9ZjTVpPc 0gzPO7kLPHQFkbzWLjcSSbyXUF/iqdWekf/JdV9Rfwhbdxq8Xh+s/0io2vhC9raMHXsQ e8GUdRzaA5Ror0MNcQyV7EpN6T3wDsrKcJrNylA8oAtIk72sd6dTcgWTD3uIp8KuRmX8 fsoZU8/z6e9SZtA8PvVM/vomMcjRDXEPabdLDf7p0lXX7FKxP+X2viV7BVEi+mjiPlDb kFTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619542; x=1790224342; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=9s71lLEDyz/uvymKsLigfB+L/+7adjDVyPL7LN2hB1g=; b=tyB0CNLyBT+roxINQuYdNoXrWxHHlPjKNNSGJoskw2xJw7aymYn6zHCMhjTQE22paT n16xJ6PKaC/rXfciKw/HEX0201EgoCdKTGScP/Dd6LLbNfY1ub5u50eu2Tvv98nhp5mF LgN+r07rhH71slKzXy1tK6mulYtaC6AeRevFeMzkB3CRYhXo2/BMvSYYMRMHTOooKzZa EdNhez1UfS0XGgYF/FNvvlME2Bp13JwLeQoF2/dDgKYVu8tRrg6kj0DsRTQq2GkPJg8S ezyfEoxT6qRO5syZPqUigOayoXZbH0ZG6I682fqWfD3R36JS/9CO/h8RxnXpVdUlfYqU KfSA== X-Gm-Message-State: AFuF++l3Bm/+NbM+YymKKs0ssgvioFDsU11hXb/cGz0Zi8LTTdBzm6OU zRgfxqisBWifY5eVljX3yqXnuw6FZUV33Ud1iRy2VZ5pkIMxfm+sHHeGYU8q3llT1pRWeSfJ08R QpPHgEzI= X-Gm-Gg: AYBFou3FTbdbPxliS4u8JLqDkwZcBEoOM082+qXDMu6fXtj63fBdQp1L7r8Ffpn1ZWT z3dmANrKa4QqwHnYl1F/KMNS4uh+d/4F2sldAu5cd39cc5PZMvJhPK5FtB92RzTZmUrO4E1hPee I2evk/kC2qXIV0dgK0hhcyOGgj8DLyznINPYqfvrecB2JgAPeGNYA8bxn1GwZ0HmGTqSSMVSqgb blqJH0gDhGaWe2DQ1RDNnfN5WCTo3pJXYZzLguBPcY4OZbDCPq6DDzYoIai+6ql9VwtF0B/6lcj Xsc+WsCMGppo83oI8mlpWygTLa8p3j4D8EonPvt68yLwVUpu56s/NHF+wQQlg2A12JDuoGJ/gs2 q775/oYcOzb9ym5gJw9rO6cQ6s1m9gcrulh6Zf5E/3te/lBqDvyW3PifryRlBqzqXUnnNqVZGNs pVyJdNDHlfNfOjzkMlR76T/f6+Hl/2vDR2eIfxOeVRQiO1TkrEdj3QJ4F8KcNugdv/KcwvPr37J 5mtCKw= X-Received: by 2002:a17:90b:2b47:b0:39e:888:3841 with SMTP id 98e67ed59e1d1-39e36106e9amr3405783a91.16.1789619542091; Wed, 16 Sep 2026 21:32:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 053/101] tcg: Split out gen_ext_i32_i64 Date: Wed, 16 Sep 2026 18:27:35 -1000 Message-ID: <20260917042823.542588-54-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619767577158500 Content-Type: text/plain; charset="utf-8" We'll need this for other generic expansions. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index d72dee683b0..3453fa97b45 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -413,6 +413,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) =20 static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src); static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src); +static void gen_ext_i32_i64(TCGTemp *dst, TCGTemp *src); static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *src); =20 /* @@ -548,6 +549,11 @@ static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *s= rc) gen_op_tt(INDEX_op_extrl_i64_i32, TCG_TYPE_I32, dst, src); } =20 +static void gen_ext_i32_i64(TCGTemp *dst, TCGTemp *src) +{ + gen_op_tt(INDEX_op_ext_i32_i64, TCG_TYPE_I64, dst, src); +} + static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_extu_i32_i64, TCG_TYPE_I64, dst, src); @@ -2301,8 +2307,7 @@ void tcg_gen_extu_i32_i64(TCGv_i64 ret, TCGv_i32 arg) =20 void tcg_gen_ext_i32_i64(TCGv_i64 ret, TCGv_i32 arg) { - tcg_gen_op2(INDEX_op_ext_i32_i64, TCG_TYPE_I64, - tcgv_i64_arg(ret), tcgv_i32_arg(arg)); + gen_ext_i32_i64(tcgv_i64_temp(ret), tcgv_i32_temp(arg)); } =20 void tcg_gen_concat_i32_i64(TCGv_i64 dest, TCGv_i32 low, TCGv_i32 high) --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619689; cv=none; d=zohomail.com; s=zohoarc; b=Mo96YDJO+iRZizPvRucckZRalyPjL3yKWQAqIYGXm0zuZUf+S1mCJth+k9N3v3Fdccxr6xB0Gc7ELC4sVbwtNvat+6MXHv0qVgH4+yzziQ4w9HM4+h20SUOlzI+urqo7l41JgS2zQt0YIoF8OO8e26eQ5fBLXJbgIfURjnwOnNU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619689; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=zK1r2cuJJiWvu9d/rixHsngXqn1PHxcTW+M441x+7hw=; b=At93MOnWo9XlROkpllvvBB7CLP27IHkCjG2fflV4i5o1j0Kgd99mVSDjmVVV3+lCz6jel4RQl3WOvuOZK0tg9DkGDaANwoh1/fusVe6VevAjCR9HnQjU0zEE0I+FcNVZN3rJRhWdnW82jQod8dnQr7Fpf7sKsxwcr00vT4U8l9s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619689047801.9705336820684; Wed, 16 Sep 2026 21:34:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ou-0004QM-Jv; Thu, 17 Sep 2026 00:34:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nQ-0001dU-Bz for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:37 -0400 Received: from mail-oo2-x0c.google.com ([2607:f8b0:4864:31::c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nM-0007FO-L0 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:26 -0400 Received: by mail-oo2-x0c.google.com with SMTP id 006d021491bc7-6b1ae7089c0so181313eaf.0 for ; Wed, 16 Sep 2026 21:32:24 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619543; x=1790224343; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zK1r2cuJJiWvu9d/rixHsngXqn1PHxcTW+M441x+7hw=; b=wSE/2i94x5NrkSWjY+ZR8aTkSjBvBEsriu0F3lSkt6ym74pzf91G+spGuO5m1eRwns RbBH5paljvQd/qnCUbpR0TvADTRLpncvDaogMQyTpaQ8fFGlDWP60IsaTRskoQh3o+cx ytZqzOZxcQw6lC4lxxF/buhrM09SCiSWuChLeuu+FBfnbaD7gfJJXZsSZCipvFN8zq/F wVKYs4/nGNCAOR/ugfSonr3qqaoB29MYRMOQNqFB773JJ1WoKh/BRNKNj8MkJwznFklE I6aRCRt3ce93cSJZaamEV3vixCxvIfz8al1N/hTjA54Yvr38i+LJwwnoHP6Ea8a/x/tB deJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619543; x=1790224343; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=zK1r2cuJJiWvu9d/rixHsngXqn1PHxcTW+M441x+7hw=; b=YZu39UGWYiiIf7PVFYjYKXUfw5Qq4PCKiMNuJJZyVp8uOD/pl9p8ELD2+1l5FOnXk5 rkjPDXmrYpiEMik63011qb0TkBe0Iwy7BV6T6zfJDwA1+Dtqs5yc7cCZ04sQsay4XbR9 FYteeLJSRrJOSVVWgs3TZYN1tNFrhqd+t6bY3SRygo9f1q02dJ9KhaA4rzyNDXaZDBwR usouEhCu6+MppZfZSsbPpsYzIiLyc5wUPjaNy0JAX/dfgWHZCoPpzgAWpLOpMl7zNydl YesgSJHkHNf6JKvk4FG4WexU+2HC4QkckNJPAYeKwI5UdxoMCGtKwmun3XtVAR3/SpOP /hgw== X-Gm-Message-State: AFuF++lrTt9hjHMk5X0a9r8O+Zhx/eXnwG0RuAiCJeLiaAS7uJ0SAQaK 3aURV90I5kEXKaqeoeaZIW+HNnH2kZXrNrZMv0Hnur2DW7ZUt0/rZ9aN1BBW7QyJyRKnLOyOOA5 xQ5CyBVk= X-Gm-Gg: AYBFou0r0zLLZGuuZNlZ0oGvn2jxs8nq6evVJBQuicaTQDy2zUESM1FWkuujW/yccwA dJfAK39H+JFMisGmKmv9mG29RXxDW/djM6t/V8aC8X5NqUaEKGOespu3vol9D2har2JcYeXEiJP lPapGuwaqeP0Q2bwSbByV1/NCLNyvtxf2RuKKiXqOQLB6IigIZhS+VH2YTninxOcrIcZNFoZXcC 1uVIq5rf3rR0GVjbXnyPIYGpEdogBuNWWgwmWmZiDuzM6fqTzIkVu0/uRMVbgj6Ss9DTnDQSJLa iG/B5sNRCwt7eRdZNyxZNAHQoUT9Q4sv3DFno9dwjLTD+aZhpvVf9shRdMg0+KQdMgRCxMnVUHe xXMMn9lLAut9WPYS6kSx+MU3MCKg1jpL9lRGMsssLGCzo9Dh6U5L4H6TEajfx1QAAwbUfsFKqof FOTawr3qbFBqiMzYzL7hH71PqOlFfSKyaA9w2l/8v2EPX6d5FrDFWOx0yL33tFBha8S7IFEmPZe IfqyYQ= X-Received: by 2002:a05:6820:4c8b:b0:6b7:8396:f3d6 with SMTP id 006d021491bc7-6c7d42e49ecmr5213044eaf.56.1789619543043; Wed, 16 Sep 2026 21:32:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 054/101] tcg: Generic expansion of tcg_gen_clz_* Date: Wed, 16 Sep 2026 18:27:36 -1000 Message-ID: <20260917042823.542588-55-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::c; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x0c.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619691195158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 52 ++++++++++++++++-------------------- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 4d660ca2db8..d882bf5d0fc 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2); void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2); @@ -190,7 +189,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2); void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 26583254111..202df7a62a8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -7,6 +7,7 @@ DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) +DEF3(clz, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 3453fa97b45..50d1b07d667 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -495,6 +495,29 @@ static void gen_brcondi(TCGType type, TCGCond cond, TC= GTemp *src1, gen_brcond(type, cond, src1, tcg_constant_internal(type, src2), l); } =20 +static void gen_clz(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + if (tcg_op_supported(INDEX_op_clz, type, 0)) { + gen_op_ttt(INDEX_op_clz, type, dst, src1, src2); + } else if (type =3D=3D TCG_TYPE_I64) { + gen_helper_clz_i64(temp_tcgv_i64(dst), temp_tcgv_i64(src1), + temp_tcgv_i64(src2)); + } else if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + g_autoptr(TCGTemp) t2 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + + gen_extu_i32_i64(t1, src1); + gen_extu_i32_i64(t2, src2); + gen_addi(TCG_TYPE_I64, t2, t2, 32); + gen_op_ttt(INDEX_op_clz, TCG_TYPE_I64, t1, t1, t2); + gen_extrl_i64_i32(dst, t1); + gen_subi(TCG_TYPE_I32, dst, dst, 32); + } else { + gen_helper_clz_i32(temp_tcgv_i32(dst), temp_tcgv_i32(src1), + temp_tcgv_i32(src2)); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -822,26 +845,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_clz, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t2 =3D tcg_temp_ebb_new_i64(); - tcg_gen_extu_i32_i64(t1, arg1); - tcg_gen_extu_i32_i64(t2, arg2); - tcg_gen_addi_i64(t2, t2, 32); - tcg_gen_clz_i64(t1, t1, t2); - tcg_gen_extrl_i64_i32(ret, t1); - tcg_temp_free_i64(t1); - tcg_temp_free_i64(t2); - tcg_gen_subi_i32(ret, ret, 32); - } else { - gen_helper_clz_i32(ret, arg1, arg2); - } -} - void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2) { tcg_gen_clz_i32(ret, arg1, tcg_constant_i32(arg2)); @@ -1763,15 +1766,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_clz, ret, arg1, arg2); - } else { - gen_helper_clz_i64(ret, arg1, arg2); - } -} - void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2) { tcg_gen_clz_i64(ret, arg1, tcg_constant_i64(arg2)); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 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 Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619680699906.0108105294155; Wed, 16 Sep 2026 21:34:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ok-00048V-Eo; Thu, 17 Sep 2026 00:33:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nQ-0001dV-DD for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:37 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nN-0007Fc-HH for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:27 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4c7a0so194798a12.1 for ; Wed, 16 Sep 2026 21:32:25 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619544; x=1790224344; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=3uuZmAeqlgzyZJWRBhaPb6V68dYdvaWjqdouNKupj7I=; b=pd65mQoae7Ro2S/xl7xNSL+vfzatypwZWuJJ+2gkH4wp0kqncR1F/RT+TRUlf29J0s UeKdh5z0w/DkT1x1/9F35rt4B61NER1hoMTjRO5LV975Fj9/ifogTeeBuDZSuZT2bYWG nUs3z6QkHop2J7Z9Z/POOpRY3f71v5X3OTzF5f0Spa6dzNR3BYvVee7RPJJcs42Z/agJ IwuSRiDZmtWt/DtIgXzqROY0KfeVKG25es5fCLJa/vD/uJIRsFTG4oUPlLvfuOlqDQ/z IJh0RhVJ2fyTf1NiEnt6DK06uFNahQ1Ol9Pf2vyZWh14MmHobCt1pY4ohxdK33tYF4R6 xOrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619544; x=1790224344; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=3uuZmAeqlgzyZJWRBhaPb6V68dYdvaWjqdouNKupj7I=; b=ZjpVdgttX9P8W00n8GBCzPH+BIwcrKw2ikC8CUBnRbRVuHD2PdDB4+fTvsCmrvGOJq 4+l7qP9hTfuqTICH6KlFAgobNrZ6xxHxUoWkHfCZMT0H7jG08vii6DDzRoTfZPGwRnK6 2UqXU0WU5ly9FRjXIX+eLW6+0Z2BJ7cuBUqziviNF/GKoT0HY3bdwj56jUHHvQ1QQpOK wwvhUoF51Dha2pwOJ+lQKEXOviRFi+u/beQfb3je4XnAxg7bZn6gZi+7GOWJ0x/mbPx9 x/yYMe3XBVw+1V16YVxBEAKLNWYidbqCBL3g6YoP8KxPigYn39z4emCT6hXpmZukjNQv wwjg== X-Gm-Message-State: AFuF++lhsSzU76mr12qESiWM87EIjDoXphWIeXqqGmS0r6ZWJTpaSyBx 8vrGgq/wIbrgtuf/vte8GDErZsGIAYHT0YOLse3W5MXqWpqpkJc2CVTqFQoyNyIEe6EBMDcN65J +Kyb3Hl8= X-Gm-Gg: AYBFou2Aj6apbY8T2bJS5xTFftcGsSgXRtQQVK70MpJ725dZtHZxYqB+YO8cvsoqf13 pFNu5VvnCLUhApaSk2lwWDH9IQIaDdJTZHjOmQJbSI4NY9aNKNdHS+F5qqgaVVMNSdp453pE55S RXmYmJO1sIOHBxHfXFHVpEK24CDiC+WAFVI302sXcJLEWUcB4VgZoBmF59qo02E4HW1Jr6ActSu l/EUD7iRJ0Hg4eJuvglhOcQj22Xz1NzFiqFDNj9qTGlnl1/G0dLlAS3bfHhya/RNoBw8Z2ezC/A W6IhnmsLuHfmqFV1hnatjfhuSYP3IugGCJ1ZizuvgrmEOPHDq3jfuH6HFBYbiM0hmgUQ4VfSJLo 7lwEObYuFNiRKyTHupW/qAKG9+yI2STjTGkhP7LWU2h1bTpGDeZ9VSsHC5Sdj7Wi4IgvExMYvbe RU2jR1MKsL6fZ6Uq9iPlrQL4jw/HblYpKAxBLmXTQulN/RtVUoYwNYRWGp1uCnqM13ILWb5w6eI Fmdhx0MmDSHhtEmFA== X-Received: by 2002:a17:90b:280a:b0:39d:fcbe:fdcf with SMTP id 98e67ed59e1d1-39e1e2659a8mr12800414a91.1.1789619544040; Wed, 16 Sep 2026 21:32:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 055/101] tcg: Use signed integer for tcg_gen_{clz, ctz}i_{i32, i64} Date: Wed, 16 Sep 2026 18:27:37 -1000 Message-ID: <20260917042823.542588-56-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1789619681121158500 Content-Type: text/plain; charset="utf-8" We use signed integers for all other functions, and the sign of the second source is not meaningful here. Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 8 ++++---- tcg/tcg-op.c | 8 ++++---- target/ppc/translate/fixedpoint-impl.c.inc | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index d882bf5d0fc..0e8203fd836 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -130,8 +130,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); -void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2); -void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2); +void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); +void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ctpop_i32(TCGv_i32 a1, TCGv_i32 a2); void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -190,8 +190,8 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); -void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2); -void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2); +void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); +void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ctpop_i64(TCGv_i64 a1, TCGv_i64 a2); void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 50d1b07d667..425a7e90e5d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -845,7 +845,7 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTem= p *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2) +void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_gen_clz_i32(ret, arg1, tcg_constant_i32(arg2)); } @@ -890,7 +890,7 @@ void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_= i32 arg2) tcg_temp_free_i32(t); } =20 -void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2) +void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { if (arg2 =3D=3D 32 && !tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I32, 0) @@ -1766,7 +1766,7 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2) +void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { tcg_gen_clz_i64(ret, arg1, tcg_constant_i64(arg2)); } @@ -1800,7 +1800,7 @@ void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCG= v_i64 arg2) tcg_temp_free_i64(t); } =20 -void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2) +void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { if (arg2 =3D=3D 64 && !tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I64, 0) diff --git a/target/ppc/translate/fixedpoint-impl.c.inc b/target/ppc/transl= ate/fixedpoint-impl.c.inc index c3d8bbf2670..4e521e44bb5 100644 --- a/target/ppc/translate/fixedpoint-impl.c.inc +++ b/target/ppc/translate/fixedpoint-impl.c.inc @@ -1551,7 +1551,7 @@ static bool trans_CMPB(DisasContext *ctx, arg_CMPB *a) } =20 static bool do_cntzw(DisasContext *ctx, arg_X_sa_rc *a, - void (*helper)(TCGv_i32, TCGv_i32, uint32_t)) + void (*helper)(TCGv_i32, TCGv_i32, int32_t)) { TCGv_i32 t =3D tcg_temp_new_i32(); =20 @@ -1567,7 +1567,7 @@ static bool do_cntzw(DisasContext *ctx, arg_X_sa_rc *= a, =20 #if defined(TARGET_PPC64) static bool do_cntzd(DisasContext *ctx, arg_X_sa_rc *a, - void (*helper)(TCGv_i64, TCGv_i64, uint64_t)) + void (*helper)(TCGv_i64, TCGv_i64, int64_t)) { helper(cpu_gpr[a->ra], cpu_gpr[a->rs], 64); if (unlikely(a->rc)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619765; cv=none; d=zohomail.com; s=zohoarc; b=QpUdLJXw2zUZ/dfin5J0HWpcyzXF9AHCzcVNKQlhlNrNtmheu+Hh1hfa5XUaLbMJRWwmWDxSa689SUXoEKjD71hBT5m1mMWQqCExEA0vRKyggJZL0su5cmBuEL90fD/+9TPAkx9arpFx62DopujDGZ87+X1MX7VBXQInaRE9sWA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619765; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=Vqgt5jQxfHsAz9mPEINxMsMXNnZD8enw6McDQyzh04A=; b=XQ+0WUSTYsysrL7Ut947p3BMNJxk58atjgQQlqDnqVW+FXPCtOeJ0g3w8lI3dTs5+sw558fdJiwWzdcv3CJ8MMYYJqT8o1rfvRBJXaifZU/O4qk1f7r9I3puKQpyD1l/Xa2vHNc0pWdcuinQtZgXJrYOu0yxulnnlo/JYk2CtzI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619765031790.6484212756249; Wed, 16 Sep 2026 21:36:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nx-0003H9-RZ; Thu, 17 Sep 2026 00:33:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nS-0001dk-Fx for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:38 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nP-0007Fq-JK for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:29 -0400 Received: by mail-pj2-x10.google.com with SMTP id d9443c01a7336-2d747ed9866so3621745ad.2 for ; Wed, 16 Sep 2026 21:32:26 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619545; x=1790224345; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Vqgt5jQxfHsAz9mPEINxMsMXNnZD8enw6McDQyzh04A=; b=ExsfbxD7fPbIG5nU4ZUrYw3Hp6Gr+JISSnZWBSVuDaaMt+HkK+MzCXV/o34LZtKXfR 8moovGA2XMENqI/8ufuHE3GHgpjtKlGddADdoxLaG/q3spLmivC+QCs9gKdb3BaxFA1J EdxRZmHNARCm+MfcwIx7sDaBFzzgCKHWP6QiP6xWw5wm0ukajpFZ8Q0rSTDIUdNNDtTp gWUP3x+PChsz7JX6A7O+fFBItczrKjBBl/CxohcsYazDJPlcrkri6jOXP3MMWj646bs5 z788kigwk1A48ZZveh28USFLVYUrKheIK3Jx5fEaXfxdVXHZriSkPO2voH6Yv3KiafaQ lvLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619545; x=1790224345; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Vqgt5jQxfHsAz9mPEINxMsMXNnZD8enw6McDQyzh04A=; b=Z14Wwgp8gBjptXjtMJsjSy9uf9R8Op18dVTLooNZmAuy6Nqq//4fwFpHOPer+DfORy pxSulNaFLKbHVhaFsIZqSI5j5UdpaC3p2u9Zh7DTR8e/o7V3e6Nf3ey65X1BZ6HZNfHx svaJ049C+w9EDdeh8buxMN1Vl/el4jSbC8IdwGvjxQp/cIMupiUfUnwiXV9nC+cWVb2W pAcLtDkP1EsDMshMkFJwhpcLebie4okvPWfhIrw66UA/97kR+9GOgUauYkb0RpXmgXk3 21sATwUEcRGzgzhN/yzTh9U8UnuPC0P0fV6DaRoMtT18uqlRdWeCZGHOD5ABRtj4tBgW XsfA== X-Gm-Message-State: AFuF++k2QQEwMW7KNJu2/9zHV8ha2WqDEHsehoDaHDR5UMMv77FhDrYP rWgQzExSi/WTIT3qF864mtLeSXCET5sdepnUlmwom+3T4RkWkbjmzTuqoAafHc97JN58HXENMxr dIg2RwyI= X-Gm-Gg: AYBFou2oGbwIDZhbDDDXKz0V5mmiFV3fUZxroFkwthyKouAwoF89t0Axhf38rFwxkFA cEPs5SuTzuACYSqoqc7N0eM7vilq1PT67dGIO26L9AN7h493K8jtqEo902W9bVifUNxSMLfs/Ij jy2hXrfctTr5MpCIlGla6bGXcMo3TzaRzQ5a1EPr83H0ufErVAx3R/SGitfWxJdeSrQAsWusmmk Ds4mizmkvlLx8ro5zqDQx8ByaG6ip9sMP9SdmVGnxmTaQaZoXDADdhxHPi7b97tJl/DBGLW5r4Q WH7qDmjHJmXy29WaWfx7O1Ea8mu2/Hmj30tSdImQx2VLpF+ZPwoU1bgf6ZHQywPcMXZw5y/Q/dW +I17s0xrq7mXmFtQSFVO6ZGXvKZYsoOT7fnYDCMFLvNsxnSkyn6k53eJE7Vgp9Y59nsfIYJXvV9 Q1SehxyKGyzqe14oGGKBlu7mqoYLsrhMrMSh71Y5QGxQPdm+y0JYSiUZTkAbxzZtDw+vuB6WfAP 3qiFfY= X-Received: by 2002:a17:90b:1d8d:b0:39b:92bb:9ef0 with SMTP id 98e67ed59e1d1-39e1e48a200mr11307031a91.20.1789619544961; Wed, 16 Sep 2026 21:32:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 056/101] tcg: Generic expansion of tcg_gen_clzi_* Date: Wed, 16 Sep 2026 18:27:38 -1000 Message-ID: <20260917042823.542588-57-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619765461158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 0e8203fd836..b477d980a3e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -130,7 +130,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); -void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ctpop_i32(TCGv_i32 a1, TCGv_i32 a2); @@ -190,7 +189,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); -void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ctpop_i64(TCGv_i64 a1, TCGv_i64 a2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 202df7a62a8..7d0d219918f 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -8,6 +8,7 @@ DEF3(andc, TCGV, TCGV, TCGV) DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) DEF3(clz, TCGV, TCGV, TCGV) +DEF3(clzi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 425a7e90e5d..afab6fd3c82 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -518,6 +518,11 @@ static void gen_clz(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_clzi(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + gen_clz(type, dst, src1, tcg_constant_internal(type, src2)); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -845,11 +850,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_gen_clz_i32(ret, arg1, tcg_constant_i32(arg2)); -} - void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { TCGv_i32 z, t; @@ -1766,11 +1766,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_gen_clz_i64(ret, arg1, tcg_constant_i64(arg2)); -} - void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { TCGv_i64 z, t; --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619710; cv=none; d=zohomail.com; s=zohoarc; b=i6i/REyt3U6I/Y/oZUKoM8ANvylC2VipLP22wVp+ORaEcvpAxiYLEoQXhvwWV3gJUr/a46qEavswIi+wdhK9KwTrpyJ9FAepVXRz4ydWaHbiYGC2Q6q90fKindrJIlqe7KUFhuVVKeQoHNYSpgVV+KJKkOxq2u/Xm50cIkUDD2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619710; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=yy3abeA6nUtaEw+wMeETa9hX3DLYO3URccUli7lzrWc=; b=JFc+9jq+xK6o0/7v2VrbP2AERbjh9498UHe+Vtq48zYdyqwE3MIGmwBdlFJMB9+46lr79A0TgKytEX0yya517WVrVY+TN1zjGo73aUSFFyGAtOOgb52Rghf0+WXiMzq9WbWuVf3lYU/UjoKUPUl7dM5A4y8n7nPLbqAlg2pD4bE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619710035231.93311869921104; Wed, 16 Sep 2026 21:35:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nq-0002PK-5m; Thu, 17 Sep 2026 00:32:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nS-0001dl-G3 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:38 -0400 Received: from mail-oi2-x10.google.com ([2607:f8b0:4864:32::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nQ-0007Fv-54 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:29 -0400 Received: by mail-oi2-x10.google.com with SMTP id 46e09a7af769-7f4f0dd550aso116410a34.0 for ; Wed, 16 Sep 2026 21:32:27 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619546; x=1790224346; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=yy3abeA6nUtaEw+wMeETa9hX3DLYO3URccUli7lzrWc=; b=hi7sLMVv79wOIn/76f6hClpWR22yCb9KNnwDHEzZYaiH4z7ABnmthWx0DpgAWuAnEy e7tm99EI/1AI8cJF5xsBlogbnRg/JzFRxLrVlUW1ju6dY6dgphi+AOD/jodDNyPN9zWh +8m+gIYWK3/f/NhaKhnDZ8PoNqK8MhnaxEkOe0GduVyezDIim0eV1v8AACk/IkfPRoU/ hVBpCYxBotJJPeEzhGvAgFdDhjxXFk0OYiQ0u2ZXMb6XfdvihpMOPVy9qQ7/GHKiu8U9 8uHfx/5zwXWxbMkspEFKzuUT+mJ4kOyIQJkHQaOc2D+53n4ltdsbOAJtOG5Hfg1Tmlr+ c/Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619546; x=1790224346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=yy3abeA6nUtaEw+wMeETa9hX3DLYO3URccUli7lzrWc=; b=GoGvIGawg3QcWEcAZqSUdERP12b3+ZiQuHh4FCrOomIwlxc1J/fZcOG6mc8DZfLF9k JITbWAiG2EmePpEnb5jH604D1sNiogXXf9Q2OCn1hOfBuxXtrTzVvYBeJk5tGfTMJulh DJbM9dFR6iS8OjrA2QEcETWUarwDL/nQaij+KvMDy7uz0LcfZZLRFuSEg8mbh3ImLDiL JyPn0MfPiOI9cRQSichhiGBTElMm30CJazhFuijKXytvSdSeGNv3S0g6NpW2blgQfo04 oi+F+YRy2pbUirkNuN4FonF4K0vMy/cAIROlzT3qiwsIdOqwR1JjfK9ql2VPXWIjG2LW EgGw== X-Gm-Message-State: AFuF++mHUiqCnZf6QbRFIuz1En42mdhDvUdXD+UWd5O21zyMlDJY/isd 5RvqdbYQAgC99U7RZo+PpCjjTcmnBawGT7ax++4zodu8fms3t5sHsTG5EG49gB38DEWpBPHBVaH 5ge8uUgU= X-Gm-Gg: AYBFou0Tt7oF/VFHG+MPCASHd+qu7n+S6ku8WrH8hRjHQv8MSOPxmb7knUfK/qo6J/2 dB/H/Wf2MbNkpV/i+tUG+j5XPjIAMA6tmpIDMtYxGrQ7ijbGk5cNG/FNNgPwy77qfcFiJJN5Qq4 pixznMk+tQipGdT94w4Zwe8Us1ANl082hyI9vSD2IQrbbS9xohiOQ1YAIxZOb4e5FX7qJ/eoXrj Lvv+ET+fe7yQhj1oWL4qMM9jLTpgYQSFrK0pyFWSM6P/JgeZK6MSvxGGGv0lQpJngWvhEOr74Zp vbX8Z4In64a+2vgwF1OszCR6Fq6ttJbBbgc0JU26KF++/lMylvLMP58CRbxcvKlWaa3Fb7TWVW4 rD692/ZtpOX6oKHe/kvDP3QPVIHQlX+crmUmPc1QgfS93q3p9sX6AMSUDy3+l3x3r74W5EJo1ZZ CN7AetGBd6Wo9Wm0YnvR/N4r21h0iVFLG6BfGsc5I99HIVjc+PJQVAiXQg5hFLYtOXLaYG92VST KxG1kE= X-Received: by 2002:a05:6820:f028:b0:6b7:8396:f3da with SMTP id 006d021491bc7-6c7d47eb175mr5367377eaf.60.1789619545898; Wed, 16 Sep 2026 21:32:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 057/101] tcg: Generic expansion of tcg_gen_ctpop_* Date: Wed, 16 Sep 2026 18:27:39 -1000 Message-ID: <20260917042823.542588-58-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:32::10; envelope-from=richard.henderson@linaro.org; helo=mail-oi2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619711209158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 41 +++++++++++++++--------------------- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index b477d980a3e..b3cd4bbf63b 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,7 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_ctpop_i32(TCGv_i32 a1, TCGv_i32 a2); void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -191,7 +190,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ctpop_i64(TCGv_i64 a1, TCGv_i64 a2); void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 7d0d219918f..2de0aacd93c 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -9,6 +9,7 @@ DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) DEF3(clz, TCGV, TCGV, TCGV) DEF3(clzi, TCGV, TCGV, TINT) +DEF2(ctpop, TCGV, TCGV) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index afab6fd3c82..abc78e480d0 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -523,6 +523,23 @@ static void gen_clzi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) gen_clz(type, dst, src1, tcg_constant_internal(type, src2)); } =20 +static void gen_ctpop(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + if (tcg_op_supported(INDEX_op_ctpop, type, 0)) { + gen_op_tt(INDEX_op_ctpop, type, dst, src); + } else if (type =3D=3D TCG_TYPE_I64) { + gen_helper_ctpop_i64(temp_tcgv_i64(dst), temp_tcgv_i64(src)); + } else if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(TCG_TYPE_I64); + + gen_extu_i32_i64(tmp, src); + gen_op_tt(INDEX_op_ctpop, TCG_TYPE_I64, tmp, src); + gen_extrl_i64_i32(dst, tmp); + } else { + gen_helper_ctpop_i32(temp_tcgv_i32(dst), temp_tcgv_i32(src)); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -920,21 +937,6 @@ void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_ctpop_i32(TCGv_i32 ret, TCGv_i32 arg1) -{ - if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I32, 0)) { - tcg_gen_op2_i32(INDEX_op_ctpop, ret, arg1); - } else if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - tcg_gen_extu_i32_i64(t, arg1); - tcg_gen_ctpop_i64(t, t); - tcg_gen_extrl_i64_i32(ret, t); - tcg_temp_free_i64(t); - } else { - gen_helper_ctpop_i32(ret, arg1); - } -} - void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { @@ -1825,15 +1827,6 @@ void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_ctpop_i64(TCGv_i64 ret, TCGv_i64 arg1) -{ - if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { - tcg_gen_op2_i64(INDEX_op_ctpop, ret, arg1); - } else { - gen_helper_ctpop_i64(ret, arg1); - } -} - void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619670; cv=none; d=zohomail.com; s=zohoarc; b=njBp8uJI60OJxxE3K+t8AylS+r1SinWXbvl+xuOZqocdu+hKC0XdB+ZCHNrQ7Iya7IsxU2fptEqV46zJZd8qpTLcyR2X/88HCk4YqvP51SC143M+wo8vVs54k9VnRS1QNtMiyygBm2d8E1t8S4RuCXrP4OLrAdniZTSMdUx16BU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619670; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=PDd595G/INVYp889EkVuxEjb3yzJjvIepwlZdu+HhR0=; b=YLThYV3TRG2op+JO5aJFUZV0CmHGJaeRfME9XMhrPB+V93zDsqIpUA0ckh5O6IbrW5h7Wt+jZ7GXzQ+30UhCfRyz1TY0xsMS8wvpWkDeSGvi8HkzvPW9b1CfHiASEV9RXFJVCl+lru3Opg1UaNGnpHRkPsu/JN4vmFiUcwYrkho= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619670227789.8997179142857; Wed, 16 Sep 2026 21:34:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pF-0005kE-Gx; Thu, 17 Sep 2026 00:34:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nT-0001dm-3j for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nQ-0007G0-7L for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:30 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-85469b2e1d5so379979b3a.1 for ; Wed, 16 Sep 2026 21:32:27 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619547; x=1790224347; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=PDd595G/INVYp889EkVuxEjb3yzJjvIepwlZdu+HhR0=; b=Vjw0EX7/kEtZfGc6aVvuKqzqhsBb1CzPhdgzFpHHo2WkyTQ2mtmho2bMj3MTwSjswo K0PZhUGyVO8vjVI+EFgYjeW8Q1X/i9ynLt5rbRiM8v0r39aIPJuMeHV77G4npNuS7l/m 5FAAKUyggDCUe5rcyAQmNPFLMiv56/mKB33f3DBQqqAmmL9/vJKxdBkye/SVyoRaT3SH V3xdVFOE8gPhzhmduIt3QA/2USSp/TtBw1HNaJkaqmo04/XvgxfcrpYsNGxkO5qnEoG1 IdZBRpaINNZgvUDBrJaqT1sed+rgmKwltxrMtKIfFrZDxOqXnqBfxx3LjGps7QCd3VMs 4tEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619547; x=1790224347; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=PDd595G/INVYp889EkVuxEjb3yzJjvIepwlZdu+HhR0=; b=2Jx4bUtYMUrAsPyuXo0G/SNwiEkwQYixNe+PVoHRzBtt0XoBUJEtmqm3mV+6Gp0Pnr X3uBkS2bePA0PJaV3rUdavuDhbXOJMJFAo1Eu0vAVP8PWBRKuMjSMZRNoClIKRS7IE1l Zvc+6Z0sPIzXVZMTN3V7pDFQI4S3cLRvTmAVGb37b2qKfsWgiNNDyANm+OB7M8PPvMZC oaP11AmzSlq9tfY/Ita1y8e+zV6T2+Gx5jkpgM68y3OrPXGQVXFP6Gl5kN+DP7FqNFGn airctXj7vX8mB90/6Ng90Ilx7S2cRp9NReN45sOaEojT5mjixrGhxLvZ7W2zwUIEKff3 UBIQ== X-Gm-Message-State: AFuF++nm0tqxxs6aP0Voj88QW1jhvrQmQ9lhudBhYNoXiWtAaEEQGoKP jRKH9EpNQAakrmvPEHTKV27pXfN/LF+suyYrA2Nk2DgbOuxWaO9LFfKtyQ4kvuVYodCEsrNLIwx dUKcz X-Gm-Gg: AYBFou1P3owa8iVuy+vNEiaY/Cs4TPBgIrMcOpwH9M4UNqXU+krmyo+V5tb3BcmONsA pdnVhWlYjhVxcqFeYWPHi3+qZI/XdkQb6+h/SvBibNhyyjzzBUl+EkIKkoC29yLHXjn39d1yQtW Fh6T0Oxdr65AwHZ2mXdRVK2HAbkGGKCC651mFkQkta6JcoMkh8O//F9GW+ATMpHu5YeJHjGDCTM hq6o6+WHkLpKWmMIIqdLvqBCpEA3rPZn9ExTD/p0QX2YB0XNR3eShRikb0bvB3vUZtCiS3Mjtq2 kR+Q6Ve8zCof7wwEhoR5MuSzEFnNCVoONVujN3NsO1ZYsfuOWReRjC1at2FmrFxhV+gOtr5BRPc CBWgoWCCJiCa4M6Bqa4i/+9DaH2luNx41InNy8xmsaCJ38ngCnTEnNXiaMELAtmscFH6L86nJRY 4RoYJ488ABai7pTDxeXMmU7mlm35X4lLRBGhcpelw83eODJQdtN0+isvVVgLcdJ52WxdSaO3eNg 2SP518= X-Received: by 2002:a17:90b:510a:b0:39e:423:bb8f with SMTP id 98e67ed59e1d1-39e1e24fa7amr17392537a91.1.1789619546832; Wed, 16 Sep 2026 21:32:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 058/101] tcg: Generic expansion of tcg_gen_ctz_* Date: Wed, 16 Sep 2026 18:27:40 -1000 Message-ID: <20260917042823.542588-59-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619671328158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 115 ++++++++++++++--------------------- 3 files changed, 47 insertions(+), 71 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index b3cd4bbf63b..1f31253263e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -187,7 +186,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 2de0aacd93c..47627a343d3 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -10,6 +10,7 @@ DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) DEF3(clz, TCGV, TCGV, TCGV) DEF3(clzi, TCGV, TCGV, TINT) DEF2(ctpop, TCGV, TCGV) +DEF3(ctz, TCGV, TCGV, TCGV) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index abc78e480d0..2767748ae79 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -540,6 +540,52 @@ static void gen_ctpop(TCGType type, TCGTemp *dst, TCGT= emp *src) } } =20 +static void gen_ctz(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) +{ + g_autoptr(TCGTemp) t1 =3D NULL; + + if (tcg_op_supported(INDEX_op_ctz, type, 0)) { + gen_op_ttt(INDEX_op_ctz, type, dst, src1, src2); + return; + } + if (tcg_op_supported(INDEX_op_ctpop, type, 0)) { + t1 =3D tcg_temp_new_ebb(type); + gen_addi(type, t1, src1, -1); + gen_andc(type, t1, t1, src1); + gen_ctpop(type, t1, t1); + } else if (tcg_op_supported(INDEX_op_clz, type, 0)) { + int width =3D tcg_type_size(type) * 8; + + t1 =3D tcg_temp_new_ebb(type); + gen_neg(type, t1, src1); + gen_and(type, t1, t1, src1); + gen_clzi(type, t1, t1, width); + gen_xori(type, t1, t1, width - 1); + } else if (type =3D=3D TCG_TYPE_I64) { + gen_helper_ctz_i64(temp_tcgv_i64(dst), temp_tcgv_i64(src1), + temp_tcgv_i64(src2)); + return; + } else if (tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I64, 0) || + tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0) || + tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { + g_autoptr(TCGTemp) t2 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + + t1 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + gen_extu_i32_i64(t1, src1); + gen_extu_i32_i64(t2, src2); + gen_ctz(TCG_TYPE_I64, t1, t1, t2); + gen_extrl_i64_i32(dst, t1); + return; + } else { + gen_helper_ctz_i32(temp_tcgv_i32(dst), temp_tcgv_i32(src1), + temp_tcgv_i32(src2)); + return; + } + + gen_movcond(type, TCG_COND_EQ, dst, + src1, tcg_constant_internal(type, 0), src2, t1); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -867,46 +913,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - TCGv_i32 z, t; - - if (tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_ctz, ret, arg1, arg2); - return; - } - if (tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I64, 0)) { - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t2 =3D tcg_temp_ebb_new_i64(); - tcg_gen_extu_i32_i64(t1, arg1); - tcg_gen_extu_i32_i64(t2, arg2); - tcg_gen_ctz_i64(t1, t1, t2); - tcg_gen_extrl_i64_i32(ret, t1); - tcg_temp_free_i64(t1); - tcg_temp_free_i64(t2); - return; - } - if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_REG, 0)) { - t =3D tcg_temp_ebb_new_i32(); - tcg_gen_subi_i32(t, arg1, 1); - tcg_gen_andc_i32(t, t, arg1); - tcg_gen_ctpop_i32(t, t); - } else if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_REG, 0)) { - t =3D tcg_temp_ebb_new_i32(); - tcg_gen_neg_i32(t, arg1); - tcg_gen_and_i32(t, t, arg1); - tcg_gen_clzi_i32(t, t, 32); - tcg_gen_xori_i32(t, t, 31); - } else { - gen_helper_ctz_i32(ret, arg1, arg2); - return; - } - - z =3D tcg_constant_i32(0); - tcg_gen_movcond_i32(TCG_COND_EQ, ret, arg1, z, arg2, t); - tcg_temp_free_i32(t); -} - void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { if (arg2 =3D=3D 32 @@ -1768,35 +1774,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - TCGv_i64 z, t; - - if (tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_ctz, ret, arg1, arg2); - return; - } - if (tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { - t =3D tcg_temp_ebb_new_i64(); - tcg_gen_subi_i64(t, arg1, 1); - tcg_gen_andc_i64(t, t, arg1); - tcg_gen_ctpop_i64(t, t); - } else if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { - t =3D tcg_temp_ebb_new_i64(); - tcg_gen_neg_i64(t, arg1); - tcg_gen_and_i64(t, t, arg1); - tcg_gen_clzi_i64(t, t, 64); - tcg_gen_xori_i64(t, t, 63); - } else { - gen_helper_ctz_i64(ret, arg1, arg2); - return; - } - - z =3D tcg_constant_i64(0); - tcg_gen_movcond_i64(TCG_COND_EQ, ret, arg1, z, arg2, t); - tcg_temp_free_i64(t); -} - void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { if (arg2 =3D=3D 64 --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619747; cv=none; d=zohomail.com; s=zohoarc; b=fAG74AS9cb79ho7Nst3F1cZY3vnIiRyiEEzZt0B/0T1xEF2BAFwKQCNex2O4smkE32TVmUNYf5s6en68Xjcf4XEy4yXMIPEJCbpn+9dIK8EIZmUQL1JiYhpWXiY1pGsht6DZn5Ey1gwp35Kxn6hLi++76glWh7Trv6DBhNFODZE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619747; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=HXwU/5j4KtERak6jo70M49+VKCzt9WL6aEjpNt669Ys=; b=J5WuePOD3yPn8UE7uHv36Iw9yiSAEMElE+e7tw8xty9/aMQyHbiNcEDexJXbQn8vdSFlXcEXDyUEjOEWu593hAubSkcDKUWju2S25q6qllerlIXlOAdzGGAH4ThbBKGuD52TMUk+541/Br3BGFN7fn1W1ZjpKAcBPadzEmnLh4A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619747871449.072805975439; Wed, 16 Sep 2026 21:35:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pK-00069h-Ms; Thu, 17 Sep 2026 00:34:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nT-0001dq-Ue for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-oo2-x0d.google.com ([2607:f8b0:4864:31::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nR-0007Gf-61 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:31 -0400 Received: by mail-oo2-x0d.google.com with SMTP id 006d021491bc7-6b1ae7166ebso227740eaf.1 for ; Wed, 16 Sep 2026 21:32:28 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619548; x=1790224348; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=HXwU/5j4KtERak6jo70M49+VKCzt9WL6aEjpNt669Ys=; b=Tm9vnad2q28sIAM6txGV3q+wRAyprhKCpJk+f3jMqAt3TEBE7DLo0sXssao+/HjsEM t3oi575rAseyhnEjQcv6pdACprV8HKwNWD8cVOjUV/0ebXno4ZLF5OWppL8cGKZbzzAk JoynBJtMClfthABwaHfledvWzpiYglNg1QOaqS3loRzBlO6+x99D3jqHer/WMcEpynY5 5UDx85S0RWwicAFeHrfIkSYdikOAGWR+UJWP6Gbu+b3R/cyWyOW6IaHJK2/qV58SzSeY iUcBmOWRkyPKwjq+Ub/uIwY8WIhbiA9AMppr1gesZ7i9o7nExQhcwwVHC09JoztSK7ol ee7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619548; x=1790224348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=HXwU/5j4KtERak6jo70M49+VKCzt9WL6aEjpNt669Ys=; b=VpGNu85DFbdQSrjHHYXSpVtvrrsEfVtLiAu2SNjicb4tFbqwzB9c5PYHDNpsz+swKJ dF8bqJoNBvVzF0U/LYgX0EgSkDO+0vqFco25twNQphONTMQpyG3GCcYXMbEkz841AvCA 91TEfA0bfaNjNhIUsnVHr3BR7jIUJXy8agCgUfFNS7U/nd37XSN8n1F8YZEFOgudY6Xv PDSpiT3SzGmfN4ozDc00pltm8WBgq4nkEIeDjEa9C3J/qnMvzo4gj21yufvkx1em2rwV Q1uyw99kGCFvRWHbehCVspBC/emAJbcsttRJq+R0O+ZMDpDmcAbabQGTGILR8CieVOxu BIqA== X-Gm-Message-State: AFuF++mBQrCreyEMgVMbTmeeg9d2ApChYD4TYhWqPRXLNXskV+4L/w2r MJvKUOvp+1N9pVYbNcBLZaVd/5CVkHX6tYxzFjImfDFz8PCM2QZ3vMLKyYO7ClfZmqWEvVsGdqU +u+m5ywM= X-Gm-Gg: AYBFou3tNbaPE+EX86xlwVSwkMHHKgWOCTqoNJ96Ti0NgSDsZ2RcpzzigPgHA1ije/B MTR+k6TI2WOAY9nq2VdOE7lM70AhD497lArPi4Y6rcwiGdFH54nKvQ0FqnbLdbfDLGrH5E9cM4V KS5sk1rvb3xk4x51NOamuwNBMB1LDe8UvJxFOJBG+WIo7tcm6AQuTwUeN6eSDCLjO/XFXNREDdu U7XVGy+stD7oVEC0H3f3XobG2dPojOMv/zkI8P4XdrmUKgks/455erYWTE61n5KJj6huzGbaRJg Q+jvU3K2CKMEHKDmrk0voYdrRAAOyLEPyuifw7199lnY7wd6tRAq4ypArsp6cCOCQ9veGkmO1jY OdAk9mGU0c/TL8P7bEgLhPzl08KetZ7JwexYykazpOWB9MrNTwPd+LfgT3T53RAtqQplDSreUzU qXS0o1zXIpyrr0QSGFaW32ThzBZvd0ytEGhgX5UoPL88nXg0a85hkgW/5rRoRqe7bzWbd6y85W9 A/pd4Eo6wqstkryHQ== X-Received: by 2002:a05:6820:614:b0:6bd:fbe8:fb95 with SMTP id 006d021491bc7-6c7d46e65f3mr5558996eaf.60.1789619547746; Wed, 16 Sep 2026 21:32:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 059/101] tcg: Generic expansion of tcg_gen_ctzi_* Date: Wed, 16 Sep 2026 18:27:41 -1000 Message-ID: <20260917042823.542588-60-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::d; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x0d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619749395158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 45 +++++++++--------------------------- 3 files changed, 12 insertions(+), 36 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 1f31253263e..96a8ba3026e 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -186,7 +185,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 47627a343d3..9968ca9516f 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -11,6 +11,7 @@ DEF3(clz, TCGV, TCGV, TCGV) DEF3(clzi, TCGV, TCGV, TINT) DEF2(ctpop, TCGV, TCGV) DEF3(ctz, TCGV, TCGV, TCGV) +DEF3(ctzi, TCGV, TCGV, TINT) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 2767748ae79..ad738316293 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -543,6 +543,7 @@ static void gen_ctpop(TCGType type, TCGTemp *dst, TCGTe= mp *src) static void gen_ctz(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { g_autoptr(TCGTemp) t1 =3D NULL; + int width =3D tcg_type_size(type) * 8; =20 if (tcg_op_supported(INDEX_op_ctz, type, 0)) { gen_op_ttt(INDEX_op_ctz, type, dst, src1, src2); @@ -552,10 +553,13 @@ static void gen_ctz(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) t1 =3D tcg_temp_new_ebb(type); gen_addi(type, t1, src1, -1); gen_andc(type, t1, t1, src1); + if (src2->kind =3D=3D TEMP_CONST && src2->val =3D=3D width) { + /* No fixup required. */ + gen_ctpop(type, dst, t1); + return; + } gen_ctpop(type, t1, t1); } else if (tcg_op_supported(INDEX_op_clz, type, 0)) { - int width =3D tcg_type_size(type) * 8; - t1 =3D tcg_temp_new_ebb(type); gen_neg(type, t1, src1); gen_and(type, t1, t1, src1); @@ -586,6 +590,11 @@ static void gen_ctz(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) src1, tcg_constant_internal(type, 0), src2, t1); } =20 +static void gen_ctzi(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t sr= c2) +{ + gen_ctz(type, dst, src1, tcg_constant_internal(type, src2)); +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -913,22 +922,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - if (arg2 =3D=3D 32 - && !tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I32, 0) - && tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_REG, 0)) { - /* This equivalence has the advantage of not requiring a fixup. */ - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - tcg_gen_subi_i32(t, arg1, 1); - tcg_gen_andc_i32(t, t, arg1); - tcg_gen_ctpop_i32(ret, t); - tcg_temp_free_i32(t); - } else { - tcg_gen_ctz_i32(ret, arg1, tcg_constant_i32(arg2)); - } -} - void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_REG, 0)) { @@ -1774,22 +1767,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - if (arg2 =3D=3D 64 - && !tcg_op_supported(INDEX_op_ctz, TCG_TYPE_I64, 0) - && tcg_op_supported(INDEX_op_ctpop, TCG_TYPE_I64, 0)) { - /* This equivalence has the advantage of not requiring a fixup. */ - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - tcg_gen_subi_i64(t, arg1, 1); - tcg_gen_andc_i64(t, t, arg1); - tcg_gen_ctpop_i64(ret, t); - tcg_temp_free_i64(t); - } else { - tcg_gen_ctz_i64(ret, arg1, tcg_constant_i64(arg2)); - } -} - void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619632; cv=none; d=zohomail.com; s=zohoarc; b=KSd9lh26VPjwqTJalRQcVR7AleP+wa7kHXpmArG4Mo2K5OJaFv4yWkFz6Vmrn/rJtgDkd+uqeJh1A433sxukLhpMfGHfKWA9teic4i9VKWI74uP21N4BYjz/HrhWEYcy4vE3bQq+Ye9dZQ6EorF3PMc4VJ/0tB7LK7XcoXmk7h4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619632; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ZvNyxBh51Etb9zSbXrXhjhV817soOtUYoVrNwVQckdM=; b=RV/E7+eOesXWfli4UDVZPNVHucZWMwjCnf+QXFBYr/2XpXSifSjtI9jYYMgURst5mSwaYH+QurwC2dA8UWzKKJDj50TWx3YSic1t8WQb9U5wLNftOYFx84IPnWVOWH5LLt8l+hvEhxkA3D4BuTbB6LZwAOtQG84s7akij4oJxUI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619632201652.2218247853488; Wed, 16 Sep 2026 21:33:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nw-0003Dh-Gc; Thu, 17 Sep 2026 00:33:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nU-0001dr-9e for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nS-0007HZ-9t for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:31 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc4c08393b0so334390a12.0 for ; Wed, 16 Sep 2026 21:32:29 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619549; x=1790224349; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=ZvNyxBh51Etb9zSbXrXhjhV817soOtUYoVrNwVQckdM=; b=RRV8I49SA+mklOgTwITaNSIic5xbG/K1GfObrmEXpQrxox/RX7rwW5pUfvXjLMlmC6 pnqiabwux5MsEryrUzR2wtr4iL065VErvSZSBBOL7K+v3l5jyHk6u3Bxr1necwOZW75O 2mx1Big7UPRAwPrvz4amDSgcaIyuNU8JffFeOqqTstnKuZ39ntI0cnYyjV2ODRBKdQAt wfMuwSc99qQsS13lP9usuY/6i+//pOpWNUW5fCLy4u7FwAvHf1GqxjThD8cjTHWzEjIa IB9GvcsIeGKUR9vfItQmAiT76URpL29dBPFU/Mbx1GEqT4daOONOFc7lVq6FbIABwK9b Y3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619549; x=1790224349; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ZvNyxBh51Etb9zSbXrXhjhV817soOtUYoVrNwVQckdM=; b=A+se+IYPEkHMQlIwC7X0U9eIu1vTqABIi0mAP/rLdj1KU4Elu3u3y8XcjDxuRZHpaC +SREhGiWIHMhRYB5eJ26EcdYAUA1b945tC/qz00XboywAu1KM9ppIu/Qj3Ly5jrm2TWJ GCAN7wLF0e2rIkMk64b8U5qg+iPVMXZxJKo79spE/1v1w7lNNt9X4xhOzTNHDutY7ytZ t4ZbifPSh/pmMwhkfy0W1wB8CEbAAegOTlUHzdNlaEdVFOHMN8otgL3Yi05zQ1Aiexv7 /BFlp2rcO06GGNs7qKhGsKNRosoHpCngKA5WRJJJTky6UP+Lt1ZMu82/KYmuivGR20rs ejqA== X-Gm-Message-State: AFuF++m1JOZ3hkqxPN29zJDV6vr9vwr7gvqpGe2z/9RzWcEjwP+5RC3D aTzj7J86inlUd1PGwi5mK9dtRnbtgzUKLSWNm5IBjcg3amNUYXVtcGujd7g+K8qC1c4sLE4OBPu Q0MmnV8c= X-Gm-Gg: AYBFou1Kb59CrL066DTy/cbEpAJbsN2T2YRYRXEHpxMiNx7ZXQpADvqYJcQrXbfoul7 TdGoosgU/hzbPO2mibRF6i0EnLDwTpcrL5UxU1JKcSs4gAMnVYvJaBXCwnTURp4ZJybYR1bjPA0 r62QeMYe5Zthfw4dX69oP6/Idwqcr+DKoPLxEn9mlguQAiTHipc5SQX4BI68XbAYa0lxHnHuKhG 4ff9QcqjxLZk7ZJZuI0A6evxk5BqvoM6BvIGIASfALKHetVTyF3usw0WNaII/S4Bczv2izXNgTw ACSbx6utqcUMZUM+S7wiiqq8n9phHHhpFEtrNwFPeZdMVnIgboplJGds5F740RAScTXWf4+MJMP sBDW0ti2zv9Kx5bR//leR5D8cag6U4caJqQSMxwyttBzxbjBEWNZXDonPrnvSQZaZz1tpUhEFlc 3oQxYZfou592b4BIxF6nnSYmCQZPFuSu5PKZTSmksWM+hzzQJNGAh+1LzbEl80sFhEuZnb/RPAo BdKP00= X-Received: by 2002:a05:6300:2798:10b0:3dd:657e:b7bd with SMTP id adf61e73a8af0-3dd657ebcf2mr8116546637.6.1789619548678; Wed, 16 Sep 2026 21:32:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 060/101] tcg: Generic expansion of tcg_gen_clrsb_* Date: Wed, 16 Sep 2026 18:27:42 -1000 Message-ID: <20260917042823.542588-61-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619632932158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 45 ++++++++++++++---------------------- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 96a8ba3026e..79bb00b4a5d 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); @@ -185,7 +184,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 9968ca9516f..1bdf9876067 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -7,6 +7,7 @@ DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) +DEF2(clrsb, TCGV, TCGV) DEF3(clz, TCGV, TCGV, TCGV) DEF3(clzi, TCGV, TCGV, TINT) DEF2(ctpop, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ad738316293..eb3c55ba69b 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -495,6 +495,23 @@ static void gen_brcondi(TCGType type, TCGCond cond, TC= GTemp *src1, gen_brcond(type, cond, src1, tcg_constant_internal(type, src2), l); } =20 +static void gen_clrsb(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_REG, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + int width =3D tcg_type_size(type) * 8; + + gen_sari(type, tmp, src, width - 1); + gen_xor(type, tmp, tmp, src); + gen_clzi(type, tmp, tmp, width); + gen_addi(type, dst, tmp, -1); + } else if (type =3D=3D TCG_TYPE_I32) { + gen_helper_clrsb_i32(temp_tcgv_i32(dst), temp_tcgv_i32(src)); + } else { + gen_helper_clrsb_i64(temp_tcgv_i64(dst), temp_tcgv_i64(src)); + } +} + static void gen_clz(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { if (tcg_op_supported(INDEX_op_clz, type, 0)) { @@ -922,20 +939,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_clrsb_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_REG, 0)) { - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - tcg_gen_sari_i32(t, arg, 31); - tcg_gen_xor_i32(t, t, arg); - tcg_gen_clzi_i32(t, t, 32); - tcg_gen_subi_i32(ret, t, 1); - tcg_temp_free_i32(t); - } else { - gen_helper_clrsb_i32(ret, arg); - } -} - void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) { if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { @@ -1767,20 +1770,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_clrsb_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_I64, 0)) { - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - tcg_gen_sari_i64(t, arg, 63); - tcg_gen_xor_i64(t, t, arg); - tcg_gen_clzi_i64(t, t, 64); - tcg_gen_subi_i64(ret, t, 1); - tcg_temp_free_i64(t); - } else { - gen_helper_clrsb_i64(ret, arg); - } -} - void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) { if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619691; cv=none; d=zohomail.com; s=zohoarc; b=HIKdryOaq8q9AFkNW22cvA3onq8v9m2ltbWSmk3/eHVP5omIp6X1SnTHquDVFjr5M+T8b1J1g6VTE6Ny/V0vxRfDpvQkDfP68tjVp6+m3N9OZ0oK2NYMbimge2SImHTX0iE293nzlk7owlUPTGJzFIiKdv8mgsDoDumKiSBNQ0A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619691; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=Zm24+dLCs606J8p1fpHH1+kH1dAQHMuG8bBV4e56uuU=; b=TbKL3wzL2uztPVfmDQYbTwAspWO9ScDNLNEIsTCM/Y2w6kQ2Di2K3Jch9UQsitx9lAHXpN+nexAxwU3bo8M9PjL5cPE/qkxKsUu4CXiSp/VsfKSGKNnGdFzSmlKlnf1t+7NmR6JuqXKH54Sg9ArXpiELsUj/yt5y99xUqhIv93A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17896196911241022.3568170710404; Wed, 16 Sep 2026 21:34:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nq-0002PU-5i; Thu, 17 Sep 2026 00:32:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nV-0001es-Vz for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-pz2-x0f.google.com ([2607:f8b0:4864:3b::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nT-0007Hg-0r for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:32 -0400 Received: by mail-pz2-x0f.google.com with SMTP id d2e1a72fcca58-85469f20513so278205b3a.0 for ; Wed, 16 Sep 2026 21:32:30 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619549; x=1790224349; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Zm24+dLCs606J8p1fpHH1+kH1dAQHMuG8bBV4e56uuU=; b=KAtJdS2eOv514m4VMBl1zu4rux4JhoUhgeWAI7+gDezCvTVgIOjx4eeUvR5Jk1qQod bKJFpBUmfsjj0WpkFJ8mJXrueEdeFHy7H8AQG5qXuvXqlAg/enk/XaMwHK3wqcW81pmy UhNybrSGOH9nayjfimqlOcMeV65pWoS7g4kxwCiUoJhL+FWNF++UeEFP1/bKnLlRI8X5 WtXHYkQOCw8gZQYpLB+wNX5w+qShs0YwZduqE9/ca80AHEnjUr3/BCWVpt/SY8WupZ8d ddQIm3d+UOEcIeEGDFdUTFDl0gvaELJrFO4kyQcN3ZccEZGBeJp0g8m54gKr4i/fcU20 9oaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619549; x=1790224349; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Zm24+dLCs606J8p1fpHH1+kH1dAQHMuG8bBV4e56uuU=; b=UyyyQNqjJDbzWXGd8GnyDQvbPCDmY50SUTajLGMFXg4OqXCn9yJFhl5aZX1VJUrxVT cwoYAbmBl7rhJmDo6+Ze9VetnEkjktK8KcF70rNhYjIOQm3ycCCo4S2VB3enQxFVhzlW bRy+q4SkFIgJk4lSigtkJjG8+i3ADNrjri03R1ClFmrUUszx1WLWVA0ZWdZ2bjoDqoOZ e3Kyq6ngVHD3ofvh7HuXyeqmla5V9+7j3J/NB4dl6yqiXv/Lj6wXbusX84a+VAXH9VdG NkYNcIilIE605XdVzmuk0nLQigWX+V8pdnU0YVZVePJ/JEP/niokCSCGsGvrqvfkU7TF tTTA== X-Gm-Message-State: AFuF++nly9Pfzjc0JFNvjytoNB7QV/ZiqEr/ZFE1eVCsP51+rag58q0i Rbjxs0PqgmpO9oMyqMgxK0B3ZafyPZD8Hyd99K613Afbt+gEetJBM8CVHfoSfqyE1IsAd6OqqT9 7EMQFO/U= X-Gm-Gg: AYBFou2XGBx4iDXYVzkpbfl3bkCcmx94apInrqbCzYHR45ItDC/qFOKz9f1cAp7yoli 8i22Gg+Irnyzgreq1VgwIUpz3gNq2I367tCzjnatbe+rOjC6AeRFRyV+hFSy1BMxgYYM+ZV7pmv 7NDJJqR48TBhN3sSikKP/3Ol0Mqs45Ro20qYlVzITOHAXSPB2GUDJOu/GhqndG4zYzb3KEaUavl P1y5ir6biIVMUDv7rug0UD/Ma/gPrk4uR3INHrWbAylzVVPp70iDXoIAHfRuJx+AFGvTwRg8a/d XxmZ1cKw/iaazSWg9hV7RguKjPA48hSR7FOGiBdOyYNto4KVCwQoEeG4ajxUR/Swhq6GvJkr6zR cnLi1L5mvKTvpM/UqDWiQTfNW+7W2oa9co2shN3wPo9Z9Hcpkt1f+p0q+aw7ksF0LRGPPZCSiMh Ea8Do+e9rCafjyM1MFl7+gbmF84uOu3y1dLdDx5uCNalelK78CR6fKztNr0fqDYqvlQuc2JFCgG 35n4NOsay3Hk3VQvQ== X-Received: by 2002:a05:6a20:914c:b0:3d3:ae1f:d7f6 with SMTP id adf61e73a8af0-3dd5f74d755mr12740782637.22.1789619549530; Wed, 16 Sep 2026 21:32:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 061/101] tcg: Generic expansion of tcg_gen_rotl_* Date: Wed, 16 Sep 2026 18:27:43 -1000 Message-ID: <20260917042823.542588-62-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::f; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619693365158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 62 ++++++++++++------------------------ 3 files changed, 21 insertions(+), 44 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 79bb00b4a5d..bd1c76d9556 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); @@ -184,7 +183,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 1bdf9876067..3b2b0b76454 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -33,6 +33,7 @@ DEF3(ori, TCGV, TCGV, TINT) DEF3(orc, TCGV, TCGV, TCGV) DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) +DEF3(rotl, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index eb3c55ba69b..6a34798ad79 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -838,6 +838,26 @@ static void gen_remu(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_rotl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_rotl, type, 0)) { + gen_op_ttt(INDEX_op_rotl, type, dst, src1, src2); + } else if (tcg_op_supported(INDEX_op_rotr, type, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_neg(type, tmp, src2); + gen_op_ttt(INDEX_op_rotr, type, dst, src1, tmp); + } else { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + gen_shl(type, t0, src1, src2); + gen_neg(type, t1, src2); + gen_shr(type, t1, src1, t1); + gen_or(type, dst, t0, t1); + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -939,27 +959,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rotl, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_rotr, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_neg_i32(t0, arg2); - tcg_gen_op3_i32(INDEX_op_rotr, ret, arg1, t0); - tcg_temp_free_i32(t0); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - tcg_gen_shl_i32(t0, arg1, arg2); - tcg_gen_neg_i32(t1, arg2); - tcg_gen_shr_i32(t1, arg1, t1); - tcg_gen_or_i32(ret, t0, t1); - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1770,27 +1769,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rotl, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_neg_i64(t0, arg2); - tcg_gen_op3_i64(INDEX_op_rotr, ret, arg1, t0); - tcg_temp_free_i64(t0); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_shl_i64(t0, arg1, arg2); - tcg_gen_neg_i64(t1, arg2); - tcg_gen_shr_i64(t1, arg1, t1); - tcg_gen_or_i64(ret, t0, t1); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619672; cv=none; d=zohomail.com; s=zohoarc; b=T+KFXTh0LqJQ0HSfL/XEDaE0K4SHKLfd3Ms6HPQBiEO93W9JW7j7ltN1TTnzoCqJ1eIt5aY+0JjMVbPveVQlxvmBecNz1wZretO3U9K99/WGodLkApCdWULH4YXyp30ZCYK41xzEAfydXNX/YaReEFbAcI04bta8c91OGuwGaAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619672; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=njQniPnliW9sEpThVZMXTUSLOcFL2q/oSYc8/Avza8U=; b=oH1jvC3iSf8fpAk5urmMyAmR8N6pY6JuPN6Dw4LpbmxGnm9eUB2xaFZsk/AA2RnAPKPeCJdgLmhpfIY41T585olzqa+iIAgD4KSegBj1xXOTAp9AD3PtyCTOG5HQ1I5Ab1qXcVrEg0r8bJQbOnql6pKCPuDT6vi02dqOPVhr9Zk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619672788854.0657233261563; Wed, 16 Sep 2026 21:34:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ox-0004fa-1V; Thu, 17 Sep 2026 00:34:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nW-0001et-2s for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nT-0007Hz-T8 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:33 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-85469b355ffso272347b3a.1 for ; Wed, 16 Sep 2026 21:32:31 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619550; x=1790224350; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=njQniPnliW9sEpThVZMXTUSLOcFL2q/oSYc8/Avza8U=; b=DJm1xbxrOYZGOZcllxsppLZoR5/TIUugAT/RB3kXceBrR1MGYyyazV3YdeuFwcvutG 1ciFWKWGd+Wk6TYBy/jmmVcIFf+9YaINrDz1djxl7Xng1oPsPepqEtGGmFkIRVqBDJUO VdvHfKPNZmYLMY5zUTS4bibPqsthiAWgTkUPVX+k16ekX15ZkBf0NQ+mNn5oP6oKbCfC lzDVgk/kvh49qz1PxnHKvTFekySxubc+IioZ74JwIJOtMDrNkORLDnb4/nRz+DCLghlu iQtL4fSlt0DW5vNqeXNisQYKlb953yXJ4LAtEF8tJsKgYrW4a430dxem44Fj4NiaTCGb F6Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619550; x=1790224350; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=njQniPnliW9sEpThVZMXTUSLOcFL2q/oSYc8/Avza8U=; b=x7chyWTbyryokbry9gdHeQqzwXDZ4bhMJYOso969eInuOrvzGa/xYMlLmrzwZlyX7k 4AufiNyc198/FRkhy6DJ3l9tRUeOKUiL4sNoZd76XXjxpMA6fDUbMlYylzzjvyEzMhYG eZ44djA+Cl90RNbPW5AKyL6l+Sh45IKeK7PT8mQ7hKsIyhV5XWShoflntxflWboYBA5o KVgpI0roWPBQ8IblE4JmfJCQOLCHjTJM4sDbX2Qry9w/mdWt4eTwALaukOtCIhEkqWtE PBpPGs+N76wZOWuj4XuR52lpRMuYB0YdgNGAe34FjGkMncFMawAv/tmDGodRoFasIsu5 3Zew== X-Gm-Message-State: AFuF++l0Vb3L6YnFP7pnngDmTLtfDaVToFDwnxYMxvOvgvvUzuXTQ95W MytdFHRhb/WTN9RPSboi+bMuJDQSMPzdjOkVQmd3i4XJ5K6kdEXg1ujSFGIW0tUY0WhcHKvmzPw LgtK9bak= X-Gm-Gg: AYBFou2sVW/ScTYiU1lLdcZVk58mIaPaOEcFPlS7z+q+BKtOKjsZNXxIhYSVUmFSTxD MO9gYsAV31DcUYQwzmpI/g1J2ItavzwDm8SFRUYOIfiwjKk8d36mgsr9UVGkeiT9EX5a/5cdr+R VjCZUS3+6/F8+eudm+eYZbKANIpD80R2oIJjtuutW+x3RRsYwrtURm4tgPZkK6mrcaHJEMTvkpF BUC07cqKa9O6E1mVtmIy7GMJOVq952hlV3ar8R0Y3vF6nW3axSoAieaIwHK+LdxEsnAm0iVcILh KW//Rc7qigLbpbosOJCQc4GGoDYOyiFlQ3w7vqOPo7MS+P9aa+JHI4JxU050P6AB0OudTrQ/I75 4SNXlrfqo/gHCwyM69HhN76y7zJTxQsh9Y09W9MeqW+oEcuObqp6/dlW2fZ1bZkvJ0T4b+7o0or bJHdj0TdvfTeg+spH1j+NrflqZy0uK6xAnrn/qfbMPeS9LFBkJbuaVz3+aQEh3S0JLpEVDCwPX3 E7dpoYkNA4/ZffclA== X-Received: by 2002:a05:6a20:d43:b0:3d1:c99f:efbf with SMTP id adf61e73a8af0-3dd5f5d8819mr14197312637.14.1789619550515; Wed, 16 Sep 2026 21:32:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 062/101] tcg: Generic expansion of tcg_gen_rotr_* Date: Wed, 16 Sep 2026 18:27:44 -1000 Message-ID: <20260917042823.542588-63-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619673070158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 62 ++++++++++++------------------------ 3 files changed, 21 insertions(+), 44 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index bd1c76d9556..a1c32214723 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -130,7 +130,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); -void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_rotri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, unsigned int ofs, unsigned int len); @@ -184,7 +183,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); -void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_rotri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, unsigned int ofs, unsigned int len); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 3b2b0b76454..35542e003ef 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -34,6 +34,7 @@ DEF3(orc, TCGV, TCGV, TCGV) DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) DEF3(rotl, TCGV, TCGV, TCGV) +DEF3(rotr, TCGV, TCGV, TCGV) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 6a34798ad79..925ef8244b7 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -858,6 +858,26 @@ static void gen_rotl(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_rotr(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_rotr, type, 0)) { + gen_op_ttt(INDEX_op_rotr, type, dst, src1, src2); + } else if (tcg_op_supported(INDEX_op_rotl, type, 0)) { + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_neg(type, tmp, src2); + gen_op_ttt(INDEX_op_rotl, type, dst, src1, tmp); + } else { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + gen_shr(type, t0, src1, src2); + gen_neg(type, t1, src2); + gen_shl(type, t1, src1, t1); + gen_or(type, dst, t0, t1); + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -971,27 +991,6 @@ void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, in= t32_t arg2) } } =20 -void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) -{ - if (tcg_op_supported(INDEX_op_rotr, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rotr, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_neg_i32(t0, arg2); - tcg_gen_op3_i32(INDEX_op_rotl, ret, arg1, t0); - tcg_temp_free_i32(t0); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - tcg_gen_shr_i32(t0, arg1, arg2); - tcg_gen_neg_i32(t1, arg2); - tcg_gen_shl_i32(t1, arg1, t1); - tcg_gen_or_i32(ret, t0, t1); - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - void tcg_gen_rotri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); @@ -1781,27 +1780,6 @@ void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, = int64_t arg2) } } =20 -void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) -{ - if (tcg_op_supported(INDEX_op_rotr, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rotr, ret, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_neg_i64(t0, arg2); - tcg_gen_op3_i64(INDEX_op_rotl, ret, arg1, t0); - tcg_temp_free_i64(t0); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_shr_i64(t0, arg1, arg2); - tcg_gen_neg_i64(t1, arg2); - tcg_gen_shl_i64(t1, arg1, t1); - tcg_gen_or_i64(ret, t0, t1); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_rotri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) { tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619817; cv=none; d=zohomail.com; s=zohoarc; b=X6wQDyOerq9yTEXOk4u3zrkOC0pLjC7BgLWHN7YuJDAc/xKh+xGBAa/s5nei8R9KjX0PtxhfOwEh+3fb+ITOVojnR5dGqalTTQEMzHbEhvfZOv4ucvx6NOSrmqLPlcWnTLRd3mVCApsbPonDDqwkCIlNeoZiWU9PvY2aCMT0L/0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619817; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=RKxXudSmxkPYoNlX7GcYgI8KVmLrw0LVK31M2bTDPuQ=; b=iwuPRuX3+1J8ukRlAitparyj0ebkXVSjLKNpYLN2YwnV8cY5lhI6n6dU/t5X0/iOgC4j/FIJ8CCPzTRqhR8vZ8+KpfVlh3JGDFxIxjNAL0FplwD18y2rTV85rlq0g1eK/GmXCwWM4YxuEQUug0YIfrMuFkvOi+Bvu3HuUq8qW8E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619817688504.29450209472395; Wed, 16 Sep 2026 21:36:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73oz-0004ps-R0; Thu, 17 Sep 2026 00:34:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nX-0001eu-KF for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:40 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nV-0007IC-PK for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:35 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-39b9184fa80so334613a91.2 for ; Wed, 16 Sep 2026 21:32:32 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619552; x=1790224352; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=RKxXudSmxkPYoNlX7GcYgI8KVmLrw0LVK31M2bTDPuQ=; b=Lt5wrplpSMRACl8cf+9eqkHbBbcI6bDzjagvCnrB37AUQymcNHKS9erOaffSttQEZZ p70kz262NC2cOyfUbPr3Dt+Fyb6bT+vY1D/xK6j7+yUbAFbaBfbWT3Ob8KMZxdnYgiPT E5pQZeiho4tW6NkuHKf164xDxuIBSTrSWm/+7zIgwtjjn9Q64Rs4uKWQJROjbd1JgZST Q4ZZzDDJ0oR4Y6nLi895kZHt+ns5Gp/GQz9kyfY7OAVaRy46IdprdsLq8mKc4aFPkw+B wsOo6t+By9bEmxDqG38A8KgEkM6gFo1P+CmmqlAwjg0QVErewffzkwEpNC5+QQYkpDij 7PwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619552; x=1790224352; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=RKxXudSmxkPYoNlX7GcYgI8KVmLrw0LVK31M2bTDPuQ=; b=gfDHhVsdmc9cTScFDA3HKnC94gU0n6lXWaPznuTWsuJVk5xQVI1HLv+EE4sqDDIN7U xmIE19/k5kc9A/yaSvbuu+WWUzwMr1KqMTxXPunU1GQpvp+MVHlSZsOvvTJdOAhZQPWD VDn5KMbs6H4GyyaBjJtrqWcz9hyQVz/2rcA1xOg5xtsGoM0wUDWestBUQx0Ge2omKlZN fLi350grJ7mey8iv5rO/GE0dyT8HDXnhfebM+ymqLY7gC45hvKLzmB2IJhV6gMmJ2jBM hcL0Lu8dXdfA8qOV2/CR5Uvzg2Pa05baMw0QX+RU/C4zL6O07brca+Hccwi4PKRZMLsg fAmw== X-Gm-Message-State: AFuF++kA+AgTV2ihhzA879U0oBi27sZUKO6dqwZMvA6bNNTeU8Giolr+ ET/mt2ohgrHUVMr1o84RLiIa9tYwzQnGs4vppzqRGtLXiLm9cPS72HsXesgp2VMSrZCxkqL8TNc 8O+oV+kE= X-Gm-Gg: AYBFou3f4MlxFh0FduLTajBef/cMIrFvK7nS1FAjorcCf3jgaTfTGnASdiypnRZ2fxY e3BA5U96a/7Y1tnjlN9ofzR2PYAZQHqsk5sKx104oPMjd+x8ONfp4iCJK1kjjlXsay5GW69+geb svk6H46L6X14v9PlDltb5H949jdNObioV4aAxbQHTA8G9Ux2AD77morPRBRd5J7nJwlee7CSqrR G2rqqsm+9nDqojouCayYnjJH6383YScBy7q3kFR4fvKdh3E0i6JV46qRn+YqfAIoMF+rbHb6WSX wjhmYz7cD9hJ0zXPA+TxWWubUeLlhvTbBsGt51yW4RehGwGZnIs4eba9GfHzM41jWCAOeJa8cA8 ZaAa6vj9RPJeLeuHWd4dCd5z9DXukRWXiGn6Oqju4rJOnZyVqsdn3S+uwO8TiqwRnOiVZcBMHMu CdjzTk4sfcBgX7xb9f/sdKI1SwHB7dfCA/14iv4hRDXh3TDVTrlqrUpd7hau/QUc020650Lsypp 5e0XKHSZmCNY/oyUJk= X-Received: by 2002:a17:90b:544e:b0:39e:35e4:d31b with SMTP id 98e67ed59e1d1-39e35e4d992mr8962887a91.5.1789619551488; Wed, 16 Sep 2026 21:32:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 063/101] tcg: Generic expansion of tcg_gen_rotri_* Date: Wed, 16 Sep 2026 18:27:45 -1000 Message-ID: <20260917042823.542588-64-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619819770158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 49 ++++++++++++++---------------------- 3 files changed, 20 insertions(+), 32 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index a1c32214723..aa5257d9e31 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -130,7 +130,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); -void tcg_gen_rotri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, @@ -183,7 +182,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); -void tcg_gen_rotri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 35542e003ef..383a13aa1e9 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -35,6 +35,7 @@ DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) DEF3(rotl, TCGV, TCGV, TCGV) DEF3(rotr, TCGV, TCGV, TCGV) +DEF3(rotri, TCGV, TCGV, TINT) DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 925ef8244b7..389cdf22b73 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -878,6 +878,25 @@ static void gen_rotr(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_rotri(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t s= rc2) +{ + int width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(src2 >=3D 0 && src2 < width); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else if (tcg_op_supported(INDEX_op_rotr, type, 0)) { + gen_op_ttt(INDEX_op_rotr, type, dst, src1, + tcg_constant_internal(type, src2)); + } else if (tcg_op_supported(INDEX_op_rotl, type, 0)) { + gen_op_ttt(INDEX_op_rotl, type, dst, src1, + tcg_constant_internal(type, width - src2)); + } else { + /* Do not recurse with the rotri simplification. */ + gen_op_ttti(INDEX_op_extract2, type, dst, src1, src1, src2); + } +} + static void gen_sar(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sar, type, dst, src1, src2); @@ -991,21 +1010,6 @@ void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, i= nt32_t arg2) } } =20 -void tcg_gen_rotri_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else if (tcg_op_supported(INDEX_op_rotr, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rotr, ret, arg1, tcg_constant_i32(arg2)); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rotl, ret, arg1, tcg_constant_i32(32 - ar= g2)); - } else { - /* Do not recurse with the rotri simplification. */ - tcg_gen_op4i_i32(INDEX_op_extract2, ret, arg1, arg1, arg2); - } -} - void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, unsigned int ofs, unsigned int len) { @@ -1780,21 +1784,6 @@ void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, = int64_t arg2) } } =20 -void tcg_gen_rotri_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else if (tcg_op_supported(INDEX_op_rotr, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rotr, ret, arg1, tcg_constant_i64(arg2)); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rotl, ret, arg1, tcg_constant_i64(64 - ar= g2)); - } else { - /* Do not recurse with the rotri simplification. */ - tcg_gen_op4i_i64(INDEX_op_extract2, ret, arg1, arg1, arg2); - } -} - void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, unsigned int ofs, unsigned int len) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619974; cv=none; d=zohomail.com; s=zohoarc; b=OM2ahz377VEXosgZOUC7d//6cnWdtvtIQpoYB/2MsVxtNaaGpijKZXFhrBoiIDjuKii4xmJiXBz2CEUYHl7dh8pFSle2R3t/7xVGmgPSL3XwZmm8JPUBC5O7jeUrwyShZNlAHGNcf+MYApW94ah0/+aURHiCmuNQ3bJoIQ9+0r4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619974; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=nXDsPJde9RcA7gkmx9tU38OTY+zchKLPLswLbYww2aU=; b=DwJO8ETPcvrVNkQFBDUjg+P4O5WnfaG8WcFBtDGUiC8+lY3rSfrDNI7XhfcxyTDVaHukL6OKvyOP6qDZO3nEDUmRjoW36mFD4QOGTUE+PVvoIXLY45Z74+6pqGHGMo7iN0lQWJzpspW/gBIWYV3lPvBeZeo6fC3PD5HXKOJhf1E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619974079803.3137523409061; Wed, 16 Sep 2026 21:39:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pI-0005yy-AP; Thu, 17 Sep 2026 00:34:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73na-0001f2-BS for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:41 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nX-0007IS-94 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:36 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396cccbba92so331744a91.0 for ; Wed, 16 Sep 2026 21:32:34 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619554; x=1790224354; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=nXDsPJde9RcA7gkmx9tU38OTY+zchKLPLswLbYww2aU=; b=yaY34lROxhnTg4CY5CncZEjpav4vnpXpr7IzDh9/uUb7aaB17nkjlUq6b8/4GrKXbV 30qpQVjcnuZhRBX7wz5DEoqOtxP6wZi8s+puF66w91wBCOmtukvYn0S10tZXbvBev+qQ 66rbiP4Altn9GdP8QFcMAukYJQgIVMGWHL5ozfvz+4HbV9JUhDjzOapAwM9BgijLiuKV 4IuXx2RkHnT4beJ45fYWhDkdaD36022Ey4BMFoNhZAB76NHosPQxCW1U97pWL6u9VqUK KZQxEFa0tFgkGHPTcGSO55VOxYJH3aJQ81eGGYS+FatvfyD8ndSmDBCebyqYwPSDCfdt qLBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619554; x=1790224354; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=nXDsPJde9RcA7gkmx9tU38OTY+zchKLPLswLbYww2aU=; b=QoidloJkEZ8va6Go75HFuPXYVOioESfVA1CCgBOiYVS5+yld2op8wsKyEM/V5s7jT0 A27YrfyN47cEdBl4T44H5EFtBb5ycvYSxLjGAhbQkT04snfIhsrKZuc0pKpVsgUFxCPk Hic06KPV5k9gE3HBrZw1kgB5yIbzB3Xa/BW1bBXSaASmSmGTxdlI5Mn3BlA6oVEqSnTa SgFwFob7lYkS3CCibu5oEOp5S6FjzePPTThrkNBdtd0pF7Y1xRUb8yGLbYqkSfPq4rP8 wZWPwfhxREJoEpUeptD4w7s0UgpeAjoE3M3tAOOYSIgN8MHQLd7tHokztKqndefIh8KA RnTw== X-Gm-Message-State: AFuF++mMGB06VPDXxIfeII2x/OfgDjSQICXY4av37woIsVavBM5O6Ql3 wbqTp4cYx5hP5VWed60T4oT0q/9JmDXPfUPwCQnojELUS1G2N3DJ4U991xvvzwq5xgPUYlAXutg 8x96w26Q= X-Gm-Gg: AYBFou060MXIHB/byvsVsIebStKmn2MlJPoVSLdll4p8AWJ2/ZQpRxOuetwTVd/ZCUP AKk0Vq3htKbmZyHmsG6bpMJhC5NUQFxWlScpb8eGQzGjQbZCFGB3SjPwnga/jtQy7iVWbLvvbVJ +KS81sOQYFVBqByn+TQEHMY9SvIsi7eXkKBS3hVHeQuWzcMrqZ1OytqrQiSii52a36cqn32Oza+ Pis3fuFhnhuXe7io77vMTX1UrHg7uXZFt3TaiGU/xHT/EXYTQ1QfV1iaNLDIfNV1PfwRowZsEq3 0hop1gY2/fuUkw4ozlg/QnPBohkzqo8HFFsiRY/xBiic30XcIUlMHCcYywcAgNqxk8ZHjhwFPwm XdJq+9i2mA4E3lfSMsqWcYE/K12E6g9ceq5opHKEDcuEyW9fd5+dxN2/rVsIS/x+rJtj/V8WOIY GstQVxqiNgOcYZxEdwhdeu66f7h3JGvk67/TNRURErsEnUjP6TNghhhl6YX7d7TAfJGWc+6H4sO cdQsG0gA7pbsSo19A== X-Received: by 2002:a17:90b:560c:b0:399:1f8b:d255 with SMTP id 98e67ed59e1d1-39e1e277431mr12218374a91.5.1789619553957; Wed, 16 Sep 2026 21:32:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 064/101] tcg: Generic expansion of tcg_gen_rotli_* Date: Wed, 16 Sep 2026 18:27:46 -1000 Message-ID: <20260917042823.542588-65-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619974534158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 39 ++++++++++++++---------------------- 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index aa5257d9e31..2b65e996acc 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -129,7 +129,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2); void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, @@ -181,7 +180,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2); void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 383a13aa1e9..57d6f07b907 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -34,6 +34,7 @@ DEF3(orc, TCGV, TCGV, TCGV) DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) DEF3(rotl, TCGV, TCGV, TCGV) +DEF3(rotli, TCGV, TCGV, TINT) DEF3(rotr, TCGV, TCGV, TCGV) DEF3(rotri, TCGV, TCGV, TINT) DEF3(sar, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 389cdf22b73..a4607044da1 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -858,6 +858,21 @@ static void gen_rotl(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_rotli(TCGType type, TCGTemp *dst, TCGTemp *src1, int64_t s= rc2) +{ + int width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(src2 >=3D 0 && src2 < width); + if (src2 =3D=3D 0) { + gen_mov(type, dst, src1); + } else if (tcg_op_supported(INDEX_op_rotl, type, 0)) { + gen_op_ttt(INDEX_op_rotl, type, dst, src1, + tcg_constant_internal(type, src2)); + } else { + gen_rotri(type, dst, src1, width - src2); + } +} + static void gen_rotr(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) { if (tcg_op_supported(INDEX_op_rotr, type, 0)) { @@ -998,18 +1013,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCGT= emp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, int32_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 32); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i32(ret, arg1); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_rotl, ret, arg1, tcg_constant_i32(arg2)); - } else { - tcg_gen_rotri_i32(ret, arg1, -arg2 & 31); - } -} - void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, unsigned int ofs, unsigned int len) { @@ -1772,18 +1775,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2) -{ - tcg_debug_assert(arg2 >=3D 0 && arg2 < 64); - if (arg2 =3D=3D 0) { - tcg_gen_mov_i64(ret, arg1); - } else if (tcg_op_supported(INDEX_op_rotl, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_rotl, ret, arg1, tcg_constant_i64(arg2)); - } else { - tcg_gen_rotri_i64(ret, arg1, -arg2 & 63); - } -} - void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, unsigned int ofs, unsigned int len) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619833; cv=none; d=zohomail.com; s=zohoarc; b=bokN4zlbUFYY8OXzisTEGKRzJoQub5XwioeQygWe74IBSOP08e6ex18uZrPXAGI57mpnOnxp62svBJxga6ZaMQ4C189kBVyBoPP3LMnjx/ZpnwcWRa1mEXo+ASXKUIMvFK7YFiBPLXXiCOXQJqO56+IBz/3bcf0ARHGFLQt+X0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619833; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=RMvL2Ind42To0Mq8dyofHtdOpD+ZTxhJBlX2QqpoUFA=; b=brJESZN36ON8Eoyiorel209pYeFeVbIVmikSqxxqvGeZ2mXgey6zhpufjMHGh0d7L6wuekSMtKZ/NiC1Wl29VeDwv/426QAA7TKwaqcgNttHH5sZuY8wvDi0AgzlPEUL3h9+vNXEvrIgXX9qzxGMlcLkwtKxKSISljyD0Vjh/i0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619832974634.6549873417277; Wed, 16 Sep 2026 21:37:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pH-0005t5-3X; Thu, 17 Sep 2026 00:34:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nb-0001gX-VZ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:42 -0400 Received: from mail-pz2-x14.google.com ([2607:f8b0:4864:3b::14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73na-0007Ib-0c for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:39 -0400 Received: by mail-pz2-x14.google.com with SMTP id 41be03b00d2f7-cc4d2fe2056so223213a12.2 for ; Wed, 16 Sep 2026 21:32:36 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619555; x=1790224355; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=RMvL2Ind42To0Mq8dyofHtdOpD+ZTxhJBlX2QqpoUFA=; b=CQnBYQ+yxFuGzA7pVc6FriCZlygyLDX+CL+9bHEckR0EVKKCJP8IOKM+KcfCJ2tBMj U+Ba/5yFF6C8ne1gW8+9174nVBzR7I8t7ad3gzGgM5JTM2seZJis5G726LTDZx786B8J I2SGZxnV2PZXyeRAvkcQWZq3GM4/UU7tUST5h6ghpgEaLT5Hj7T3/iwkT113nkqw8KR0 oZLqAMbc+AX/y9LULK4nvdPueDHejgZy5tEKUDkFbhWOdReEQrrUvcQfMTqc2qfRRRD9 7CMR/lZOsqB37jcYUtmuLm+Vgs+0/35+YdjmzBLq3PkWbUT6ee+yHSCZxrYWHf4FJUQY QbUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619555; x=1790224355; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=RMvL2Ind42To0Mq8dyofHtdOpD+ZTxhJBlX2QqpoUFA=; b=RiW/JbT2ptXxU1IwlhmkJhZQpsMBCFjg1vhSJRLn9uWeAAybQBiuraiQwhTwHTVsGn AsT+UOZM1PMmRoKayOYsoTv4mKvdAVprITqIOQ4vsJHRSA/Ta9DEbNMsDnXbCK4ImhB+ tUAEw13QB4utTgSBQ8qEr+PuLTuYqlJGRrT7AZNQ/ZitjBcBjL7okE5Cy9x8zVm49Y1C q3UiZgFa3WdMpgtc3aQlDJ3xWwax3GbhdXe9d1TtRQLpOEKm/5T3VcpKfB4nmWyGl6GB Gt1bKYvPedL7o6jys+r9LSRgzAzWJSQEFjKBiPXBKYh3h1X1V83nwKH6HXeWcTcqjb7+ raSA== X-Gm-Message-State: AFuF++lTsF7fpjvVWoiJI8aYUYZMKV2tPGDfCQsp5uAA/NsuSveD0cl4 3BmK8muxOTHnS8zshU7w/TXJfNLkoKKcumkvB4s04KPhA2G22ZrwuR+pOvx2YWE9JaDjfx7bPdv hLtaP X-Gm-Gg: AYBFou2uRYestjtDkb1LpeuKipg0xKh5AJOCsp6ddw76t+0K+DvZfHESe9O51HXHobm b83xMt0DNtULJ3JoSYOvWnRcejcP/n/BMpCklfXmqoYJ09lALbmko1gOh2ltmz9gh2Nk1KD02Mu Walguu4U1W5SX0Ngr6g2+L+ePEmS3fcLFVyJvSi453GhWrJZfKr9qfTx1VE4asFgh+3YdL0RUaG 9x0xaRHEgVxIhZME1i6eFxuB3tHJkUERR5kckBmVg2jtFLMt9WONEgAXPin0afmS05CokKcO5N6 S7kiNr2iUWu/P+kELhodZU3Oyz0jpZFuDXyFcIoAuHwkTN1lsEtfeZAdKzJZuJ7YI63yYLcBz4P TPVht5TRb/lQ8cLkyTlOXnSBdl/oUOGwvwo7GHBXgUEZqb8UivTRh49yuLT0nEQC4YT7ae3n9bO pgktry9JNXMijyCLUGUfxtUqBri7aAq8J6WB3lkMtE9ssQKTRZzL9n4OlVrQm6yltQMtIVufYlp Oik5v0= X-Received: by 2002:a17:90b:582b:b0:39d:c3bb:98e7 with SMTP id 98e67ed59e1d1-39e1e2eb37cmr12344331a91.6.1789619555049; Wed, 16 Sep 2026 21:32:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 065/101] tcg: Generic expansion of tcg_gen_deposit_* Date: Wed, 16 Sep 2026 18:27:47 -1000 Message-ID: <20260917042823.542588-66-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::14; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x14.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619833824158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 7 ++-- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 66 ++++++++++++++++++++---------------- 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 2b65e996acc..b9118a6df08 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -100,6 +100,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3); #define DEF4(NAME, T1, T2, T3, T4) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4); +#define DEF5(NAME, T1, T2, T3, T4, T5) \ + QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4, T= 5); #define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ QEMU_ARG_NONNULL void glue(glue(tcg_gen_,NAME),TEXT)(T1, T2, T3, T4, T= 5, T6); =20 @@ -125,12 +127,11 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo); #undef DEF2 #undef DEF3 #undef DEF4 +#undef DEF5 #undef DEF6 =20 /* 32 bit ops */ =20 -void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, - unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract_i32(TCGv_i32 ret, TCGv_i32 arg, @@ -180,8 +181,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, - unsigned int ofs, unsigned int len); void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract_i64(TCGv_i64 ret, TCGv_i64 arg, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 57d6f07b907..a2244bedeb2 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -13,6 +13,7 @@ DEF3(clzi, TCGV, TCGV, TINT) DEF2(ctpop, TCGV, TCGV) DEF3(ctz, TCGV, TCGV, TCGV) DEF3(ctzi, TCGV, TCGV, TINT) +DEF5(deposit, TCGV, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index a4607044da1..7c5f6ae8e6b 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -127,6 +127,14 @@ static TCGOp *gen_op_ttti(TCGOpcode opc, TCGType type, return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), temp_arg(t2)= , a3); } =20 +static TCGOp *gen_op_tttii(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, + TCGArg a3, TCGArg a4) +{ + return tcg_gen_op5(opc, type, temp_arg(t0), temp_arg(t1), + temp_arg(t2), a3, a4); +} + static TCGOp *gen_op_ttttt(TCGOpcode opc, TCGType type, TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, TCGTemp *t3, TCGTemp *t4) @@ -326,6 +334,8 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3); #define DEF4(NAME, T1, T2, T3, T4) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4); +#define DEF5(NAME, T1, T2, T3, T4, T5) \ + QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4, = T5); #define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4, = T5, T6); =20 @@ -341,6 +351,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF2 #undef DEF3 #undef DEF4 +#undef DEF5 #undef DEF6 =20 /* @@ -364,6 +375,11 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned mem= info) { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), \ glue(C_,T3)(c), glue(C_,T4)(d)); } =20 +#define DEF5(NAME, T1, T2, T3, T4, T5) \ + void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c, T4 d, T5 e) \ + { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), glue(C_,T3)(c), \ + glue(C_,T4)(d), glue(C_,T5)(e)); } + #define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ void glue(glue(tcg_gen_,NAME),TEXT)(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f= ) \ { gen_##NAME(TYPE, glue(C_,T1)(a), glue(C_,T2)(b), glue(C_,T3)(c), \ @@ -375,6 +391,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #define C_int64_t #define C_TCGCond #define C_TCGLabelPtr +#define C_unsigned =20 #define TCGV glue(TCGv,TEXT) #define TEXT _i32 @@ -404,11 +421,13 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) #undef C_int64_t #undef C_TCGCond #undef C_TCGLabelPtr +#undef C_unsigned =20 #undef DEF1 #undef DEF2 #undef DEF3 #undef DEF4 +#undef DEF5 #undef DEF6 =20 static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src); @@ -612,6 +631,23 @@ static void gen_ctzi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) gen_ctz(type, dst, src1, tcg_constant_internal(type, src2)); } =20 +static void gen_deposit(TCGType type, TCGTemp *dst, TCGTemp *src1, + TCGTemp *src2, unsigned ofs, unsigned len) +{ + unsigned width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(ofs < width); + tcg_debug_assert(len > 0); + tcg_debug_assert(len <=3D width); + tcg_debug_assert(ofs + len <=3D width); + + if (len =3D=3D width) { + gen_mov(type, dst, src2); + } else { + gen_op_tttii(INDEX_op_deposit, type, dst, src1, src2, ofs, len); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -1013,21 +1049,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 32); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 32); - tcg_debug_assert(ofs + len <=3D 32); - - if (len =3D=3D 32) { - tcg_gen_mov_i32(ret, arg2); - } else { - tcg_gen_op5ii_i32(INDEX_op_deposit, ret, arg1, arg2, ofs, len); - } -} - void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len) { @@ -1775,21 +1796,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 64); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 64); - tcg_debug_assert(ofs + len <=3D 64); - - if (len =3D=3D 64) { - tcg_gen_mov_i64(ret, arg2); - } else { - tcg_gen_op5ii_i64(INDEX_op_deposit, ret, arg1, arg2, ofs, len); - } -} - void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len) { --=20 2.53.0 From nobody Sat Sep 26 20:52:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619719; cv=none; d=zohomail.com; s=zohoarc; b=R1LePzd+3DqsMOOtH43zGEJ4lnf6y211CG6SYAcUCDEqlJy4YjMJiFdN/Tnzrr7OZ20KWpuv5eeklrSoNx3Li2SIB4XVG+Ra8YQCmBwOx+0OuEaaKBL9yk22Wq+Q1+BMccy64Wy132r81mYgGS6X+3u5Evnp6hIHByRGrfmVPA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619719; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=W/VQs3Jn14XjhyrAw70ort8Z0kIwCKyMhJiUF4aHouI=; b=iuMW++UooClhSx504vsBzdELSoVDQ8Mgnnsvo+Mmzk3u5VK9N9kyNvV4/LXcZpiAbNteNf+MW1eeusvdeLGisybyM3nRMiUCJA6SFzHIW8row/L71ZSJWl6uaZ4Ghm5ehSzfkTxSwdZnz08JZU3awb1WqP9t4eK59Nvv59NRtJ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961971928973.2991817052324; Wed, 16 Sep 2026 21:35:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73p2-00052p-3T; Thu, 17 Sep 2026 00:34:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nb-0001gW-RJ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:43 -0400 Received: from mail-oo2-x0d.google.com ([2607:f8b0:4864:31::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73na-0007Ih-1s for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:39 -0400 Received: by mail-oo2-x0d.google.com with SMTP id 006d021491bc7-6b390bcab0cso223101eaf.2 for ; Wed, 16 Sep 2026 21:32:37 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619556; x=1790224356; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=W/VQs3Jn14XjhyrAw70ort8Z0kIwCKyMhJiUF4aHouI=; b=KLyCiewCJZERX+NXt3HKzl6kXAe93EQZPr62nKarBlczpnLEi+u8K6ajoh6QcRneNX zkCyL8f6xpr8njDmmkoMSIpQwwanay75oLKANfyXnOsXjxHiCos1YfTYRsY//mhxyFnH XlS0P5yQQU4YsLGbeexyjli3f1JS/8HCJ3W0sI4ytPHQ3QeQjFD0xLXOcbud+Am81bPA wbHAMNTz/GqlWgD+/T6E7uR5eD1cw3PBHlBAsyc82DoStTX5znxD9G6aC/e6UpC47W2H ijzgWE851UWUZqirk7xSX3LZS/T62bvoKOp5syS3K/OwawwQdAmSiuth60DkCswK+oDY X6WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619556; x=1790224356; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=W/VQs3Jn14XjhyrAw70ort8Z0kIwCKyMhJiUF4aHouI=; b=nOn4HKErR60bG6fiIQz11LCuoh22sr/Wqj7ZejN23ZY+K1u7R2bYhwosLRLy75Uku4 7GK0flv4bxVqU0/dFM3wnTAq99IJGVVzHUpKhISRunP3bZ/ueXYjioU7bQ8QF7+vPL6M Ug9Sg4nZj4O0MdQNSvSh8WUrogr+8C3X9KyFt/qtEZW1quA9X5RqiDldC0PAt3Em0tGs /ACR3BHy54NAistIvVPeeGO72KmaAAns0I1aq0NNRm2iugCbYMDzrU95J1E0ywK2b8O5 cQaDFkTJXKHxgHI0O2sV8RML31S1llfEhNd0DIqCdCdlIFb9BdervJppym3aYfyq54mP Tctw== X-Gm-Message-State: AFuF++lQb5Na/WN7rVtVCnkPQlkZj/GGzkhwhZZPhNXVBQFJn/Om7XJ7 3kC8BDnr/iKQ428x0yDH+21Ol6QUiw7KOG1wbeJSG9WKfRrTYcn17QcmwQoaoh+wl5VJiMlOONg BGVdlsdk= X-Gm-Gg: AYBFou1MIzLUISTCZpgtwMQt0aQSMqi2vao29yJxVSezmNbEd0mQHhFHVqVSiQT4O4X yFAdrwqS1JJTEADy+OKPRKC0Gx8gHMst6/dT3iCV+V5zMU8vGUXhyUPj8YgPBnjd0QN+L9QIBAc 6x8zm2+1Vmx8hGz4OeQVRdWrgN29zd6lPdto4a49nVJwmCPAxdqEodZa1vGTdIAqW7Wty7C9cKc SjriygDvgI9iCVKmeORyKyTazWNdcuBuqZxWSkdfzVF6ah1T1mIemkTenlUZJCkccegHGQRsKHx Pv/pRt5zsgqOgGHVEKvVg4fA5/lINDZZMAGCxTvHUA+Hq9xD8JAsT1dl6P4ndNLCXO8ZVtroY7g jokz8oLBRD65/iao0XJ7m/KbRe9/bBMHlhlkR0ZUVBjSZwzoi/a08iOh1F8ixYmscYvA8FmUoBF aFuES03TvDtMwaqpB7NZBZirwtYUoGWTotlysW7ZIxMCiH191bJtiHjduUPTzDQIr5TgxB1mK5i gHoQbg= X-Received: by 2002:a4a:e909:0:b0:6bd:b927:673d with SMTP id 006d021491bc7-6c7d11d6583mr4965177eaf.13.1789619556054; Wed, 16 Sep 2026 21:32:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 066/101] tcg: Generic expansion of tcg_gen_extract_* Date: Wed, 16 Sep 2026 18:27:48 -1000 Message-ID: <20260917042823.542588-67-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::d; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x0d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619721273158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 131 ++++++++++++----------------------- 3 files changed, 46 insertions(+), 90 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index b9118a6df08..7973738331a 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -134,8 +134,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); -void tcg_gen_extract_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len); void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, @@ -183,8 +181,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); -void tcg_gen_extract_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len); void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index a2244bedeb2..856338aa0d4 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -17,6 +17,7 @@ DEF5(deposit, TCGV, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) +DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 7c5f6ae8e6b..ade5d8bf835 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -692,6 +692,51 @@ static void gen_eqv(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_extract(TCGType type, TCGTemp *dst, TCGTemp *src, + unsigned int ofs, unsigned int len) +{ + unsigned width =3D tcg_type_size(type) * 8; + uint64_t mask; + + tcg_debug_assert(ofs < width); + tcg_debug_assert(len > 0); + tcg_debug_assert(len <=3D width); + tcg_debug_assert(ofs + len <=3D width); + + /* Canonicalize certain special cases, even if extract is supported. = */ + if (ofs + len =3D=3D width) { + gen_shri(type, dst, src, ofs); + return; + } + + if (TCG_TARGET_extract_valid(type, ofs, len)) { + gen_op_ttii(INDEX_op_extract, type, dst, src, ofs, len); + return; + } + + /* Assume that zero-extension, if available, is cheaper than a shift. = */ + if (TCG_TARGET_extract_valid(type, 0, ofs + len)) { + gen_op_ttii(INDEX_op_extract, type, dst, src, 0, ofs + len); + gen_shri(type, dst, dst, ofs); + return; + } + if (TCG_TARGET_extract_valid(type, 0, len)) { + gen_shri(type, dst, src, ofs); + gen_op_ttii(INDEX_op_extract, type, dst, dst, 0, len); + return; + } + + mask =3D MAKE_64BIT_MASK(0, len); + if (tcg_op_imm_match(INDEX_op_and, type, mask)) { + gen_shri(type, dst, src, ofs); + /* Do not recurse with gen_andi. */ + gen_and(type, dst, dst, tcg_constant_internal(type, mask)); + } else { + gen_shli(type, dst, src, width - len - ofs); + gen_shri(type, dst, dst, width - len); + } +} + static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_extrh_i64_i32, TCG_TYPE_I32, dst, src); @@ -1067,49 +1112,6 @@ void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 ar= g, } } =20 -void tcg_gen_extract_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len) -{ - uint32_t mask; - - tcg_debug_assert(ofs < 32); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 32); - tcg_debug_assert(ofs + len <=3D 32); - - /* Canonicalize certain special cases, even if extract is supported. = */ - if (ofs + len =3D=3D 32) { - tcg_gen_shri_i32(ret, arg, 32 - len); - return; - } - - if (TCG_TARGET_extract_valid(TCG_TYPE_I32, ofs, len)) { - tcg_gen_op4ii_i32(INDEX_op_extract, ret, arg, ofs, len); - return; - } - - mask =3D (1u << len) - 1; - if (ofs =3D=3D 0) { - tcg_gen_andi_i32(ret, arg, mask); - return; - } - - /* Assume that zero-extension, if available, is cheaper than a shift. = */ - if (TCG_TARGET_extract_valid(TCG_TYPE_I32, 0, ofs + len)) { - tcg_gen_op4ii_i32(INDEX_op_extract, ret, arg, 0, ofs + len); - tcg_gen_shri_i32(ret, ret, ofs); - return; - } - - if (tcg_op_imm_match(INDEX_op_and, TCG_TYPE_I32, mask)) { - tcg_gen_shri_i32(ret, arg, ofs); - tcg_gen_andi_i32(ret, ret, mask); - } else { - tcg_gen_shli_i32(ret, arg, 32 - len - ofs); - tcg_gen_shri_i32(ret, ret, 32 - len); - } -} - void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len) { @@ -1814,49 +1816,6 @@ void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 ar= g, } } =20 -void tcg_gen_extract_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len) -{ - uint64_t mask; - - tcg_debug_assert(ofs < 64); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 64); - tcg_debug_assert(ofs + len <=3D 64); - - /* Canonicalize certain special cases, even if extract is supported. = */ - if (ofs + len =3D=3D 64) { - tcg_gen_shri_i64(ret, arg, 64 - len); - return; - } - - if (TCG_TARGET_extract_valid(TCG_TYPE_I64, ofs, len)) { - tcg_gen_op4ii_i64(INDEX_op_extract, ret, arg, ofs, len); - return; - } - - mask =3D (1ull << len) - 1; - if (ofs =3D=3D 0) { - tcg_gen_andi_i64(ret, arg, mask); - return; - } - - /* Assume that zero-extension, if available, is cheaper than a shift. = */ - if (TCG_TARGET_extract_valid(TCG_TYPE_I64, 0, ofs + len)) { - tcg_gen_op4ii_i64(INDEX_op_extract, ret, arg, 0, ofs + len); - tcg_gen_shri_i64(ret, ret, ofs); - return; - } - - if (tcg_op_imm_match(INDEX_op_and, TCG_TYPE_I64, mask)) { - tcg_gen_shri_i64(ret, arg, ofs); - tcg_gen_andi_i64(ret, ret, mask); - } else { - tcg_gen_shli_i64(ret, arg, 64 - len - ofs); - tcg_gen_shri_i64(ret, ret, 64 - len); - } -} - void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619832; cv=none; d=zohomail.com; s=zohoarc; b=n5yStaQyUFqMImiyGi51XGgUwmLfavDWnFEOqMaEuSA6K8Rkv5RBd+xMZwG3iWy2Ux78c/xlsuSxS90rtgck6BOnRQqLIiU5W3VIqO+uKSLFEFMDXM2+hBcBQLvNb2ZHvjVavF+a4R0/kGxUgP7LJKCtltU9h565kJnmUS3eDDU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619832; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=t8J3/En0ZYdDvmc9IcUl9D3Pl3hvNUQE3Azr3kHbDLE=; b=LUcGFYCfWJ6FZTpmHlGOw+lOo4ALWva/+DFuxUumYLdT1KWYVVrTzgOcKOJBjLsJxjEOi4Hm4Iwu+24MOwgprRVSlgKETMAO80wsDzYw2V2g3mrojhow0AkhWN3bwm2ybfkVkXSrJ1c+EpWuQIuUic5slqsFS4jyxUsBlH6qCVQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619832948348.90778105978507; Wed, 16 Sep 2026 21:37:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pI-0005yE-9h; Thu, 17 Sep 2026 00:34:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nd-0001hh-FJ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:44 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73na-0007Im-Gl for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:41 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-396ccd4f99dso359051a91.2 for ; Wed, 16 Sep 2026 21:32:38 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619557; x=1790224357; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=t8J3/En0ZYdDvmc9IcUl9D3Pl3hvNUQE3Azr3kHbDLE=; b=fmnn2nutVW1TnnT/IdirECC2Nn/l18U2dgC8nRq0ykOM2mPAFPybzCRoOYMghlxJC/ 6yceNoNTR1f4CO/dNmLtjXAhWPnEIsXq+svkVth0ncB3ii5v2AKN+Ozr58iFNhd51e5Z CvrDPRSSU3N84WoF/KcxzYamox4rSq4u8I+zSbIaeGTa6AalT63vpMNOe9yaGVD2NJyk qXxC+0c8IdzlIEIdw4XmbqGNsZFOo3DOfNCErjHRr1r+HZvlxZYuiYTlmWsxnZPNK/CT mzlSYoM8mi6K+nEtZS2MMdk2A6us4YPqsa4DXLYfR01BbB1Bo1UbizQXj9rVpWIHFWCY 2gYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619557; x=1790224357; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=t8J3/En0ZYdDvmc9IcUl9D3Pl3hvNUQE3Azr3kHbDLE=; b=GRyJlGqbgLOdKUjnwxUpWjGXsiTBlzvV4KJbogG4k0gS46ztcy1mJdWNxd6FSYoeDH QGK99gxyxo8QXiGkZ3d0zdMCrLHSi39glP6qsAPld3L9QQCkJDK1Xp91FEjgvOhCuIQJ q0RkrPWo2GaRBPvzoEplmVpjrWHXhNBLaVQgDAdza7Sndqo1ndM1ZLCh6lnLi4okR7oh UpMkLuWkMH5qcuZv1ROolicJrF+GvGOslk0pHvLjQuCcmJ5Sobzy0t60L3EtwMRXijd/ hHGzuXnOt1oIIHgI4IAPd25pz5KY6zYfyShZieEBYTnT31rsrrC+m5FZzGyNJMr0GGe2 gl1g== X-Gm-Message-State: AFuF++kWZqsn10JT5JuabAVoZsbnJWp96Sd6SJYR3XdnuLeX9dQvj8sF rcgc2yU1bfHb+d/Ud0xNxpwsV2Ocjv8F24qytwuw6fYO3BVj2O1c/AT74tE+JBvbQfxpsV4GTvl 0VPVjvtM= X-Gm-Gg: AYBFou0Owoevj/BBY1l40t6TtrW4G6JRj6O/YHR7hXjTaT6NasVKdTryBbowiSlY0er Q67F9Mwu6XAVQI4BGfIkIBQL4TP+WSA7k+WwXL0e5OrhGjqONDN0DgtNohmBb2uk8FUtx8+VL0a GuoPwYuwoGSjVboL8gbc64fNmCFivqPkYsWTXvxQuZ3XdKUL6OS5Y8e2/iMndIUCWUPVmdq9ZOg WvM7tma8DoQptmFfMYO+IhzPQI1CYtLAKXXRop7cg92YYQiqx4plen4tCaJ3cycdqzszcTtOhi/ IOVoVBxUCF9ES8pAd1+mj+5QbZUj6y0jh+3vl8Os1iOCepUNcq75GLTrjJcOM7fefxS/UC5yK8d lV0bB90jbS6+t5hiSkYSn/jMLuqoxgIqqnzVE0LI++INNsWoqE7N2uIk72OUyqhkYWm1GAlXfFB hr+iBkwVvTe6I+O52xBQOzgputIvyc7t5Y+vkvLNVzq33bcrMTIrBi2OWHKWk3WK8I3eYogn5jZ Qz6ykmGqDLSy6iDlkI= X-Received: by 2002:a17:90b:4a51:b0:39e:14db:437c with SMTP id 98e67ed59e1d1-39e1e27a33amr10810113a91.4.1789619556967; Wed, 16 Sep 2026 21:32:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 067/101] tcg: Generic expansion of tcg_gen_sextract_* Date: Wed, 16 Sep 2026 18:27:49 -1000 Message-ID: <20260917042823.542588-68-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619833815158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 121 +++++++++++------------------------ 3 files changed, 38 insertions(+), 88 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 7973738331a..ceaa4b7fe01 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -134,8 +134,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned int ofs, unsigned int len); -void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, @@ -181,8 +179,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned int ofs, unsigned int len); -void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 856338aa0d4..21a941f5458 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -43,6 +43,7 @@ DEF3(sar, TCGV, TCGV, TCGV) DEF3(sari, TCGV, TCGV, TINT) DEF4(setcond, TCGCond, TCGV, TCGV, TCGV) DEF4(setcondi, TCGCond, TCGV, TCGV, TINT) +DEF4(sextract, TCGV, TCGV, unsigned, unsigned) DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ade5d8bf835..599f21470c5 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -244,20 +244,6 @@ static void DNI tcg_gen_op4i_i64(TCGOpcode opc, TCGv_i= 64 a1, TCGv_i64 a2, tcgv_i64_arg(a3), a4); } =20 -static TCGOp * DNI tcg_gen_op4ii_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 = a2, - TCGArg a3, TCGArg a4) -{ - return tcg_gen_op4(opc, TCG_TYPE_I32, - tcgv_i32_arg(a1), tcgv_i32_arg(a2), a3, a4); -} - -static TCGOp * DNI tcg_gen_op4ii_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 = a2, - TCGArg a3, TCGArg a4) -{ - return tcg_gen_op4(opc, TCG_TYPE_I64, - tcgv_i64_arg(a1), tcgv_i64_arg(a2), a3, a4); -} - static void DNI tcg_gen_op5ii_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, TCGv_i32 a3, TCGArg a4, TCGArg a5) { @@ -1026,6 +1012,43 @@ static void gen_setcondi(TCGType type, TCGCond cond,= TCGTemp *dst, gen_setcond(type, cond, dst, src1, tcg_constant_internal(type, src2)); } =20 +static void gen_sextract(TCGType type, TCGTemp *dst, TCGTemp *src, + unsigned int ofs, unsigned int len) +{ + unsigned width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(ofs < width); + tcg_debug_assert(len > 0); + tcg_debug_assert(len <=3D width); + tcg_debug_assert(ofs + len <=3D width); + + /* Canonicalize certain special cases, even if extract is supported. = */ + if (ofs + len =3D=3D width) { + gen_sari(type, dst, src, width - len); + return; + } + + if (TCG_TARGET_sextract_valid(type, ofs, len)) { + gen_op_ttii(INDEX_op_sextract, type, dst, src, ofs, len); + return; + } + + /* Assume that sign-extension, if available, is cheaper than a shift. = */ + if (TCG_TARGET_sextract_valid(type, 0, ofs + len)) { + gen_op_ttii(INDEX_op_sextract, type, dst, src, 0, ofs + len); + gen_sari(type, dst, dst, ofs); + return; + } + if (TCG_TARGET_sextract_valid(type, 0, len)) { + gen_shri(type, dst, src, ofs); + gen_op_ttii(INDEX_op_sextract, type, dst, dst, 0, len); + return; + } + + gen_shli(type, dst, src, width - len - ofs); + gen_sari(type, dst, dst, width - len); +} + static void gen_shl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_shl, type, dst, src1, src2); @@ -1112,41 +1135,6 @@ void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 ar= g, } } =20 -void tcg_gen_sextract_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 32); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 32); - tcg_debug_assert(ofs + len <=3D 32); - - /* Canonicalize certain special cases, even if extract is supported. = */ - if (ofs + len =3D=3D 32) { - tcg_gen_sari_i32(ret, arg, 32 - len); - return; - } - - if (TCG_TARGET_sextract_valid(TCG_TYPE_I32, ofs, len)) { - tcg_gen_op4ii_i32(INDEX_op_sextract, ret, arg, ofs, len); - return; - } - - /* Assume that sign-extension, if available, is cheaper than a shift. = */ - if (TCG_TARGET_sextract_valid(TCG_TYPE_I32, 0, ofs + len)) { - tcg_gen_op4ii_i32(INDEX_op_sextract, ret, arg, 0, ofs + len); - tcg_gen_sari_i32(ret, ret, ofs); - return; - } - if (TCG_TARGET_sextract_valid(TCG_TYPE_I32, 0, len)) { - tcg_gen_shri_i32(ret, arg, ofs); - tcg_gen_op4ii_i32(INDEX_op_sextract, ret, ret, 0, len); - return; - } - - tcg_gen_shli_i32(ret, arg, 32 - len - ofs); - tcg_gen_sari_i32(ret, ret, 32 - len); -} - /* * Extract 32-bits from a 64-bit input, ah:al, starting from ofs. * Unlike tcg_gen_extract_i32 above, len is fixed at 32. @@ -1816,41 +1804,6 @@ void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 ar= g, } } =20 -void tcg_gen_sextract_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 64); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 64); - tcg_debug_assert(ofs + len <=3D 64); - - /* Canonicalize certain special cases, even if sextract is supported. = */ - if (ofs + len =3D=3D 64) { - tcg_gen_sari_i64(ret, arg, 64 - len); - return; - } - - if (TCG_TARGET_sextract_valid(TCG_TYPE_I64, ofs, len)) { - tcg_gen_op4ii_i64(INDEX_op_sextract, ret, arg, ofs, len); - return; - } - - /* Assume that sign-extension, if available, is cheaper than a shift. = */ - if (TCG_TARGET_sextract_valid(TCG_TYPE_I64, 0, ofs + len)) { - tcg_gen_op4ii_i64(INDEX_op_sextract, ret, arg, 0, ofs + len); - tcg_gen_sari_i64(ret, ret, ofs); - return; - } - if (TCG_TARGET_sextract_valid(TCG_TYPE_I64, 0, len)) { - tcg_gen_shri_i64(ret, arg, ofs); - tcg_gen_op4ii_i64(INDEX_op_sextract, ret, ret, 0, len); - return; - } - - tcg_gen_shli_i64(ret, arg, 64 - len - ofs); - tcg_gen_sari_i64(ret, ret, 64 - len); -} - /* * Extract 64 bits from a 128-bit input, ah:al, starting from ofs. * Unlike tcg_gen_extract_i64 above, len is fixed at 64. --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619899; cv=none; d=zohomail.com; s=zohoarc; b=g3m5zwwDqfu795IcMkbKpYRDmBYKAtr5d4BKlUQVPyFtHE7IaGfbe/v5h5kNT7TemuivZb6KkEnssfjMVR9h5SxiJBZBYyt4yFRh1j8z4cxMT5juc55j1sMZvis+6gcvvqYrVDh46Mv485N/O8Vlb6Lv9p8dYjmG2vX9k7XfyaA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619899; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=mx75hy8kI5w5KykJneBAF36gtqsh3N+/p4wAKje26Wg=; b=ddBp1+om7catJa5kcxTTAw9B5S9b73e/T94uBR02TK9lkRH0TGUJC7yQ2PSnB2K9XNHG4igVv04el3uQEZ8gBIjZsh9EV/GKzzO6PAKf/vASJvrPZUTkoH0q1pAd8bMxY9uHkFEAprYfbizpIqNP4prhg5qg1Uhger/mffhT0ts= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619899661519.6553311525544; Wed, 16 Sep 2026 21:38:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ns-0002fV-0C; Thu, 17 Sep 2026 00:32:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nd-0001hg-DM for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:44 -0400 Received: from mail-oi2-x10.google.com ([2607:f8b0:4864:32::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nb-0007Iu-54 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:41 -0400 Received: by mail-oi2-x10.google.com with SMTP id 46e09a7af769-7f4f0d37f94so273669a34.0 for ; Wed, 16 Sep 2026 21:32:38 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619558; x=1790224358; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=mx75hy8kI5w5KykJneBAF36gtqsh3N+/p4wAKje26Wg=; b=ld7pZ1cm4lMVZmhqEjB+QQ7HakMn3MFe0E/EmgpBkwldxKwPegZOILwZwUXNQIafAC p8WiSFXXMBaw1TvlC57++7bzXGSejlHgcaGYC9p86n4iNG6zOVMx/InSAwTY4OyLnyru iw05Vu223+deSTfmPyKxMExoGJrtO/oURLIK14LnYigf4/3CzZEr9UbRs2M8Aznna4pf uCzSTrtSidv4BzG9lG+T/2bq+AEBcvnsj8pffFtmTipXepI2RhLzxhq8t3v9jHoYkNQW GW5WuplCCdeYKU/jWDI8R9PmA/PPgM/zY9r9ytBHy/8kzfSDoHYofbUotUt3ttSGn5nM ZW+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619558; x=1790224358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=mx75hy8kI5w5KykJneBAF36gtqsh3N+/p4wAKje26Wg=; b=CMLOOXsmpe9Q1gDJ77SNuqE/8hqg+LtybVKHarJHGLgs0jZJN9Pv7oSAzENIE8sTml xlP7M03K1tWF8EgVyKwVKzrwMdPr250l/8NShTuzQBYXEXS2SQKpTW6ZXV1l3Smai1zG QY0vf1+Q1yXPHnfv7WXWNXpjsaGTGnUiLo1sgFR1LNieAodh+C8bq6zvmIlPwPdrjWHI gOTIHdoPGUOSIQ3CbL//As7spVaK2AFiZ8OloAzwvZEawzAVtSRUj+9dV9K6OdSHZLbu dajumafE9BSCuHuxmlDp12B739KhqT5yMDoHkmsjuCbQ5HS9vFmx1rnNycIqXrjcyUQa hOXQ== X-Gm-Message-State: AFuF++n0GVT3KHLsCL0VP9Z78tqr8iTbKlG+bogBQH1WA3sq4rgd5RsQ 32s/vl/GB5ANyDTcvPujztoYr2bokKxCBlSCA75Ajz5HypydPnniYm5AnRGsfdlGOgGsrObo+s8 hj89iB1I= X-Gm-Gg: AYBFou211j8dud4uBewU7AFze0jmi100dxAgK1iwwcUVnWwgjhnI+DQNO/kOVrsAatA u2XdEy6v0aqCTOXGg0pBoz5itBo2deNvXAjunJ/3+Nsz97fXkhgo42MwS1si30Vx3xG/bQJaI3e hQxJQhsY5U4HJklhaGC8Ozd6xKQ2z43I/95iBeyF7ZqXDCvpNzUwcH4VliqSZWOk5FPc5JX0O/1 9l2rIWKJY7fBTEHeAam9Jq3BJ8lPSXzgaYe44t+bMwPWcCeBcXOkDWO1+HIitok+ZOw8Rk1EADE CEg2ZQUpD93qqgWTOgsIvP2VwbjVt+NK5NnwJrGdUmBowyqsA/CyHY+05/T8aVkNA1SyEvV6XRH fMfR/+9dLAOFNqcNjUes0pyIWwMsk1ZOSb+Hjrvw8JrvnU51V34VQB3oV3qbAGQq5FNZwhQkwvZ KpfTbgXQqa+T+LHGl83yDU+Gc9CoHDcnvsI0yIlp4/jtTJ/V7tF8YDu5cQwzFWTQ8qEBX3eWb+7 j0TEiQ= X-Received: by 2002:a05:6820:614:b0:6bd:fbe8:fb95 with SMTP id 006d021491bc7-6c7d46e65f3mr5559434eaf.60.1789619557992; Wed, 16 Sep 2026 21:32:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 068/101] tcg: Generic expansion of tcg_gen_deposit_z_* Date: Wed, 16 Sep 2026 18:27:50 -1000 Message-ID: <20260917042823.542588-69-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:32::10; envelope-from=richard.henderson@linaro.org; helo=mail-oi2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619900042158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 70 +++++++++++------------------------- 3 files changed, 21 insertions(+), 54 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index ceaa4b7fe01..4838e06f1d4 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,8 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len); void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, unsigned int ofs); void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, @@ -177,8 +175,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len); void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, unsigned int ofs); void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 21a941f5458..3b44db51f55 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -14,6 +14,7 @@ DEF2(ctpop, TCGV, TCGV) DEF3(ctz, TCGV, TCGV, TCGV) DEF3(ctzi, TCGV, TCGV, TINT) DEF5(deposit, TCGV, TCGV, TCGV, unsigned, unsigned) +DEF4(deposit_z, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 599f21470c5..fdcff596a03 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -244,20 +244,6 @@ static void DNI tcg_gen_op4i_i64(TCGOpcode opc, TCGv_i= 64 a1, TCGv_i64 a2, tcgv_i64_arg(a3), a4); } =20 -static void DNI tcg_gen_op5ii_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, - TCGv_i32 a3, TCGArg a4, TCGArg a5) -{ - tcg_gen_op5(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2), - tcgv_i32_arg(a3), a4, a5); -} - -static void DNI tcg_gen_op5ii_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, - TCGv_i64 a3, TCGArg a4, TCGArg a5) -{ - tcg_gen_op5(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), - tcgv_i64_arg(a3), a4, a5); -} - /* Generic ops. */ =20 void gen_set_label(TCGLabel *l) @@ -634,6 +620,26 @@ static void gen_deposit(TCGType type, TCGTemp *dst, TC= GTemp *src1, } } =20 +static void gen_deposit_z(TCGType type, TCGTemp *dst, TCGTemp *src, + unsigned int ofs, unsigned int len) +{ + unsigned width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(ofs < width); + tcg_debug_assert(len > 0); + tcg_debug_assert(len <=3D width); + tcg_debug_assert(ofs + len <=3D width); + + if (ofs + len =3D=3D width) { + gen_shli(type, dst, src, ofs); + } else if (ofs =3D=3D 0) { + gen_extract(type, dst, src, 0, len); + } else { + TCGTemp *zero =3D tcg_constant_internal(type, 0); + gen_op_tttii(INDEX_op_deposit, type, dst, zero, src, ofs, len); + } +} + static void gen_discard(TCGType type, TCGTemp *src) { tcg_gen_op1(INDEX_op_discard, type, temp_arg(src)); @@ -1117,24 +1123,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_deposit_z_i32(TCGv_i32 ret, TCGv_i32 arg, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 32); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 32); - tcg_debug_assert(ofs + len <=3D 32); - - if (ofs + len =3D=3D 32) { - tcg_gen_shli_i32(ret, arg, ofs); - } else if (ofs =3D=3D 0) { - tcg_gen_extract_i32(ret, arg, 0, len); - } else { - TCGv_i32 zero =3D tcg_constant_i32(0); - tcg_gen_op5ii_i32(INDEX_op_deposit, ret, zero, arg, ofs, len); - } -} - /* * Extract 32-bits from a 64-bit input, ah:al, starting from ofs. * Unlike tcg_gen_extract_i32 above, len is fixed at 32. @@ -1786,24 +1774,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_deposit_z_i64(TCGv_i64 ret, TCGv_i64 arg, - unsigned int ofs, unsigned int len) -{ - tcg_debug_assert(ofs < 64); - tcg_debug_assert(len > 0); - tcg_debug_assert(len <=3D 64); - tcg_debug_assert(ofs + len <=3D 64); - - if (ofs + len =3D=3D 64) { - tcg_gen_shli_i64(ret, arg, ofs); - } else if (ofs =3D=3D 0) { - tcg_gen_andi_i64(ret, arg, (1ull << len) - 1); - } else { - TCGv_i64 zero =3D tcg_constant_i64(0); - tcg_gen_op5ii_i64(INDEX_op_deposit, ret, zero, arg, ofs, len); - } -} - /* * Extract 64 bits from a 128-bit input, ah:al, starting from ofs. * Unlike tcg_gen_extract_i64 above, len is fixed at 64. --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619919; cv=none; d=zohomail.com; s=zohoarc; b=ep6UF2KHjKBKwZRE9Ufto06OsQcn2nof1DKQACiBgKA8lM+VLp+GmDVvZ93Xk6asuRvOcjx2/9aLB5DFUE9RXLYuk1ThNefgXfJZphXwLc2jJFJ7gRotpDgDUoEWAvGcLujzT7jk7z373+MMj+a2UQw3Jc+2Wa4aQUv6QRG3O/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619919; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=XztffOjXf9LxP/DcqZAETnR5D5sXnPM5bhymA4lx6uk=; b=Jm6rRGZ9DL99hNECk3SRX5LY8T73JzDHNN2uUuS9qVXl6dqE1wl1aa7yPZ5R4yWvMxDgNmYblSWF2GY6aFyJu/cel/Px0wkCjocCuly3R0p5kThQsXBdVSmIykwVMjRvwwRKLueHZDjjcETsLWo+v/HLZLU2CafWmvjK39lky5o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619919166455.77334979353554; Wed, 16 Sep 2026 21:38:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pI-00060s-K4; Thu, 17 Sep 2026 00:34:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ne-0001hi-1k for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:44 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nc-0007J0-E0 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:41 -0400 Received: by mail-pz2-x0e.google.com with SMTP id d2e1a72fcca58-85469b35601so248990b3a.3 for ; Wed, 16 Sep 2026 21:32:40 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619559; x=1790224359; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=XztffOjXf9LxP/DcqZAETnR5D5sXnPM5bhymA4lx6uk=; b=gphYL4qw8gaip70nt6PJy7JrU30MQQmlHxM6I/7bjOjYagd9Ey6AWZfsOv/9jpf1Si Q0D8AqsStndS6RjStt3OJeDt+VYVqWqWFsxCsbrR/b/NyKwDcxnqmR5RXqtFhSb3/cUe q969svo2gnh8gltGZF1Jf6Aoc5QNgcRoBhXiTsTnsdlHJ6wP3oo+kyBTSK4yC+08Q+57 NPTBM3tIW8LbG4XN13F7Oiasx0NBuJwyIemY7ElvI/eo6G31zlwp4L/k0Bp6m2MyklOS /QqkSv4YTA8FP/BSOrblUuIAC91x+FE54X8rA++q000NBit37sSPtA1ZqhggGi+4XhJa oilg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619559; x=1790224359; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=XztffOjXf9LxP/DcqZAETnR5D5sXnPM5bhymA4lx6uk=; b=JxmS/BIKWWA8PoFrHy4GrAgrQ0pU/gll4zkfeQytnNvoQMBXVEZyO99EAh3GOSs/Ks kpSkDvnSpTUw34C7jB1ybsV5VK06IONdgYbFe9OAw/hWnfoNdEehq7tWchABu9bACvwF wdtiiriagNG1HN4AtHXHeAYxBUq138w9WH1zf8KIRZOFNskXiDdKNem3WSzCCBtc/3E1 S6vo70OrHi66UCzsVjN3m/7jo8+p4Y4kyOFLXqhMqMt3kZbqFF9oT+g05PyTSzpXGONz k0fdN3P7LiEfFWDZhr/IA/+3mnmyPPRuFIbpc9/bH2i2/BmCTpwq7ZLSN96FVREeXg9m AxhQ== X-Gm-Message-State: AFuF++mfH5xoZLaBfsGSHANG/1lRNehodZL0ZylARFIuAiMQDHtLyZHY iU6FMYW9Zhj7W22lBrAnsEpqSnxnZ58g7pDf6BLe9v3fskNmSAUjs3e4Kex2yM1E1wbvnUtRcGl pZnbTsGs= X-Gm-Gg: AYBFou2TQUVL0y4LAco9AuhUodhLxvC81TIiv6qml3SS2hwTPW7DCbpMt4bg7M8vVao gsi60ZeejQGdC6ux0YWrwL/Xm96KlWp/06EqknPHwppOvH1zfNvRk7U7PDNiL5mU3UPeJLVI72Z 9KxOQ0aRdTWJYAN3DcCDwLYc+mob2zBpAsWYWtn3vBNjtxxYgKVsdbKXO+c6vde+ROMmIFXBZfc 2hB3vSa90YDcIHk+Bn2bX5d82XwbHhd2IOwqvO5PneaGcd7DR9vQErunGLoareA4cCz9SWXSnnp aopcWYfQInpsAbIE3z+3RPvx2uh22dF4a7h5OhpfWkwcz+mbsOVGDOS7+7MM2xQ8/e8AhmySRwt KX/qUFw5fZA0uL4Qm3EO9IcFnTWOOWZXsfKvOgu2mf9Hg+Ncf5dXgSw/w3N8Isk3cUGngNs43oQ 5O+AvWoxGN6WypEOqKLOWYbXPrxlp7LxkbfGo9xfCGLL8NoH8kKfnLJPrUVcrtuAHItBF8s57yG RymsPA= X-Received: by 2002:a05:6a20:2586:b0:3d3:ad3c:49a6 with SMTP id adf61e73a8af0-3dd5f73ef7bmr13043919637.20.1789619558935; Wed, 16 Sep 2026 21:32:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 069/101] tcg: Generic expansion of tcg_gen_ext8s_* Date: Wed, 16 Sep 2026 18:27:51 -1000 Message-ID: <20260917042823.542588-70-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619920124158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 4838e06f1d4..cae95b3d42a 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -143,7 +143,6 @@ void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_ext8s_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext8u_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -187,7 +186,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, = TCGv_i64 *b); void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); -void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext8u_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 3b44db51f55..afb8bac515b 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -18,6 +18,7 @@ DEF4(deposit_z, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) +DEF2(ext8s, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index fdcff596a03..ead551edf42 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -684,6 +684,11 @@ static void gen_eqv(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_ext8s(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + gen_sextract(type, dst, src, 0, 8); +} + static void gen_extract(TCGType type, TCGTemp *dst, TCGTemp *src, unsigned int ofs, unsigned int len) { @@ -1269,11 +1274,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TC= Gv_i32 arg1, TCGv_i32 arg2) tcg_temp_free_i64(t1); } =20 -void tcg_gen_ext8s_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - tcg_gen_sextract_i32(ret, arg, 0, 8); -} - void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg) { tcg_gen_sextract_i32(ret, arg, 0, 16); @@ -1575,11 +1575,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_ext8s_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - tcg_gen_sextract_i64(ret, arg, 0, 8); -} - void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 16); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619682; cv=none; d=zohomail.com; s=zohoarc; b=TxmESDsjVRUJIts2qsqY8DtEstfPfviLWJSvyJqac+bf0CJbjma91bBlYX38YRf8J+sz/XtRFgEWX6E7LeABx1jSy66FdIdoMG88ekfLQyeU5cTUj9oK5DDF2sxqiIwnwPdPObAaWYT0PBGj1usKCwB3wH18nQzanwOgQ+UWER8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619682; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=bSuOS95+7HSBwL1ZUhYKJeVJRpZFaCsLp6ZUzmv6zxs=; b=L0JxJP0K1jVcS5sa0Bccm3CBjETUwCwOGKDBleWPaPLzrJ7t8917qoGtCFTt7FM1m+wBgw1TfMO81S7eNnRU7aLyGiyFTjxmYz3kzijqM1KV3J+iiY/R5DLU9scNpiNu3hu4jBe7k4vcg7AAa1noQCmboDAypiOiwBOXPO1G2d8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619682015339.42714290586787; Wed, 16 Sep 2026 21:34:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73p8-0005Yn-4R; Thu, 17 Sep 2026 00:34:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nf-0001jA-4w for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:44 -0400 Received: from mail-oo2-x0d.google.com ([2607:f8b0:4864:31::d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nd-0007JF-5n for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:42 -0400 Received: by mail-oo2-x0d.google.com with SMTP id 006d021491bc7-6b4bff33ceaso202022eaf.0 for ; Wed, 16 Sep 2026 21:32:40 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619560; x=1790224360; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=bSuOS95+7HSBwL1ZUhYKJeVJRpZFaCsLp6ZUzmv6zxs=; b=B6sCxOVkBgoyl5WPdQUiPA2hKmTEgeCnVtyYqBj1Aj2a6b1+ACOS4XLFstpg/L3FQl hFtONtK9sr3yGYpJLKxdul3FzLLrqBXkGIsD+ztchWSzZ0+w/fjLswmXKHuSRV7N2SSS Pco2uLlUkm6M2gLEyBwevju051PzFMoNzeZZZ/TkLForEE3Jqnc2w7pOXXbQa74B2Sc3 CHGlIkqh9E2XLdk2W/5MZX4nb0yuSc/sM+j+h4Mmk5yx4NycL/lQW9zOIScBBdjm2KQH pDcXxpGpuIcs36VKn6ui6eXADr7aNw1kUDgkuJxcNzhN04Q5kjpR0NPPdizDO8eCwS7r 1KdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619560; x=1790224360; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=bSuOS95+7HSBwL1ZUhYKJeVJRpZFaCsLp6ZUzmv6zxs=; b=CB8MbpwPgmIl/qTq5P1Q2d2AeNeKbkStXBuo+IFXZG1lIdLaXZiLeI9/JwtHeS0YVe /yiyYWkGjQ5wc1Zvnn3qC83+3/bldRoIpB+CRX7fkKEY4W9JNnEdujkgbUoTOn7WKEtp bw6F3ew9Ato1XdsTM7ZiHy1+3u/11yGlTSFO0xTBLW3Q/blk5uX6474Q3zUgktpinjaU r0n1uTEq0nNdgQFASk2kJyuVjzvtht0vHkZBozYCD1XB1EHSvUoYi90BMAT8oJ1lyub8 gCi8Mhb4YhU01KZHzwbw4OIFWSuVRYb4dvL2JaWf2p0tomw05C9rhRaGiftmkOHQC1yR X3XA== X-Gm-Message-State: AFuF++mH3+T2wQZG4uKcHb0IyUsyQ9O/+3Zd+iEgqUC91Azn5V+2SK9Q CJ2K94I62EuHjnFi4ZVV6BHAn1PolLCp6s2g6NohmpJwKWnK0gBgWFf0FsVmo3umns68E/+Ix+k eTP19Bdk= X-Gm-Gg: AYBFou1B/OpBBfSgsz+Dx4lgPUTCMWNObwLdGlhOVeX/yIZ5OzfNtO1JYmqN77crvkm 5jwBc5JugXHL518tU9ruE3vnOtnZDd+voXHJziumrFC1nX6ko7pfRTVnpCk7wH1C6qcYaF6BaTh mjYGdF/sUcyZSyuuOMgaB2gwEmfw+Wgq2PLHC4iTfUDGW9GjjsSnGxoJSkFrBPoYCYtQOt9CKE2 a7Z8dqDCTrQr0+u3IHG+wUW47br3G9wJj9HuwMeepVYlwz+79JdHTHm4iGQgOUmbCCqix6JLImh q5O6vBlpAzwu7dzJk7mHjzcutpbKY6DXmlh9iRCT07xmOHJsYGP8o63vlx9nnwTI5dZI2b8tRLJ l3/U/HyDr2y7y3CbrA1TT/OMb8kqltQGLbeKrveWtP9Wi5aUgQU3ioNIbC4+zCWalZ5EuSl+hvd KVreIlb5FgyUiy9iuit+yk1C2As6VQ1clp7RTFSadyS7nRuLPEtacM1NlYMjg7YGJ/KnjUQXlS5 jEJk5c= X-Received: by 2002:a05:6820:f09:b0:6b7:46fc:1cd with SMTP id 006d021491bc7-6c7d36fb925mr4600531eaf.44.1789619559959; Wed, 16 Sep 2026 21:32:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 070/101] tcg: Generic expansion of tcg_gen_ext8u_* Date: Wed, 16 Sep 2026 18:27:52 -1000 Message-ID: <20260917042823.542588-71-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::d; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x0d.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619683222158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index cae95b3d42a..cabcd394ab5 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -144,7 +144,6 @@ void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i= 32 arg1, TCGv_i32 arg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_ext8u_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext_i32(TCGv_i32 ret, TCGv_i32 val, MemOp opc); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); @@ -188,7 +187,6 @@ void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i= 64 arg1, TCGv_i64 arg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ext8u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext16u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext_i64(TCGv_i64 ret, TCGv_i64 val, MemOp opc); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index afb8bac515b..80807eac2b4 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -19,6 +19,7 @@ DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) DEF2(ext8s, TCGV, TCGV) +DEF2(ext8u, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ead551edf42..c7fbe825ba3 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -689,6 +689,11 @@ static void gen_ext8s(TCGType type, TCGTemp *dst, TCGT= emp *src) gen_sextract(type, dst, src, 0, 8); } =20 +static void gen_ext8u(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + gen_extract(type, dst, src, 0, 8); +} + static void gen_extract(TCGType type, TCGTemp *dst, TCGTemp *src, unsigned int ofs, unsigned int len) { @@ -1279,11 +1284,6 @@ void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg) tcg_gen_sextract_i32(ret, arg, 0, 16); } =20 -void tcg_gen_ext8u_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - tcg_gen_extract_i32(ret, arg, 0, 8); -} - void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg) { tcg_gen_extract_i32(ret, arg, 0, 16); @@ -1585,11 +1585,6 @@ void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg) tcg_gen_sextract_i64(ret, arg, 0, 32); } =20 -void tcg_gen_ext8u_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - tcg_gen_extract_i64(ret, arg, 0, 8); -} - void tcg_gen_ext16u_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_extract_i64(ret, arg, 0, 16); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619676; cv=none; d=zohomail.com; s=zohoarc; b=ZgCFNgGgQwaB1LOYyLayGKP4zOg1stsBcnyhCYjU6hiqaVZg3JSwmXnaUGLS7iHWBWybj5WNqZVqzgOQAsHCBvMu5keniGXlKjSjZVy8LSsKQBKj5fZEdAPs32wO/jB/8CE8cRUHESQPXqW36hymR4XH87tIe04YB0MT4O4pj28= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619676; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=VG5ZghFl8vheya4PpdzrDgRH0yHUaUc91O4goilo214=; b=Ji195AXo/JoKjU5X4DXD76nQ6g4s7DZELb4qk4U7lHdAKYza2eEEmGAH6NvBdbNRe7m6QIUSG9Q/x3VMMlEbeVNBADQQcc9ld7Mmek8O/a0u77QVNxauiQ5/8HsWW4GNk9K3NqbwgUNduVxQ9X/hW6aEDVGos5SJ8HRrz3SYtbM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619676461452.7746942979535; Wed, 16 Sep 2026 21:34:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73p7-0005Vq-4H; Thu, 17 Sep 2026 00:34:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ng-0001mQ-HD for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:46 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ne-0007JW-DI for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:44 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cebad4adso270525a12.1 for ; Wed, 16 Sep 2026 21:32:41 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619561; x=1790224361; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=VG5ZghFl8vheya4PpdzrDgRH0yHUaUc91O4goilo214=; b=skN7B830w974I6FwdS1tks0SA2NED/ogIfFBSG+WCNnRxT/Kz5liKm21tpMpP30fOn wdzjCu8Y2tckXUZEPTOrhNnueViS67S/I5vuZ2U4l7iZxA1YRQexZhUlaWV8pywp9lkg aeXpFRk2qoFEGytniewBBcs1sToEm/SFlVG3oIZfsU9YCVpAjfhFJdGA5sJo44qxncBh 5uCv2+Jf2adCMlST+wTUNkqtAi5FXiVWW7atYcKiRRrWZkMXGjF21hMp35Kzx49uIp0o 0gpF6BNt9jkoFnZzYLeH+9LPjunJdsxjR5RR7mAa+fErK9gdk20QSsL97tRbxqKxa/L+ +KEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619561; x=1790224361; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=VG5ZghFl8vheya4PpdzrDgRH0yHUaUc91O4goilo214=; b=S5Xszcu7LXMnCpAvMPEzD9n8eqA9SBzddP9VQO6Brt5Fbx3nr2WfLJCinMy1gb0e8w +9DWqFOzlgs88FMVhcvOwqAMBOjCx831nQOngjUgz6HECm+II45wrf4EPgi/HPykuzvW 6LBM/sSdR38VGp1XrSN/MGgIP6bbxxncRBJgibRvZPiSTyDZ7+uYXcHrY1Ip8PEbQuGT R8hwQPx104f3bfEan7UTxVlIcznugtc6JZcUWXYWw+WgmYI2CxEar7ltFx5t1xLkWZhv dgXbfmCK08R4KYJWNfjgsi92SQ/+atAE7km60IBrj8l4qUky1wcYA15pl9wqspKYLygc X2sg== X-Gm-Message-State: AFuF++na4Y276+KBtko8JX8GAeo2tEuWYb5AqIjnyjOWwCDCczq0ucxL fcnl/8Kjf3akNqMszsycDQ8s0sKPfA1oHj9U0x4IGPBogxGUTynhahlEiO4OoILn4HAhoDLOktk ZJEXn X-Gm-Gg: AYBFou3NhXG+C3/ED/+3uF6oH3EPYl2l3Ih8yCZRbSHJcyLCciBwKBa/c1a52DL8nFu jnJ95YWsBHmC+Th+NQQV1ht9pZ1D6VYO7nMfrvEX75NCnumPlVnclGOMwK35VJSDa/wQQUE1gyT nPOwYOEmp50jQTd5yp59br/x1Qi6stMGvyy+aDbpQDcEfMGlalJ4Zfe/TkN9naGLd0ttfZr6qde JuLVNyfU52aiiECDdBaZTo2JsMCb2bwpcGNY8ULiKLCzl6zcuKRVDVEo43JpZam8zK9k8lEq4FA Mh8TEgU3ub8mhCZkfnIAXUJm4rBpc8iddA2MysAJeJrldCWhqclP0+c9vwU/vH7oBnK1Ij4q0b4 N5DRd62ZOOlAwhIdfox4v6V5/CjOxGcG7DQWl5q7R4IclTqGBONrHyOsbyyUDQlGNfs280hYkOG HMSVxQjUHIFku9qPzui4VMXvPvOaS5fUJ3sy0gQj/01mHjOKZapg0XMqwzs5rmSfAlC9/bpUMuf vuVkLo= X-Received: by 2002:a17:90b:390f:b0:39e:1c4e:5473 with SMTP id 98e67ed59e1d1-39e1e47ab6dmr14449077a91.16.1789619560892; Wed, 16 Sep 2026 21:32:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 071/101] tcg: Generic expansion of tcg_gen_ext16s_* Date: Wed, 16 Sep 2026 18:27:53 -1000 Message-ID: <20260917042823.542588-72-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619677161158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index cabcd394ab5..8f4d1dd633c 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -143,7 +143,6 @@ void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext_i32(TCGv_i32 ret, TCGv_i32 val, MemOp opc); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); @@ -185,7 +184,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, = TCGv_i64 *b); void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); -void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext16u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 80807eac2b4..cb8436e3b39 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -20,6 +20,7 @@ DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) DEF2(ext8s, TCGV, TCGV) DEF2(ext8u, TCGV, TCGV) +DEF2(ext16s, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index c7fbe825ba3..15e0f697535 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -694,6 +694,11 @@ static void gen_ext8u(TCGType type, TCGTemp *dst, TCGT= emp *src) gen_extract(type, dst, src, 0, 8); } =20 +static void gen_ext16s(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + gen_sextract(type, dst, src, 0, 16); +} + static void gen_extract(TCGType type, TCGTemp *dst, TCGTemp *src, unsigned int ofs, unsigned int len) { @@ -1279,11 +1284,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TC= Gv_i32 arg1, TCGv_i32 arg2) tcg_temp_free_i64(t1); } =20 -void tcg_gen_ext16s_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - tcg_gen_sextract_i32(ret, arg, 0, 16); -} - void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg) { tcg_gen_extract_i32(ret, arg, 0, 16); @@ -1575,11 +1575,6 @@ void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tc= g_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); } =20 -void tcg_gen_ext16s_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - tcg_gen_sextract_i64(ret, arg, 0, 16); -} - void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 32); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619812; cv=none; d=zohomail.com; s=zohoarc; b=Gt2dhZhW3COV453zb7hwzObiuFBoTUk0Lgz2zczhybl9UwQVx4fHAxY/NAWtsaxr3Uhi6W0N4IpHHKpohVJ5cs3YXlURYLm1RH5n1+YAOM6Cb8eSlkZHaQJFfytWwaP0tLH4W3TtiOqMf9+LfbPFbZmK/SFgH38ODNefuZwqcF0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619812; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=AlqQreYfm1p2NgbZMu8uKGWPbt4K8yjuaW2/8lFTj/Y=; b=VlToC2ExO8geHRJUp6NajenPdTRQpOrGPIjCbXdM8LcvN4+jiOVBJHj/dm2ecJpbbUbea89L/Krp1Sau5yd8GaPqaq8iP1k8AM8KtQ1tyE2Aq146KZ6O/v2l1Nb+5tLx7tPamtZe7AJLcJ5IjajHfyaDrKKX4wg85pp9AbWroSs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619812382998.2993219636508; Wed, 16 Sep 2026 21:36:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pG-0005q5-4B; Thu, 17 Sep 2026 00:34:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ni-0001qv-Hx for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:48 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ng-0007Ji-8d for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:45 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-395cf2535acso396811a91.1 for ; Wed, 16 Sep 2026 21:32:43 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619562; x=1790224362; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=AlqQreYfm1p2NgbZMu8uKGWPbt4K8yjuaW2/8lFTj/Y=; b=Yel6itAzBtrxupsffYwVVGngiWiuo4RDvZhfcjC+fwZ3oI9kvvt/kbO+Pdo2h8sh8c d/s82E3oOMRs3UKDqcE0iTz0AIs8Igi9WAriyaTx6Lxr0a4OtBfkLXGjUPktN/enXBI6 Bv6hCAlXogsy84d3j982S6j7Re8/qTeHbkbZMpr/6Bj+RUmKULN2Rept5/4Q7BWZlpth 1C0m3dCc8v6ErQM8a/YlNsbVffPwMDfPjpUIq11rxbGEPN9oF4XKzJtiWnvDdqtOu9PQ XVMCAf3brrgf1CYcvot4yijISxRfcU4iKqPpqb5tbFcKoZPWnVLDs7gmG4BmyvNBWE1b XPSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619562; x=1790224362; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=AlqQreYfm1p2NgbZMu8uKGWPbt4K8yjuaW2/8lFTj/Y=; b=O6WysNUgYY2ATK2Bkxy3MWYM0RGitl8sIxX2zpTeOBADTSS2qezhdb9bklipGkYYk2 K8FmXDhE/sByCEio9bmWvJf6PZ9QUJAgS3Fl/stT+5wHpWlIVQKp9lcE7RQnEP8wMZEs hEcrQ/FKVQAyDPajHrafVIs1ytqC3Wb2bUepAEDKXXOMzFpBFzTXijnk9FoloPSEtw7M S7QTqu8diYlAlcoMAS+yMMQ2Qe8JCUVVeODl4zEOklZBLyqr9/oRQcp/nvu812ANyT2o aRGmD75/Lf4700RbsXLqQDWbcKzKq3BEhbVn3L6uyiXalDB2P7iNxqtS/FR6MSrtefd/ ZN4g== X-Gm-Message-State: AFuF++m3+i02PNmX5jE8LLN4n8dS7mc/lTJd0MJmv8IF/0BAal0+HgLw Dwa6nEC10ogAuN0HQjDUfiKElGYpkFFS2wroip+BElpO4Cy101kC8xpTqLMBmlHb4uLkdSMnVef Xh7viWbc= X-Gm-Gg: AYBFou2MrhYsH673liDg3lN25I7G/21qwNUariIVI97QyCq1XCfnf81u7s3AOpfQ2u9 7ivWF+j78okpTSHyOqixiY3gLZWS2gdebkN8wfhL6y3btXRvYql21A/NqN/EKR+8Pmohsg1xMAw XOHcnD2GCxO/RY8eoyyZZ7pcqmK6f0MT6qWp14gLNWQ0Cf8uBmxYwt/4KX0+/qP2nIHV4GAOs8C WC7gwb9wFK7QGQSmAuvNA9UtRuVuBS+zRLnYkjhVbs8dCW62E+eRUnVPPfxYnG+m6JVZRTQscxh 3xKrnRRyqflQpeeGSIhRjbSaktPY9YiNNnnCeANOpdki/1H44vriGX6ywFbzLZMLeTMAwO7EouD vpIRWItEbMXSy6cnrQ0hhoWU882Gs7npjjzV86Hk5/rCgJWOt4xyhkVQ3kSo6zqOVvzfQFFonuB ocS0SU5Ey0vmLwI4cG9YbjGZGHp8WzgS/exDPAMhxuzq4FbkLuzPYv341vO2WvmbpEoraT/L48Z OARofZSijYWqM+QnA== X-Received: by 2002:a17:90b:2b47:b0:39e:888:3841 with SMTP id 98e67ed59e1d1-39e36106e9amr3407087a91.16.1789619561893; Wed, 16 Sep 2026 21:32:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 072/101] tcg: Generic expansion of tcg_gen_ext16u_* Date: Wed, 16 Sep 2026 18:27:54 -1000 Message-ID: <20260917042823.542588-73-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619813755158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 8f4d1dd633c..3d01609810a 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -143,7 +143,6 @@ void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ext_i32(TCGv_i32 ret, TCGv_i32 val, MemOp opc); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -185,7 +184,6 @@ void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i= 64 arg1, TCGv_i64 arg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ext16u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext_i64(TCGv_i64 ret, TCGv_i64 val, MemOp opc); void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index cb8436e3b39..dfad7288bb4 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -21,6 +21,7 @@ DEF3(divu, TCGV, TCGV, TCGV) DEF2(ext8s, TCGV, TCGV) DEF2(ext8u, TCGV, TCGV) DEF2(ext16s, TCGV, TCGV) +DEF2(ext16u, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 15e0f697535..31122a5950d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -699,6 +699,11 @@ static void gen_ext16s(TCGType type, TCGTemp *dst, TCG= Temp *src) gen_sextract(type, dst, src, 0, 16); } =20 +static void gen_ext16u(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + gen_extract(type, dst, src, 0, 16); +} + static void gen_extract(TCGType type, TCGTemp *dst, TCGTemp *src, unsigned int ofs, unsigned int len) { @@ -1284,11 +1289,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TC= Gv_i32 arg1, TCGv_i32 arg2) tcg_temp_free_i64(t1); } =20 -void tcg_gen_ext16u_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - tcg_gen_extract_i32(ret, arg, 0, 16); -} - /* * Internal helper for bit and byte reversal. * Given a repeating matched block of 1's and 0's, swap the bits within @@ -1580,11 +1580,6 @@ void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg) tcg_gen_sextract_i64(ret, arg, 0, 32); } =20 -void tcg_gen_ext16u_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - tcg_gen_extract_i64(ret, arg, 0, 16); -} - void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_extract_i64(ret, arg, 0, 32); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619756; cv=none; d=zohomail.com; s=zohoarc; b=Z/JRDHFDcpTr11PSvZN8fJclYVympRoh2CaXZel19NCKIv1fnVk1gmpQqm0NWlPVP7yDWUVf9/7jNEOJ7nJrnHvdzkQ9MSzE55mitaJw4CKJxocpmvOZwG99AOUHgL56mSieVg3OG3enUd3gicRkKBG/m7Nf3a2AwIzVMMT+S3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619756; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=GMDEws37EjR6tKrxev+50mHmkCwPdCjk+P2bgnPStRU=; b=A6PMlXDlEE05os0cUI5ceBRUZ+93Z04ak3u1/RFq7MaKw76TgT/ZAx06F4RrOusSrJ0WFQuP5iqoyr1v0IfutNkVwR8TZfseILfx4sGcD5AWjyxzbWtNyZDVUXB8Zp8qTS3qW71sgszyy4WJbCJLdWwkDT/nMqqvWQUwDzuIwUA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619756541406.8393555197639; Wed, 16 Sep 2026 21:35:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pL-0006Mr-JO; Thu, 17 Sep 2026 00:34:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ni-0001qu-I2 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:48 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ng-0007Js-Ap for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:45 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cea48edcso284702a12.2 for ; Wed, 16 Sep 2026 21:32:43 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619563; x=1790224363; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=GMDEws37EjR6tKrxev+50mHmkCwPdCjk+P2bgnPStRU=; b=kZ+biLytEIrIxdBX9UBfPvnUz96bsQ/TXp1hiBGK4+H/u6qn4BSzENjew3hL2vxdsw /lHBp4LrRUhUw1PYWv3dsifyaTcaH7GLEMGsbw6sYMbqR/G8fuYqBuD9fOq9iJkn+cQ7 XCHrH4aicGsxCPjPx3rqQKjpEzPTO3GxsoyrgsZX0rcJUyJqFe9y8q9JTtn+gCuAlLB3 /H0ijRVEfer5k/ldh4YJ1CCLpzh008HP0qzj7zVcIda/yIu7tCprQv79t+ty2tYNCe4j +GDAp7Qh1fclqa6rpYUXnCsWm9LOKo6Yf5yGn2IerP4A09SbBubRCi6ejG3dxQqI8EAB QruA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619563; x=1790224363; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=GMDEws37EjR6tKrxev+50mHmkCwPdCjk+P2bgnPStRU=; b=lDE4g5gK7eNxAnXWXzfZivhzulP1mYidd9BdMan80L3j/0D4DLabdl9qpDsWrlyQhh ltEtAL8RzC6WKj4mb/xY7HoJQCskHZ1Qns5dV+4QagiBGVQWqFqHW6zS+7X6bXk6yXYq oyVcXe/DtbmtAsqu/v6dlw3ScQuyyF5M4zKHbbZsqLhLSgSOXJUV+prExSB568VCIhwp 2/db/+w/9qN3JJB0kmO/47FinBiNzu2UdV2YgK/dL3khRFbbSED9QZnfv8WrmCilftP3 u3l7Ayrf2Poa7s0mKVjBaoKnDOkWC1LNl2s77m150NyG8C9tkgXWFSiWUvFoD7ddzLFL 0hAA== X-Gm-Message-State: AFuF++ms31hVtaKWVLJ72Wc50xNSGjChoJ+q+bqR1xNG9ytR4b/VYlJi ZCeyHu9BFBZm4IxGALZIBwv3z/m1kepbQ8t6DzWnjTffFhZyatUFcj0LRqbKL02n8dEC6K2NB8w Pq+7tP48= X-Gm-Gg: AYBFou3N1dmSbpl3bMxlPX9RSi+dKqv+wo1szwgQD5gB0TNStcWgDcLeGPbV7sbsrij 7niwVOfTsNaPRICFZzb2dBb0GzQHb6InqrDlZNQekAkEnW5R21IJ/JR1YdUae6wPtBqjsIfEPB3 y8b3NoZs6Pl1oSG7m6CT+t0MZHyJmgrVUjmpVjR8g6phV3AkTnc6AZX9vTj2bgC/S3/OmZAyw+o 9rqc/jo9XkQmfFQ6J5PnVFSVrmcY3CHXDy+dDK1zv2l5tNBtgur/7Hvnxg62a37TmhJYk+LW7Gr /j2B5dLlbExN6WvDWIdt8of6OkGFZfBnTBfMArXIBVXR2HMhvFKHTchH0PrN/4W4kuTYr5ym4Pl XvNsf3Hc9n5H+aQ/JoyX7eKfBsKL9dD5eOf/Ca0fiAZoAuCeVJSCXqP/RPxh5SUX0KC58w5jBs3 i60fp0trsv8GBY/Q+pJVCRva2cxIhSIHQwGl1PIiNgzuArKlys4V2dLBeZE7om+auaRf3ahwr4U vxmL0WYCi1eM3wq9A== X-Received: by 2002:a05:6a20:a11d:b0:3cc:f008:8125 with SMTP id adf61e73a8af0-3dd5f3c1ac9mr12195645637.1.1789619562775; Wed, 16 Sep 2026 21:32:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 073/101] tcg: Generic expansion of tcg_gen_ext_* Date: Wed, 16 Sep 2026 18:27:55 -1000 Message-ID: <20260917042823.542588-74-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619757435158500 Content-Type: text/plain; charset="utf-8" Move from tcg-op-ldst.c and compute the width of the extract instead of using a switch. Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op-ldst.c | 54 ------------------------------------ tcg/tcg-op.c | 13 +++++++++ 4 files changed, 14 insertions(+), 56 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 3d01609810a..84902f5ef72 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -143,7 +143,6 @@ void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_ext_i32(TCGv_i32 ret, TCGv_i32 val, MemOp opc); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -185,7 +184,6 @@ void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i= 64 arg1, TCGv_i64 arg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ext_i64(TCGv_i64 ret, TCGv_i64 val, MemOp opc); void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index dfad7288bb4..c31c819ebdc 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -18,6 +18,7 @@ DEF4(deposit_z, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) +DEF3(ext, TCGV, TCGV, MemOp) DEF2(ext8s, TCGV, TCGV) DEF2(ext8u, TCGV, TCGV) DEF2(ext16s, TCGV, TCGV) diff --git a/tcg/tcg-op-ldst.c b/tcg/tcg-op-ldst.c index 22211ccb452..031c5ce926b 100644 --- a/tcg/tcg-op-ldst.c +++ b/tcg/tcg-op-ldst.c @@ -760,60 +760,6 @@ void tcg_gen_qemu_st_i128_chk(TCGv_i128 val, TCGTemp *= addr, TCGArg idx, tcg_gen_qemu_st_i128_int(val, addr, idx, memop); } =20 -void tcg_gen_ext_i32(TCGv_i32 ret, TCGv_i32 val, MemOp opc) -{ - switch (opc & MO_SSIZE) { - case MO_SB: - tcg_gen_ext8s_i32(ret, val); - break; - case MO_UB: - tcg_gen_ext8u_i32(ret, val); - break; - case MO_SW: - tcg_gen_ext16s_i32(ret, val); - break; - case MO_UW: - tcg_gen_ext16u_i32(ret, val); - break; - case MO_UL: - case MO_SL: - tcg_gen_mov_i32(ret, val); - break; - default: - g_assert_not_reached(); - } -} - -void tcg_gen_ext_i64(TCGv_i64 ret, TCGv_i64 val, MemOp opc) -{ - switch (opc & MO_SSIZE) { - case MO_SB: - tcg_gen_ext8s_i64(ret, val); - break; - case MO_UB: - tcg_gen_ext8u_i64(ret, val); - break; - case MO_SW: - tcg_gen_ext16s_i64(ret, val); - break; - case MO_UW: - tcg_gen_ext16u_i64(ret, val); - break; - case MO_SL: - tcg_gen_ext32s_i64(ret, val); - break; - case MO_UL: - tcg_gen_ext32u_i64(ret, val); - break; - case MO_UQ: - case MO_SQ: - tcg_gen_mov_i64(ret, val); - break; - default: - g_assert_not_reached(); - } -} - typedef void (*gen_atomic_cx_i32)(TCGv_i32, TCGv_env, TCGv_i64, TCGv_i32, TCGv_i32, TCGv_i32); typedef void (*gen_atomic_cx_i64)(TCGv_i64, TCGv_env, TCGv_i64, diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 31122a5950d..f9cf4675821 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -361,6 +361,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #define C_TCGv_i64 tcgv_i64_temp #define C_int32_t #define C_int64_t +#define C_MemOp #define C_TCGCond #define C_TCGLabelPtr #define C_unsigned @@ -391,6 +392,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef C_TCGv_i64 #undef C_int32_t #undef C_int64_t +#undef C_MemOp #undef C_TCGCond #undef C_TCGLabelPtr #undef C_unsigned @@ -684,6 +686,17 @@ static void gen_eqv(TCGType type, TCGTemp *dst, TCGTem= p *src1, TCGTemp *src2) } } =20 +static void gen_ext(TCGType type, TCGTemp *dst, TCGTemp *src, MemOp mop) +{ + unsigned width =3D memop_size(mop) * 8; + + if (mop & MO_SIGN) { + gen_sextract(type, dst, src, 0, width); + } else { + gen_extract(type, dst, src, 0, width); + } +} + static void gen_ext8s(TCGType type, TCGTemp *dst, TCGTemp *src) { gen_sextract(type, dst, src, 0, 8); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619906; cv=none; d=zohomail.com; s=zohoarc; b=nN/OXgVoB9gjtldQ1pmbRz+aV/mzPaAAzK8K46AgfwJt9GFmWx8MD7N2OyIxkCw9MqWRDQiygI0jKaZhLL7pQSKB9nJICac0Nn9DZ0HBokqWtpjHhWPh7SM/HksJm9nXPD6anJBXaRV17kmFGALlpMWZcFyYhjOJGx7EkMc0N3A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619906; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=gLVJVtNrLRxv+IfwL8FSgUzttUC7M/vJN/Yj7fCsjEA=; b=Xoe/KwvZ+SLZekO6Zeu/+4cWg0Ap9K1hoqQFga1FKPEx87Rcn7ugUEXIrEKGLwngI7Ul77XZzGdMGXfps3dy9Qoah/c+bsWE3KgbdNJM4w2wUUbFF/vMh9bZD81qTz41PnFG51w8QqBV+EuzuWkY6NmJpheOGr4nvLiUFiHaqOM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619906927472.8702800804292; Wed, 16 Sep 2026 21:38:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73p0-0004ti-5D; Thu, 17 Sep 2026 00:34:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nk-0001tF-Dd for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:48 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nh-0007KB-6H for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:47 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cea4c79fso154820a12.0 for ; Wed, 16 Sep 2026 21:32:44 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619564; x=1790224364; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=gLVJVtNrLRxv+IfwL8FSgUzttUC7M/vJN/Yj7fCsjEA=; b=XmVqSS+L3995J0AlZfkUYjk02A9XDx63dvMKCxePutp3U0l/+nyAiwUujt7JyHQkv5 bO/+iVvUzouZHt+CXW1wEVlDXICF+7SraUWotiXjEoJh8qTRetSrtjcDi8eMjhsszcgq Kzaf5dEknxLItJ3m5EPz0Dj3D7XrhSkGuIyJUb0pF/n5gp6PfklOkl41Q4dIedSVjDcN fb/fPzv+ESUDQq4JgdEdyfouuTmhu4UcyOOHbC6Mbh+V46iEKsAgevMWWQ9tn9x0v1UF YQW98RBI5Cc16s1qNujDbbtANEc5wxjDnkjNhr1BjSpmgdxKmT5w1xvnkmWj67h6K3Gw 7N3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619564; x=1790224364; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=gLVJVtNrLRxv+IfwL8FSgUzttUC7M/vJN/Yj7fCsjEA=; b=khA31nsYrAa1RKcGki7F3EL+slUbh3IfgqixFU5uZxu4ZAzDt3/uci6NSRVi/oxW6l v2WZahWGyEDD4oUo6lYvnZX/KngC3v3Pt817EeratXIK4fO3ht/4mRpJQNvr5BqVOs+v 89FxZGP7k6xnsNs/EWf22ZGZTkuExMKJ0pTubiJyyoCR/686YBeAP0VcrDOxcjfJ0p/9 CAW1omRvpKIAeN++ua73TybUwkKCdORxZ/eX7XKW7/Ussxa3xMgAL6GOYIYye45VOYnQ WvmMya8eG131DWEzkV7GE/srzxOTAZeqa47tJ+iCI+K0ePRL1qYx4i9csj6gyqGeSsiq MF3A== X-Gm-Message-State: AFuF++k0zx9/BPvjamQn1oSUz8SjFm0QoAnh+xOVCg0oy+7Zg29vrnEE nJd4FtmVpk6XW7+q8git3Np2rQdyedSYyOLkBtIEkNXuN1n3gxY4cVT1nYG2aGsAEnK4NReJBWt kGqOaeLg= X-Gm-Gg: AYBFou37eSQh9EU6k71pYzt9MzPTl11R/emJfyNV2PjECSUSmR7G2Vifz1NvkDEhzPW mjQNyhGRHhVmIci/3Kp3a2rLWdDkuE56N/3TFagyGIA3YWACJNeiXyG6B8DE7nGAr2+Sy3bu49V DVma8V35aTAazO5zUVInA/xWveM7S0nKFSN+ILC9Xac3ryTu3K26/DSWJmIJWMtOAnKTKX2Vh4L a1pAU5qOmP2vhwXa2CmVtEf7RLeEXTvEPA/xRUFv2fXd02G5qeb2cNr+e2Se1gjUq+hZ96a7d5k dn6nFNRcwS1G1zSHzQWi8+/BjrFhOeFsLIpqonQpH8r1kkw8ENYHQHQ3+WSopxvjXeZLlNNZMWf x3rwPKyRJHKBhiwKX4e9E5aWXdyWWvuIh355roGpl6aTWI4eCVrs6V7qLma8qSgNxSguKxAzSzO IFDw+XMO8QbEY9uY9xPTD92JEc1khC6I72bhg7V2yLjdrDBOBLrglofbITp7rPuNhgqxLDFOuYI pnEKco= X-Received: by 2002:a05:6a20:3d8d:b0:3cc:eea9:f757 with SMTP id adf61e73a8af0-3dd5f5de790mr13553376637.16.1789619563726; Wed, 16 Sep 2026 21:32:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 074/101] tcg: Generic expansion of tcg_gen_smin_* Date: Wed, 16 Sep 2026 18:27:56 -1000 Message-ID: <20260917042823.542588-75-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619908040158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 27 +++++++++------------------ 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 84902f5ef72..ada613805fe 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_= i32 arg1, TCGv_i32 arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_smin_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_smax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_umin_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_umax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); @@ -189,7 +188,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, in= t flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_smin_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_smax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_umin_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_umax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index c31c819ebdc..2ccdddc8eeb 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -54,6 +54,7 @@ DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) DEF3(shri, TCGV, TCGV, TINT) +DEF3(smin, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index f9cf4675821..75b8536767f 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1118,6 +1118,15 @@ static void gen_shri(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) } } =20 +static void gen_smin(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_smin, type, 0)) { + gen_op_ttt(INDEX_op_smin, type, dst, src1, src2); + } else { + gen_movcond(type, TCG_COND_LT, dst, src1, src2, src1, src2); + } +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -1434,15 +1443,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_smin_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) -{ - if (tcg_op_supported(INDEX_op_smin, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_smin, ret, a, b); - } else { - tcg_gen_movcond_i32(TCG_COND_LT, ret, a, b, a, b); - } -} - void tcg_gen_umin_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) { if (tcg_op_supported(INDEX_op_umin, TCG_TYPE_I32, 0)) { @@ -1974,15 +1974,6 @@ void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TC= Gv_i64 arg1, TCGv_i64 arg2) tcg_temp_free_i64(t2); } =20 -void tcg_gen_smin_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) -{ - if (tcg_op_supported(INDEX_op_smin, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_smin, ret, a, b); - } else { - tcg_gen_movcond_i64(TCG_COND_LT, ret, a, b, a, b); - } -} - void tcg_gen_umin_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) { if (tcg_op_supported(INDEX_op_umin, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619886; cv=none; d=zohomail.com; s=zohoarc; b=f8McBGO4SALy+aPExcg1+8lDPF8pRrMXOVbdnhrzWfRgCV7m4DAVFLTfxJk2ib9LXL7Dm9X7kDOFxuVeFHIanu/9Bezd52ktvvcdUfUT/QKwL6KdKdAz12i2i6OXZ06NNjTSB2HHtvzP1VYclE7uAY71+mAyH43NN4Bqvw8bAHs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619886; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=rByoAPdj/YLr9Vkk1Vbq7+aURylDxEq8clBadcSShJc=; b=SePT+7qmJwh+vReoBasxcHRvtMUxZBLDXD3lMPkymYEGzva+ak87VYTyxeDqynV/W83KqD5iEu2i29h8abYmjtNg5OWLTo95OvgNHH+Bx38rp+N7PA+Ru0FbDn5K6G29LBnOso/IfVAcmD6UCy2ZAuoVvDNiKJuGo2CJwdjaNuY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619886730709.4304553962481; Wed, 16 Sep 2026 21:38:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73pH-0005wW-P4; Thu, 17 Sep 2026 00:34:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nk-0001tH-D7 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:48 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ni-0007KK-9J for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:47 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-85469a33c9cso467852b3a.0 for ; Wed, 16 Sep 2026 21:32:45 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619565; x=1790224365; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=rByoAPdj/YLr9Vkk1Vbq7+aURylDxEq8clBadcSShJc=; b=bkQud4lxzVUkoBzNb/Vx1p8IJUZjtzcRyTcHhmXLifBSyD7oR6gkQXzbFcd+ZZImPA pJ6JOyXf2IbYyIjJw7kHnURf3QepKYWWSrQsIL2sX9K1WtXZxIY3Lo5JGhyiGK/12RAl 1NCWeZNxwg4uM+ytLtIR/ye4GQ6YMvpjoi36o6ytccTlcizA1otFe/TXGqyt9ZjGGh+5 zwhH+BBgYqGinfTqqpLo5M+cDr773er+V/6s7VsuE4Gvsj50/MRlpYcT+UVq5sg3iBLZ YnvFhynEI8+esypkRKiQnm9MvQRJujlkt3yGT9cvnGuJ5+rXkiqHVuYdU5IIv601ro20 2+pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619565; x=1790224365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=rByoAPdj/YLr9Vkk1Vbq7+aURylDxEq8clBadcSShJc=; b=XCDj+5oNrPlA0FNvLWPXitthPf78+bIPvAEQTJ4ECjmDDoIwR1nWWREUJOO9J6WNCM l6V3ck0ydEfV+77nJVqS9kAx+5kQAwbZdUaX9IiLiIDFWJAEK2d548I6KMMkSvofhBAi myHwBVW/rHw6iDNYG9WoGaEn7DCHzPY8+HqtHaQYP9DJYNJdb8fQg9Q5w8sw/xnYn97j 68lZdE4WF+Yx7mXmCLJc0Bax+lpqry8bXFGuzjUNEvLGiWdSwPGiOGS49XxOPX6Xc62Z dYW2GgGWcbPfqHi5sxVQ+Q3uCrrRxIlwxMFL9kdT1GWoiAuQSsfDtwM/dN0viVI2djC8 h1FQ== X-Gm-Message-State: AFuF++l4HLYL+62XQduVoddG83coCtyBHPqi8vK5mCwcNAXGj7KOi2RJ e5nlrTdsc3Gx8S3mOfw+HzPECKAn3PV9R+2B5fj6H+8gdkqzxgHEs1PEITspx6bDlzIlI79PsKM COgdToU8= X-Gm-Gg: AYBFou2iAxgA0Mu4BTsXjlJEbCbVP9TTxdfSepC9k1TlpIYBP9cahRQuRlG6I8wDLoc gjPVC9XXFOrBTke4rTeZKaHU9bN6jlPl6wSmPlUM442YLVs7RrYNnTZbZDCoBFeBL186++AEfX1 q83O8FWsfDhodYV9xGfBdlFN3BFqljezIoX7AgpReDA1DAo+p8flytr0RHlvLsZBc1RG4+JUga9 bjRo81M1fbRdDNy4T1LC7eWHGOT7O2ETAwo7qynZz2QirnMpQeQCnMqeA0gGNCcrM5pIxBsYYbO fAw1/FKb5kFwlbHqh79y/mhmF4JrOkIITW6xD8RLKhEApw1oxkHR2H3EwMDdLeF8ofa5IiXAZ4x n4a0oNlc3N7ZSNyK+3C539XyIKOZNdLJuCX8zmxDGL0vtJxrjpvv0RpTygARG+aAVVNs5bCxcSd mDXo7Y0KF2uRXKHHs0fbOXe+33rqGlNwJTsdWZMyzE2DrZDiVR6zi6FJGtGyg6k125eI5TCtDFf 62W9Zk= X-Received: by 2002:a05:6a20:cf83:b0:3d3:ae50:97c7 with SMTP id adf61e73a8af0-3dd5f7ac3damr14389423637.20.1789619564763; Wed, 16 Sep 2026 21:32:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 075/101] tcg: Generic expansion of tcg_gen_smax_* Date: Wed, 16 Sep 2026 18:27:57 -1000 Message-ID: <20260917042823.542588-76-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619887972158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 27 +++++++++------------------ 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index ada613805fe..997f04ba3a4 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_= i32 arg1, TCGv_i32 arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_smax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_umin_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_umax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ussub_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); @@ -188,7 +187,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, in= t flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_smax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_umin_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_umax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ussub_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 2ccdddc8eeb..a5330ab6a1d 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -54,6 +54,7 @@ DEF3(shl, TCGV, TCGV, TCGV) DEF3(shli, TCGV, TCGV, TINT) DEF3(shr, TCGV, TCGV, TCGV) DEF3(shri, TCGV, TCGV, TINT) +DEF3(smax, TCGV, TCGV, TCGV) DEF3(smin, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 75b8536767f..ac513ec93d3 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1118,6 +1118,15 @@ static void gen_shri(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) } } =20 +static void gen_smax(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_smax, type, 0)) { + gen_op_ttt(INDEX_op_smax, type, dst, src1, src2); + } else { + gen_movcond(type, TCG_COND_GT, dst, src1, src2, src1, src2); + } +} + static void gen_smin(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) { if (tcg_op_supported(INDEX_op_smin, type, 0)) { @@ -1452,15 +1461,6 @@ void tcg_gen_umin_i32(TCGv_i32 ret, TCGv_i32 a, TCGv= _i32 b) } } =20 -void tcg_gen_smax_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) -{ - if (tcg_op_supported(INDEX_op_smax, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_smax, ret, a, b); - } else { - tcg_gen_movcond_i32(TCG_COND_LT, ret, a, b, b, a); - } -} - void tcg_gen_umax_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) { if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I32, 0)) { @@ -1983,15 +1983,6 @@ void tcg_gen_umin_i64(TCGv_i64 ret, TCGv_i64 a, TCGv= _i64 b) } } =20 -void tcg_gen_smax_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) -{ - if (tcg_op_supported(INDEX_op_smax, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_smax, ret, a, b); - } else { - tcg_gen_movcond_i64(TCG_COND_LT, ret, a, b, b, a); - } -} - void tcg_gen_umax_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) { if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619974; cv=none; d=zohomail.com; s=zohoarc; b=j0IDWKU2z0Ofa2OgdAefsxAS/7QTD9FggmZqQtPHUJzhF+F+mBKbbf6K1XoWOt0HoFLCK6Mzsn84rPXDon1MfDhG/yT3ohTNDKnu7rAwVPmOFaKJQITyQAwxJDt5MJ1E3sZu9FVeA1DWplVj+Uv7GbYapFD62Y09dx+cpp2v274= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619974; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ctDp8YwXxzCXaDR2a8lYDv0WsLUKLCro93lKhEtLaW0=; b=SdS6gMmZBu9Y+YGB2oLwGUxI6hRcU8O9xWm4xgtjbM5VkTTSCaJuzlCopFczy0bdhW7JhOEVANPD+JfE9W8lXrA4ex1joXCoKfZ8T2WG7x/yRcVU0bZXeucN3K8EyzrLkPBhmBuOI+UpuOKRlKrT8TvUhZVhTJYVTxY+yDqVU0w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619974517212.93731444953016; Wed, 16 Sep 2026 21:39:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nr-0002fS-Vm; Thu, 17 Sep 2026 00:32:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nl-00021A-NG for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:49 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nj-0007KP-3I for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:49 -0400 Received: by mail-pj2-x10.google.com with SMTP id d9443c01a7336-2db22383fe8so2500005ad.2 for ; Wed, 16 Sep 2026 21:32:46 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619566; x=1790224366; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=ctDp8YwXxzCXaDR2a8lYDv0WsLUKLCro93lKhEtLaW0=; b=fhxavsqhlgqRey5MbwfufLeZtLkc6eOmlLxjWLgpcZsejoC3BUkmXQhqfojci8ECSi fjH4Uykc/KhtJ5oJ5/ePESi4IQq93rfvVzVnrakfR+tAfLYyuxMzgj/JHKdPFI9F9J3P x1KQIv6f4rx5xJIkoPQyF6Dm/R7xViLmf8bkgrdcWMhR900VszVKhnPj2fAYICZrKlUI hE2+7QOKLFoSR/kxEiLrE4jcmGmUFX8QHXrRmZf/NiIn5bIfXiNXGaXf0JePl1Axqbf7 w73XwOvidrnJqVdqicEuKnNqwVkweUZ2KgWNjEtktuJqWngw06yig8SY7LNzWMrT+lzh lUXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619566; x=1790224366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ctDp8YwXxzCXaDR2a8lYDv0WsLUKLCro93lKhEtLaW0=; b=T8d9GOxvONNaUim3TFM7YFC3SVquAPSHsUVsUOWOhAMd5WIoj/moW9biU9STjJvjTt ShKOL7Ufud7YaojrQXwB3vaYPsrdpoJlNXfZGSWoZbZa1myt4BjOhq38jajbw20BdXdb VK6Wf02La5nykBYxglxrf0XJPLlVdNeg/Id3iU47w1wyTpfnlZChccNtgnReBBkynMhR N1MUJACJ+huDZk0LkxssAAAfRLpylUJ/MprgxY/PJuOMS2IAYaIFcC/U+bOcX+lExflf N7UYYIJRumi4Elp19hLFyjKF4T0NVgB6ovkwaC5pLEqT4P6z3ktzuP3mmym1UH38uLEs +yeA== X-Gm-Message-State: AFuF++lOJUaQ0mN0Dj4r2xa9HgXC42JDhYeuKIDqVUb5suYW6zAlr/BG U8VnvuxK7Ss0XzUd6cFubXYrBr3ixCwtIX8ZYsaecejRlaKymT7cNMNhe4OAaYAVU3jQjQNTdzP iwJT6U0Y= X-Gm-Gg: AYBFou3E5u60NFge1352fxWpDF1gneFk6AYiEf5VkAfJPrBXj+aV6a4nhkY5rrrIlrP Pc4002BndpkU9GIgdyFluqtC81kohvo6Cs8NHQBDIt72VxsW7iYIQ7mEk2nG+AyVu5ITEpu4au0 ibuUgNfdlbFHcxi/vR9JQUKUSzHiHy938WxCWJJIorjkgOAkh0h1yiY2okQKHBkf74rd1ODPdwa 1Y0wO8+hPmhmvyNGjX31SUCXTcm9QT6ZRyRb1fCsCnBZQRADRGg7q64CWFucUIZMM0Kqr6NHaOi G7V+3/DWcddIKAHasM+KrTjwyeXXfqff40dJukU3aT8g/wwtI+NmYVmfIAwqrxIQlaTQFr3t+tO QNNQmDziMrCeyJ25jFH6NTwlVmsbL8PJSRPap2hgeaAJ2EgV09eHsT7mhuZ2kkvCGSt2tOQtAyZ 4BSWDtCM7gIFHwCeczj1AfMuLeLqSZS+p6tbpk1FYSROms2v6btR8zRT7GDe/MS8aaUNIU/GCDY bxHiF4= X-Received: by 2002:a17:90b:56cc:b0:39d:eac2:7bb1 with SMTP id 98e67ed59e1d1-39e1e26378amr16078024a91.4.1789619565676; Wed, 16 Sep 2026 21:32:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 076/101] tcg: Generic expansion of tcg_gen_umin_* Date: Wed, 16 Sep 2026 18:27:58 -1000 Message-ID: <20260917042823.542588-77-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619976338158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 27 +++++++++------------------ 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 997f04ba3a4..e9f7703b687 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_= i32 arg1, TCGv_i32 arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_umin_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_umax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ussub_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_abs_i32(TCGv_i32, TCGv_i32); @@ -187,7 +186,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, in= t flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_umin_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_umax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ussub_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_abs_i64(TCGv_i64, TCGv_i64); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index a5330ab6a1d..70f1fc48a26 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -59,5 +59,6 @@ DEF3(smin, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) +DEF3(umin, TCGV, TCGV, TCGV) DEF3(xor, TCGV, TCGV, TCGV) DEF3(xori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index ac513ec93d3..cd735bc429e 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1155,6 +1155,15 @@ static void gen_subfi(TCGType type, TCGTemp *dst, in= t64_t src1, TCGTemp *src2) } } =20 +static void gen_umin(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_umin, type, 0)) { + gen_op_ttt(INDEX_op_umin, type, dst, src1, src2); + } else { + gen_movcond(type, TCG_COND_LTU, dst, src1, src2, src1, src2); + } +} + static void gen_xor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_xor, type, dst, src1, src2); @@ -1452,15 +1461,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_umin_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) -{ - if (tcg_op_supported(INDEX_op_umin, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_umin, ret, a, b); - } else { - tcg_gen_movcond_i32(TCG_COND_LTU, ret, a, b, a, b); - } -} - void tcg_gen_umax_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) { if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I32, 0)) { @@ -1974,15 +1974,6 @@ void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TC= Gv_i64 arg1, TCGv_i64 arg2) tcg_temp_free_i64(t2); } =20 -void tcg_gen_umin_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) -{ - if (tcg_op_supported(INDEX_op_umin, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_umin, ret, a, b); - } else { - tcg_gen_movcond_i64(TCG_COND_LTU, ret, a, b, a, b); - } -} - void tcg_gen_umax_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) { if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619695; cv=none; d=zohomail.com; s=zohoarc; b=QDfrJooYyy25KijfKdcyjlQFL+TboyefgTBEeObCJzA6edlxsnkU1fcPDpOTUpeF5njta4IQ2ozmKZeq3YJWtvgMOQ8b4GuGGNQywJIxho/GXXK9GxWvyuYOWUMgFSWNhLo2jWng/IKtT9XrJPrPZFfAjCW+i7X6NnrgwQ/Tk8A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619695; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=sEpP883SAwSpdOpHf+0TMGgQuFwS/hfn5Cjwssca0Qo=; b=I3vIhtt/uoMF2BwiE4GBGyj67h1fUbRkY1775VJHi5QXwe/aTD5E99rKSAqOG0aQFQNoOyAidLHxL7yB9YmvloejkHoY1VCBnGwcIEuV5Pn6M4+jwlSVDOmg3A17hFJN0I/G5qf85tyt1ROTXLCMAoZrG2kpwOO2Z6TjJm672zY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619695474486.34778570184744; Wed, 16 Sep 2026 21:34:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73nu-00033M-Ob; Thu, 17 Sep 2026 00:32:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nl-00021K-QK for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:49 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nk-0007Kk-2n for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:49 -0400 Received: by mail-pj2-x0f.google.com with SMTP id d9443c01a7336-2d747ec6188so2620755ad.3 for ; Wed, 16 Sep 2026 21:32:47 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619567; x=1790224367; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=sEpP883SAwSpdOpHf+0TMGgQuFwS/hfn5Cjwssca0Qo=; b=virpPNMXvNHLzxpxh7MK4rO9flpSd/L5XJd2WcHXDC0ompYgxif99QaZCSI9x4i//Q FbC2qW28mQStTgLfZj78PcFzZNLDNraQUxc70J1q93twz6zr5VU/tNVu7UIaYEq2zWHz bMDSFhkgGbDseLWfGShbrESiWYpbkLiTOXffFACAhQnA9fONAsLH02tq+aGXSDHbFlsA BiatwADzv3RBHGQod24npdmN5vf8RdoEsXhZVDIDWLCdVWkFJnhql55RNY6K5ZOnlJv9 0fZ3tIEElB9svlZivgkex9waiGWGEps6d8BRlH0pxholDtCMtZnjyuie5JBKiGLgc8We AIzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619567; x=1790224367; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=sEpP883SAwSpdOpHf+0TMGgQuFwS/hfn5Cjwssca0Qo=; b=pQz2TxLGJbom1bLwpA/jaf202/3YWsHXaSjsaKm8DCJcaXTgv+q2BsHQyPmKGqAprP XFlqxC0FQLamoy/7nMeagSuYn//puxvgZZzUD+b0JeVYC9Wiv8U+9EVPcC9KeC72xj4a 1S8qEdTMtTPi58DeNIc/mQI99d8txnI8nW3dvwEAdCcZWHZb3p1OP1668CUj8nnmw+rD u9SBxRHw5dcf52aBxaRRYCYhzoONF9gIsEvqawz091e4l4Q/DlMAc22xTdwLe9RN7ykR NsYSJDa4vfZ0zg/+LVz4W3x87bUrtaWcYS8uGkxLqx4EdpVR1Y3FixppoiW0ubSBJ8ax 5wxw== X-Gm-Message-State: AFuF++k/Zt6JGfAEnZvsdSYbAMVeRzuTqWFAhKS8I0TOg6kYZWKrkwHH 5L7yuKhii757QPTq7Z+dnjpLcyqXuPR+hcUeSDWINhnJQRpN24EgnHOEOc72+2orqs2TKXXHX/C Lx0T/Ibo= X-Gm-Gg: AYBFou1zramMWRZukr1d669oPmDh0R6kNSrJ0mV1rvNbqdVcjuSCOuH6J285qxG2d9y XcH0z73+qBUx3ghpWmu0iKczge12RtyUPFPyB6AYcTxkq1op5/w74Qp4CMGXeUkYOThgHcMLkbb HY7srJ64ghfWgosMb3LVtUY31FOfEdaPj/K9etla8zozTFpU7cRc283KTqSrfjmD0ILd7HULXcB hR537WfFTu9Rl7mjxVcwU9IjtpoJMr6GNoGRuOMXfJ5DpKh3bpD9SKGTPICnGLQwfh6t54UDP6k x4g9tRs9pTWnXcu75nMTXP6rTrdpSfs64CB3R6CGyeT7HIgeCWycBWqQ/n8GDw7jb7Y9etbaFLZ OJIWuc6DIdGZXdRxIQXYS0WFDYVztNggnPxxZptG3K3H1kLdUbtDO+jAqsKOj1OiF1QriyPz1L7 uOG4ab2QqgI680GidJwz8rvGrZPVRzR/c4AUwm59e6SmPPc8hOS/Q2a5Moc7NLH4WgLRWlAd8/b alK0NRUwp1tB/I81A== X-Received: by 2002:a17:90b:384c:b0:38e:9ef9:eb97 with SMTP id 98e67ed59e1d1-39e1e48a0c5mr11157448a91.16.1789619566615; Wed, 16 Sep 2026 21:32:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 077/101] tcg: Generic expansion of tcg_gen_umax_* Date: Wed, 16 Sep 2026 18:27:59 -1000 Message-ID: <20260917042823.542588-78-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619697180158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 27 +++++++++------------------ 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index e9f7703b687..79a3e82c98f 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_= i32 arg1, TCGv_i32 arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_umax_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_ussub_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_abs_i32(TCGv_i32, TCGv_i32); void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -186,7 +185,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, in= t flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_umax_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_ussub_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_abs_i64(TCGv_i64, TCGv_i64); void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 70f1fc48a26..1405dff32aa 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -59,6 +59,7 @@ DEF3(smin, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) +DEF3(umax, TCGV, TCGV, TCGV) DEF3(umin, TCGV, TCGV, TCGV) DEF3(xor, TCGV, TCGV, TCGV) DEF3(xori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index cd735bc429e..5ed6cfd8f89 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1155,6 +1155,15 @@ static void gen_subfi(TCGType type, TCGTemp *dst, in= t64_t src1, TCGTemp *src2) } } =20 +static void gen_umax(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) +{ + if (tcg_op_supported(INDEX_op_umax, type, 0)) { + gen_op_ttt(INDEX_op_umax, type, dst, src1, src2); + } else { + gen_movcond(type, TCG_COND_GTU, dst, src1, src2, src1, src2); + } +} + static void gen_umin(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) { if (tcg_op_supported(INDEX_op_umin, type, 0)) { @@ -1461,15 +1470,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_umax_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) -{ - if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I32, 0)) { - tcg_gen_op3_i32(INDEX_op_umax, ret, a, b); - } else { - tcg_gen_movcond_i32(TCG_COND_LTU, ret, a, b, b, a); - } -} - void tcg_gen_ussub_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) { TCGv_i32 t =3D tcg_temp_ebb_new_i32(); @@ -1974,15 +1974,6 @@ void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TC= Gv_i64 arg1, TCGv_i64 arg2) tcg_temp_free_i64(t2); } =20 -void tcg_gen_umax_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) -{ - if (tcg_op_supported(INDEX_op_umax, TCG_TYPE_I64, 0)) { - tcg_gen_op3_i64(INDEX_op_umax, ret, a, b); - } else { - tcg_gen_movcond_i64(TCG_COND_LTU, ret, a, b, b, a); - } -} - void tcg_gen_ussub_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) { TCGv_i64 t =3D tcg_temp_ebb_new_i64(); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619759; cv=none; d=zohomail.com; s=zohoarc; b=Z5RL7CWUKCh7zWqXln+YlceplWj5eQ6DCtCCiDhqYNVA9TmJpufyrT/+3Vm6KkoGX1txTogTDvJzWScK94mpo0yYXdZce0hMPflBRrFTMP82cPw1kkfg3I/kI791iw5EE/DKZ8zhueuhXUlrfQ9uPzwiZtUmwuOR3py9q2KZfg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619759; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=4Gwz5IidMPaDjTHAos35ZuXkg6kqFYoFG5EgZu71ns8=; b=WVWCSHrVEbnHnaXindhzG4OHOYof2jOVv46JuOYYPsZw6BEWE//5HEClc2xP2+/1Y3AWMdvMOY/AXqZyUjb9hqrv4IOpzgBZtWWz0pjj+otX98WCTmv746sIOOK63CmxQQh7nO8fxjWb5fGmMlnIZoIzfMt4QQuODo55pPNklj4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619759123130.54127574520726; Wed, 16 Sep 2026 21:35:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73p8-0005ZM-H5; Thu, 17 Sep 2026 00:34:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73nn-0002EB-5R for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:51 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nl-0007Ky-6p for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:50 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-39b5b07ec78so283036a91.3 for ; Wed, 16 Sep 2026 21:32:48 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619568; x=1790224368; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=4Gwz5IidMPaDjTHAos35ZuXkg6kqFYoFG5EgZu71ns8=; b=A7ve/lMXcVtALg7O+o2e89EpY0ie+jW8xWPUOcQrU4xy3BFfHL5fznxHPK1g7Se7UA FcQFNdd+MFCzrv4WfjGAUZ9LxcCpde+250FPCK8c8YL3G5gQ69A2jRhZKqyK1uXyTB2g N7qz378T4ipfahElsKEwfJcYYvp7hMaIKX8hvTBUrA3OqPECqxeEErD/7e5Od2IUyFs5 6+UD9xBIeFTTxWF0UdxvYkuJNnJF0csjuBnNrgRSEaZsXqJqwXqmf6VnNwzjeCliUXb0 Ix+nwYbYjn5cWdX1hQpsrxc2Scrb9TMl8/YzRfS5yxyViC8dc3ilfyJnEZ69nz5efNrm YgEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619568; x=1790224368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=4Gwz5IidMPaDjTHAos35ZuXkg6kqFYoFG5EgZu71ns8=; b=0TMWZFZ8ShcTm6txYa+qociUj6dhH92rF1icSWIs49wIZheqqh92s8lw6THK2M5tfV DK6MjHjNzUXiES2CYYOSdt2KlYwhAW0lW5jODUYpvjaPxX6zq1Eke8fFUiHMJO+3K8pg 1qTyde6RNVOHD9SjHOO6fXYwPQIoHwgK94TGapwfMPcTUN2pSfzqsPuVvIp1sZ4BBq4W h8RJVMPpXIyx8QGMDrLWtNZCSsEuOLylNUibgSSZ5SYniNMRjtCXKc6XitK6rNiB3M4k qe6YR2Zhwh5XXQKfUeP8P195CHIvSAC+ZUCNWdzNVr00Hh8hRwDLVmPjBKQg0Hn+It4n XsCQ== X-Gm-Message-State: AFuF++laLdbcSoLbln7vAp5+pVbajo3XA7p0FbdBt27Xb4JDYpWzHwzN t7D3XQrFEKLbXAOAiRPkqrwCdBTE/c9eCmQULytmnCegnAjQRC7fwUDDU0H3FHKVDfFSBJeXoPA twO4NM6I= X-Gm-Gg: AYBFou33vpOtQlG+VoC6jGkQminH4xBE/lMAV2hwxU//k54q9qHz4Kcw1Mu94+iOJG4 rHX+s2bM6phTjjoGdV/GKvTdTSXiqcnpVGRVh9R8x5iyZ3ljXL166iVE0qnQJlAjdB7a/t+MpA2 LOOOQH5GbwdCGKlzlhLb6Fz3L6hgVFxl7mMydOcFmO9II12EdWwGmY1Q7O5WmHEA5l234pvCHt7 sZvJXgv51J4SUwAVHoo8rEYOJkDJxiZVwlnMLi8C4GP1TAKSZv36iAT5dg7hIABnq+SuYYOMVOQ yZjECizjL2K4Ven4znxlncE90ejPhjeO/vSw7KJFBxp1RcNeiDvZQubLazkWR+XvF/3wydp6HKH mnw7gEO0rdu0htge6Gl03R92mDBdRfh7OzpswOAhmxJLQIvWVuExdPnL5n1x8JkijiIqK+t9je5 1kzf/ILP9fbRCEqsMclA98uHkCtBw9kd5CK7oeXLCOImdeIy+wqfjkdps1qiCd3NbLPRDVk16yk Y36oGU= X-Received: by 2002:a17:90b:4cc8:b0:398:c292:ac80 with SMTP id 98e67ed59e1d1-39e1e330a2dmr13079775a91.10.1789619567682; Wed, 16 Sep 2026 21:32:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 078/101] tcg: Generic expansion of tcg_gen_abs_* Date: Wed, 16 Sep 2026 18:28:00 -1000 Message-ID: <20260917042823.542588-79-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619759444158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 35 +++++++++++++++-------------------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 79a3e82c98f..b64b54fcdee 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -147,7 +147,6 @@ void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, in= t flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_ussub_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); -void tcg_gen_abs_i32(TCGv_i32, TCGv_i32); void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); =20 @@ -186,7 +185,6 @@ void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ussub_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); -void tcg_gen_abs_i64(TCGv_i64, TCGv_i64); void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 1405dff32aa..69df7967c76 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: MIT */ =20 +DEF2(abs, TCGV, TCGV) DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) DEF3(and, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 5ed6cfd8f89..afd764ef16d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -415,6 +415,21 @@ static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *sr= c); * are of the proper type. */ =20 +static void gen_abs(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_smax, type, 0)) { + gen_neg(type, tmp, src); + gen_smax(type, dst, tmp, src); + } else { + int width =3D tcg_type_size(type) * 8; + gen_sari(type, tmp, src, width - 1); + gen_xor(type, dst, src, tmp); + gen_sub(type, dst, dst, tmp); + } +} + static void gen_add(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_add, type, dst, src1, src2); @@ -1480,16 +1495,6 @@ void tcg_gen_ussub_i32(TCGv_i32 ret, TCGv_i32 a, TCG= v_i32 b) tcg_temp_free_i32(t); } =20 -void tcg_gen_abs_i32(TCGv_i32 ret, TCGv_i32 a) -{ - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - - tcg_gen_sari_i32(t, a, 31); - tcg_gen_xor_i32(ret, a, t); - tcg_gen_sub_i32(ret, ret, t); - tcg_temp_free_i32(t); -} - void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_ld8u, ret, arg2, offset); @@ -1984,16 +1989,6 @@ void tcg_gen_ussub_i64(TCGv_i64 ret, TCGv_i64 a, TCG= v_i64 b) tcg_temp_free_i64(t); } =20 -void tcg_gen_abs_i64(TCGv_i64 ret, TCGv_i64 a) -{ - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - - tcg_gen_sari_i64(t, a, 63); - tcg_gen_xor_i64(ret, a, t); - tcg_gen_sub_i64(ret, ret, t); - tcg_temp_free_i64(t); -} - /* Size changing operations. */ =20 void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg) --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619676; cv=none; d=zohomail.com; s=zohoarc; b=frJBa3DScYCSvyMjyRmH1cDODLyX6Rl/ndcUFstyqbDppPzOlCtsg8LZ+33taSDvU2sNElQOz+t1Iy58tXuVUqZpAnq7kBxkn0+P2aEXgA5LPRNE9u5YO+j8/2ruHMGJs6s49Bl7ErG4T+VNKXS6prLDvAZshq7Vuuqftm85yO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619676; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=J/MbtGKsg9wpK9YblH40PpWWjYbcv5ll101QsyEncpg=; b=LP9JXmeZ2K/QvdjwBSv0uwysdy1lv4k6iH1g9SNm+xUPXTKsO05gyrSYW3k1OKqyAauCr39uEYzWFEdgfSYDY3eTIm3/4q0IltqwrpRA2Ljg1fRxZCTwFx3NnMFXPk3/XQ+3BJuEbx9mnMoWVGoiUt/EXAsYw3pm1V0KkjF2kDs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619676483326.43373793754813; Wed, 16 Sep 2026 21:34:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73oF-0003kJ-SU; Thu, 17 Sep 2026 00:33:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73no-0002Jn-D9 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:53 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73nm-0007LA-4O for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:32:51 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc50bcf87b2so234034a12.1 for ; Wed, 16 Sep 2026 21:32:49 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13cb7sm10501878c88.7.2026.09.16.21.32.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:32:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619569; x=1790224369; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=J/MbtGKsg9wpK9YblH40PpWWjYbcv5ll101QsyEncpg=; b=Y4MvQtd9Fnl76OKAnwfJUeUSNHxetqTmY4TTd2Lam0lRGkim2PS9+6TwI0f0wgUUZj Q/XzoREziPAR/B/B7En+NNHfjdJcj78ojZ9GyX/RRV/Zj+UFbO5cJdi6nqyU2itnUwOT QIeAoBAJSBIbEB0/hO8s4pordiU6mlybCl+Lvnf6+VGwGqGOi6/Rfmq/t4eRb4kvikfl ahLtVNN0kuBwEklTB3fKf87BLIcPmAl2zo283kHO9IaMLduRlzEKhTyyLBNqiDplzVd1 pg94LnJFilAkI+Yy1e9NMNYoP2VAY9eslyl324fcrxuvJ7O3pq6uY814J5FmrUDVbvi8 gl7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619569; x=1790224369; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=J/MbtGKsg9wpK9YblH40PpWWjYbcv5ll101QsyEncpg=; b=dfYpnpLpfBKn6Fs3W4rsxXtVL7lKJfBJT7cDr/SmdA27Q8dcZX9nKUCLdAUkIu1yho XooVz5qlLFI7rkVaHYpC1iJWry8oF4tXz4d92Fid82a+3ZQ2CkkdvCbiIu7Iz6QAU5+V txCvpc3HVchNq5I8mqVZNxAG7GLxrKM9xYg79wdSNn9AqpPLA1py67oM5jUbr6EBHtQs cNZyZsVZbNPmZogXTqkmEt9iX4Kg39n9VZL98WlGzjj5fdpy7y/AL1jmO2shrJ/fgR7u xc8fxpKzq2OjcdaYToFlFAtvjPoQo3R0C0LRvfxjT2Im/nKyH0FPUdxRVu79mluTbDjK hj4g== X-Gm-Message-State: AFuF++mBG09rZO81yspP4Y+JUM2tola/VW2TtAuzTHVk+0WZ3AfiwjA2 HXTBPA7T+OUipLicDaRn1LugrVieIA1ZRD3isJrP7wJfTxVW+Ro9oTKMntLCm2K1JMAxCS9LwJ+ Ewft+cUc= X-Gm-Gg: AYBFou0h1bFsEpjKYPhvMDnUvtccvt/NB1aST+H8G3rSGLy/1XE7hmmqqFYvB5iFTma YVvJN6QMCURRlUs2Fq0t3A4S+Fmo35sn+ptPlj58AE8Z6GWE6NVUttUWQ8NobDhcElwZF1CPaqo +LhtqEOoE66vmwHEe/iMxw0PtsvveTmNZTim70VNlsFazTuSfziCc1s01VT7jqS6xSd7vz2ofaZ syfMVpoP1zzn/rvo7v9h5zA8ZwF2FtruxS8hpebnVLVsPichsRmTQGCBpgmqrzJXysgBTglO3Z9 RrmFhBeu/49nEUuTjX1PscLRJv7SscoSPXEmTU06Y3T3fbFNLscBlw3vKrJutSbvnRU9UOyR1Xv 5NxIC4stRqK8btIv+2n/PmUN+gav50/t98tJLnIdU/gngKZ4q6ScE9h3jWOpNSXAqDVsD6OsunF MT+ItqTtzlMQD7GtCSbV24qW3BXyFl2PV9z9xaEezdYFkiKe2whULcZiSMF9yxGAf0wPg3tFLAw ZoMCjw= X-Received: by 2002:a17:90a:e7d2:b0:398:a145:5d3d with SMTP id 98e67ed59e1d1-39e1e2daa81mr13858339a91.6.1789619568636; Wed, 16 Sep 2026 21:32:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 079/101] tcg: Generic expansion of tcg_gen_ussub_* Date: Wed, 16 Sep 2026 18:28:01 -1000 Message-ID: <20260917042823.542588-80-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619677161158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 29 +++++++++-------------------- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index b64b54fcdee..f547dc14365 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -146,7 +146,6 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_= i32 arg1, TCGv_i32 arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_ussub_i32(TCGv_i32, TCGv_i32 arg1, TCGv_i32 arg2); void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); =20 @@ -184,7 +183,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, in= t flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ussub_i64(TCGv_i64, TCGv_i64 arg1, TCGv_i64 arg2); void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 69df7967c76..48f5acd5dc1 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -62,5 +62,6 @@ DEF3(subi, TCGV, TCGV, TINT) DEF3(subfi, TCGV, TINT, TCGV) DEF3(umax, TCGV, TCGV, TCGV) DEF3(umin, TCGV, TCGV, TCGV) +DEF3(ussub, TCGV, TCGV, TCGV) DEF3(xor, TCGV, TCGV, TCGV) DEF3(xori, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index afd764ef16d..31c82cfe2fb 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1188,6 +1188,15 @@ static void gen_umin(TCGType type, TCGTemp *dst, TCG= Temp *src1, TCGTemp *src2) } } =20 +static void gen_ussub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *= src2) +{ + g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); + + gen_sub(type, tmp, src1, src2); + gen_movcond(type, TCG_COND_LTU, dst, src1, src2, + tcg_constant_internal(type, 0), tmp); +} + static void gen_xor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_xor, type, dst, src1, src2); @@ -1485,16 +1494,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_ussub_i32(TCGv_i32 ret, TCGv_i32 a, TCGv_i32 b) -{ - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - TCGv_i32 z =3D tcg_constant_i32(0); - - tcg_gen_sub_i32(t, a, b); - tcg_gen_movcond_i32(TCG_COND_LTU, ret, a, b, z, t); - tcg_temp_free_i32(t); -} - void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_ld8u, ret, arg2, offset); @@ -1979,16 +1978,6 @@ void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TC= Gv_i64 arg1, TCGv_i64 arg2) tcg_temp_free_i64(t2); } =20 -void tcg_gen_ussub_i64(TCGv_i64 ret, TCGv_i64 a, TCGv_i64 b) -{ - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - TCGv_i64 z =3D tcg_constant_i64(0); - - tcg_gen_sub_i64(t, a, b); - tcg_gen_movcond_i64(TCG_COND_LTU, ret, a, b, z, t); - tcg_temp_free_i64(t); -} - /* Size changing operations. */ =20 void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg) --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619762; cv=none; d=zohomail.com; s=zohoarc; b=f56d+ITcO838DI7cFj00aBpkntlwt1vzWQdoQvc0+gfJSKya0viSX3f8sP3xeNpKbIl2sQzSXVR2n6W55bQINMlhB5nKH4H2Dpv2phuwhYM2uFVMHz+xHQbf95AR5pAIVaSWbVNLz/ftH0wtUypJnOrPxgqdXgsAWOpzliCR6GM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619762; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=KZ/JTifwIcwC9kSvJjXKajKChFluEZX879vyjE9MhOc=; b=icS2RSf1x8dkbjOlBLLViVtEGR0Wgb6wGT/9+pRS7oJnF89bhsCvO3JXbzMUMbUvdjn5KCKCEkP0HZOTBcTVDJzNn8tKM+o7ufmjGCtGCyowDmH7N5+AzLG/Tt9vFBel2gJYrMKLvguWS/Kp+f7ZK23mJAt16IZAGYEApgDRojU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619762242749.8524429055293; Wed, 16 Sep 2026 21:36:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qo-0003FO-SH; Thu, 17 Sep 2026 00:35:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qk-00033T-Aw for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:54 -0400 Received: from mail-pz2-x0f.google.com ([2607:f8b0:4864:3b::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qi-0007uv-Of for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:54 -0400 Received: by mail-pz2-x0f.google.com with SMTP id d2e1a72fcca58-85a4329731cso317736b3a.3 for ; Wed, 16 Sep 2026 21:35:52 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619751; x=1790224551; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=KZ/JTifwIcwC9kSvJjXKajKChFluEZX879vyjE9MhOc=; b=ZrV5D/bWSS1LXbjDx7QYjWbcE5RPszPUFVpJc4bMwvQ9WWJv7fd9ccesW7YDPqbP/+ yWICtDQYRAWsJNyweRtx5iEsXP7F6FUzM0hSLhduGsFTyggBtNdehOsChsTGTjIOsv8l OscldatJNYKHAOPoFh1pkXbDEBnLLTlHWfLSMCyxNGm2q/3mp1dWjgavu1gLLKuW7SyP v7lwpekVFtVQM1lyYrXmIP4B9sWry1wB9MDmrVvCqXwhn+WCnwrgHCs0NUzbFzviUIMO DdiwKZFMe8CLgf4qXfz3ChEghKrhCweADQM7LXQ12uOXxxC5YClZ9nefnuooOA7Axol5 /uww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619751; x=1790224551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=KZ/JTifwIcwC9kSvJjXKajKChFluEZX879vyjE9MhOc=; b=OTwfRUNIuwn4H7kwB+yg9f77BiEIdX3UhGhn8JOXZQXpAA0U4qC0he2k8lNTDrtnH9 8JPBCexpvvrdSKxhmbP9mBekF10a5kFzWgTSo6m4Yz3u7rdksb89gQpz4FYJx/uBBbQ2 A0Emp4UBB5/K/7utXzupH4R+agUXfBwpbaexd9HTkqE2Mz55iKOwhkfVOVqoUKPgV7O4 VuaLTn82Zxul1+vfKgFSN2ohrPW1HQreD8Bdnc0ZuUwau4BuHHG1T5vSUPBpyHvvIuV4 5+R6c6CEEPLAGF12uYDA3i8t6jgxp82mIMuKLOJfSYGClkOfy8Eyw1pXlpTgwjdzdbwu kOYA== X-Gm-Message-State: AFuF++m9K6JYXGG84cW4s2AR4sHac0gSoCDzLnIAnC4012PUciiSG4EF AENrJNk9cLgsTojSCxzkqTBYv/rufwPFGOKzdvBV+VfiGnagFXnywv7On2YVnpwUjrQgzSKTvA1 ZWN9RnTE= X-Gm-Gg: AYBFou2cTJtAYGHb8UE3gNFGJYF8ffda/RbgBFv2Tfh1u82SUfxVlWwlcdTPCWBtzki CaTblJw+RAZYxxgukL+dXnDsR1z7090fZRq39SXqu9ppEBihrN2SyFcw18mnojxjsv0gVXV9y/H veEMx73A91WKNB4yanGALPL1mamADj4s/KGvoLRZBQ5yuCJGSwvd9PN1KxH6BklduEm6tZek6ZT dbunKBDDVDSjmpcradATAEvR4KPq+/KxGyroQCQNhAT9Ee1mdbm+7WJbPtGRXb/VBEZ23P3D6qL GCtSuDsWPswk/SZJ9rWoENiBwvxiFa02hxhJSpaSBlsKbRaLwkR/haQKZZ70kkYUOb57b0h7jZg 2r6wV6WiyP4V2s910xirhiZosBsu5rpBm6I0ACbwq0ZmSoksTHV2pa0rz88ToVBIAum+ucMv1u/ iQeTv5w+VrJhHF7jI8lq1YFMqQ+d/EuhbtAP5erTx/2kbnOjyfs83B1PnmxgcIXfYYCxkGY5xQC 39lZwc= X-Received: by 2002:a05:6a21:1343:b0:3da:f32e:b3bf with SMTP id adf61e73a8af0-3dd5f5df79fmr13142088637.17.1789619751124; Wed, 16 Sep 2026 21:35:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 080/101] tcg: Use umax in ussub if available Date: Wed, 16 Sep 2026 18:28:02 -1000 Message-ID: <20260917042823.542588-81-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::f; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619763462158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 31c82cfe2fb..a97c0b2f765 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1192,9 +1192,18 @@ static void gen_ussub(TCGType type, TCGTemp *dst, TC= GTemp *src1, TCGTemp *src2) { g_autoptr(TCGTemp) tmp =3D tcg_temp_new_ebb(type); =20 - gen_sub(type, tmp, src1, src2); - gen_movcond(type, TCG_COND_LTU, dst, src1, src2, - tcg_constant_internal(type, 0), tmp); + if (tcg_op_supported(INDEX_op_umax, type, 0)) { + gen_umax(type, tmp, src1, src2); + gen_sub(type, dst, tmp, src2); + } else { + /* + * While umax can be expanded with movcond, some hosts can + * perform movcond with a zero source in fewer insns. + */ + gen_sub(type, tmp, src1, src2); + gen_movcond(type, TCG_COND_LTU, dst, src1, src2, + tcg_constant_internal(type, 0), tmp); + } } =20 static void gen_xor(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619983; cv=none; d=zohomail.com; s=zohoarc; b=RNivfpUaDuBqeQsMOc2ieU9Qmx5lecjWpr5vFGdwtepYq9jjqvboFhntAE4NALlbXVLUtxpB7VM1rP9l9VvZa6rp96CS/U328U3/Oi0bY0uZgdG+6Rwh3wnt8BPSaX9Szex9nCme0iJ2FkxDbvqMoQf+KMquMWqyaK4rcwHm3vg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619983; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=m5/k6tNpPZaN+4lj7F8+I4EwoEAGdTlvqbQMwM20Zh0=; b=JNhms0BorxTC34Z0RIve4xcN5k6SGBrii3kwGt6ai0NF+T/3skiysFZohU63HbNEFNd+kJCDRiWCcP+ZNHQgpqHtHoi+TFw+nQWKPOrNp4Pb2zznVVhSKTIsmuMt+xWF0Js7A1bL6EisdITO5tae/MRwhm2gaNFWDXmgN3nPdi0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619983445231.72799189909745; Wed, 16 Sep 2026 21:39:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qr-0003Sw-TA; Thu, 17 Sep 2026 00:36:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73ql-00039S-SY for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:56 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qj-0007uz-JH for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:55 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-39dbdfaef3cso372075a91.1 for ; Wed, 16 Sep 2026 21:35:53 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619752; x=1790224552; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=m5/k6tNpPZaN+4lj7F8+I4EwoEAGdTlvqbQMwM20Zh0=; b=R9RNr9cVx4WNC1vYUxAS1ODm3IbYd0idpVIaIgbakyul0BTgb3mlH/Bg0/Oui/WUQN GfE3SrSCy4jNcC/h77u9D/aj9r9bEf8FvTfEDTpU/1k1VPjmTulSNoJt8ARHW093nj77 3R9r8TrkUCwgVjp3H2vJ7BiR2SIZiMOhrmrNOPdxVAl8VBxILHdk5roooOgQUUfcZ+tx FouqPL1mKgVcvZ+0EuxhLIW6bC81a8mMPI1b1mDjoZoeD11Jj3UdZh28btQYP+CfxijK eu5ZOj8Z6BOnp5FUl8EYn2IW3oxcPP3xHx4ZA5rf8l4gu91Gy9dKaLclFKRi2TOztn5O OQCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619752; x=1790224552; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=m5/k6tNpPZaN+4lj7F8+I4EwoEAGdTlvqbQMwM20Zh0=; b=cWoe5r9J+Bq3STgmI8lpybeO2sp6AaxhlnzvRZqLztq2BxB0UjirZI+2PR27sW3eiQ N7i8RzY45QV62koRvKPPP7uZHwProPMG/M+8W/WsPRoPZo+aXQwL56Pljpl0HMlN9pMU ZQgeU7Q9ySgGJWrLTHqKy1wHUN1gAPamQCDt7TQXVntv8OjFIaljjJmkoeabE9ABTVZs QRbIg0JqZNQOv1ctKTfePynbF5Xl8ZeR/o2Wsji785WZuWsDGVhkcKzfga0uqP7Zw3e+ 9qXrSpbzLA0n+Oz2x7g2PorHXCcck1S8CuI01rOSiHpOXJSjPXfLEhUofHq1gWdaSvXd uYGA== X-Gm-Message-State: AFuF++m5PpuX1sqqdwX5yio7PtSrAn8Kg1Eav/Cgb5xBiNczLCUwM4WI +C6de8Fmjlkvz7ZHcKY+tAfmH4WSr3swoUkIeHrYsRk3PK3+vbI2nxZdCVmBQiVcnJJ7/lpnRSg DPAOcmnA= X-Gm-Gg: AYBFou1eCrt49LzDKhmT/jypE8jBAje31nqOeus19VQC91wQ/XWjp+J4T/2PK81X6hC sM/rTtXFsGx00ssYdnthMIJYPkqICIC/e3PGtLWgYI4NB2RmMYr3V8io2eboaTEeiaUUZzRhhgD kezd9ET3q3M1OcgoAlbsxrgo0V7IOptViphSd+dVSQopyAM8tV1mz1TvaXcWCg6T3sdgLtwWbCu AyoETCKgdn41/1rQYG7KbZP+XikOvXkTS0BsKHFOfDpplCnVz1mk6DDjkGdBAdxi7x1j8OmNZLK rkyQV3H8buG3onRLTQfCsLbT0iblGXfVILo0MqYkIjKRiqp+Glho/r5VfkjP0N3B9gsJuGBqxOl i5apUyqwxnhah2XG6FVgWzSqGG1pUPPk5lbljDp+5CMLQr16Lyn9Kk2DuTRV2y9BjHVl4HMPirC xukJ49+W+HO0gRrxJcFKgIzpSE0kyGQl2u37a6zdPj5uAZ1nOOrpl+BHr0nOjr1tBUgL9+xWnvq tRi3IY= X-Received: by 2002:a17:90b:3c41:b0:39d:fe64:5733 with SMTP id 98e67ed59e1d1-39e1e5612demr17946438a91.24.1789619752018; Wed, 16 Sep 2026 21:35:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 081/101] tcg: Generic expansion of tcg_gen_extract2_* Date: Wed, 16 Sep 2026 18:28:03 -1000 Message-ID: <20260917042823.542588-82-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619984361158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 69 +++++++++--------------------------- 3 files changed, 18 insertions(+), 56 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f547dc14365..c60135d2fe4 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,8 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, - unsigned int ofs); void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, @@ -164,8 +162,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, - unsigned int ofs); void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 48f5acd5dc1..1f6b3e2c464 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -25,6 +25,7 @@ DEF2(ext8u, TCGV, TCGV) DEF2(ext16s, TCGV, TCGV) DEF2(ext16u, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) +DEF4(extract2, TCGV, TCGV, TCGV, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index a97c0b2f765..04faf9bb69a 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -230,20 +230,6 @@ static void DNI tcg_gen_op4_i64(TCGOpcode opc, TCGv_i6= 4 a1, TCGv_i64 a2, tcgv_i64_arg(a3), tcgv_i64_arg(a4)); } =20 -static void DNI tcg_gen_op4i_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, - TCGv_i32 a3, TCGArg a4) -{ - tcg_gen_op4(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2), - tcgv_i32_arg(a3), a4); -} - -static void DNI tcg_gen_op4i_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, - TCGv_i64 a3, TCGArg a4) -{ - tcg_gen_op4(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), - tcgv_i64_arg(a3), a4); -} - /* Generic ops. */ =20 void gen_set_label(TCGLabel *l) @@ -777,6 +763,23 @@ static void gen_extract(TCGType type, TCGTemp *dst, TC= GTemp *src, } } =20 +static void gen_extract2(TCGType type, TCGTemp *dst, TCGTemp *lo, TCGTemp = *hi, + unsigned int ofs) +{ + unsigned width =3D tcg_type_size(type) * 8; + + tcg_debug_assert(ofs <=3D width); + if (ofs =3D=3D 0) { + gen_mov(type, dst, lo); + } else if (ofs =3D=3D width) { + gen_mov(type, dst, hi); + } else if (lo =3D=3D hi) { + gen_rotri(type, dst, lo, ofs); + } else { + gen_op_ttti(INDEX_op_extract2, type, dst, lo, hi, ofs); + } +} + static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src) { gen_op_tt(INDEX_op_extrh_i64_i32, TCG_TYPE_I32, dst, src); @@ -1225,25 +1228,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -/* - * Extract 32-bits from a 64-bit input, ah:al, starting from ofs. - * Unlike tcg_gen_extract_i32 above, len is fixed at 32. - */ -void tcg_gen_extract2_i32(TCGv_i32 ret, TCGv_i32 al, TCGv_i32 ah, - unsigned int ofs) -{ - tcg_debug_assert(ofs <=3D 32); - if (ofs =3D=3D 0) { - tcg_gen_mov_i32(ret, al); - } else if (ofs =3D=3D 32) { - tcg_gen_mov_i32(ret, ah); - } else if (al =3D=3D ah) { - tcg_gen_rotri_i32(ret, al, ofs); - } else { - tcg_gen_op4i_i32(INDEX_op_extract2, ret, al, ah, ofs); - } -} - void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) { @@ -1780,25 +1764,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -/* - * Extract 64 bits from a 128-bit input, ah:al, starting from ofs. - * Unlike tcg_gen_extract_i64 above, len is fixed at 64. - */ -void tcg_gen_extract2_i64(TCGv_i64 ret, TCGv_i64 al, TCGv_i64 ah, - unsigned int ofs) -{ - tcg_debug_assert(ofs <=3D 64); - if (ofs =3D=3D 0) { - tcg_gen_mov_i64(ret, al); - } else if (ofs =3D=3D 64) { - tcg_gen_mov_i64(ret, ah); - } else if (al =3D=3D ah) { - tcg_gen_rotri_i64(ret, al, ofs); - } else { - tcg_gen_op4i_i64(INDEX_op_extract2, ret, al, ah, ofs); - } -} - void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619936; cv=none; d=zohomail.com; s=zohoarc; b=DjAg9Ev8RaG98phHdMiu3DB7Lzn7jAsvCPyW25OvS9uWd4O+T8xJrnrljXys6NN9BA3RKc1UH7G/MOMvUim8JViqWGeH62GVAJgXnjPN1kghLXkhModZtuZA2hJHDb5CptNNji/iAhznfulsmZoBRC7b20rXChl6Bl94YbjJ22w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619936; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=kLu6Wqk57UMkOUoF7hXNbINLwaGB4za07LnDfLySSDI=; b=aBYH5l/3yqom0WVbitxjF41g3VY2SYRo14LNujSegBTgNTp50bjw3MjxF8A0k2dL23+dDcR3P5yHbFZZbfUEmkqRsmMeY9YhBmxwEs/rsew+MqzqNtB10XBY8o08DOo3qDYfyj70Q5rYaP7S0zpcdppGkDQs3aMOkszyImMSgLY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619936040321.255737503922; Wed, 16 Sep 2026 21:38:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qs-0003Uc-3b; Thu, 17 Sep 2026 00:36:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qm-0003Bk-Qt for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:57 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qk-0007v4-R7 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:56 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-396ccd5cf03so351396a91.1 for ; Wed, 16 Sep 2026 21:35:54 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619753; x=1790224553; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=kLu6Wqk57UMkOUoF7hXNbINLwaGB4za07LnDfLySSDI=; b=s30ffKOlCY7xIUPld4gKlXfXcpqiqMSl3LkjhtBGzuEND7Zd05gSC02BqGi1l4WFcd fylQ1w7IOFwrM3xfG5dcAMwE7djimA/Oa5g5g67L+1Dt+r/mg/YRlt/FcyXl6GUwiHja hjcvjyInZ2CHDKgmNZQAY/r90mLAOU+sh5mUyM5JCzl2kl7lU3wuNdcOBQg1Puou/tlD QGnznsUQyb3Z6d1WfetGBf01M/jsaNJ7OOc8ECaqlH+UYK6hpunMszKhRS5JMPhpcqdE glybTb8iULNFYuw/F+Y7Y/gfAf0khkIiN+6zfuOFI0+6ZymaIl17TmLY+wk2gOl0ZEi5 ImDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619753; x=1790224553; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=kLu6Wqk57UMkOUoF7hXNbINLwaGB4za07LnDfLySSDI=; b=qOn3SW7kE1fmjKpCkb9FTjjASEeBrV1eETIUT8U4J5d96eWq1uYp5zGpi0SUHEwBqv n1stRRsiqIwjFOs2JH0PgfvBA/orZOQAxkMTii8/W90X+DAun4yw0OQEbqyh71BswAJL tGkOH4MKk7Zd6vI3S2Dp0paCGnbOYflUErsoDPCmSbLNAaD6+smMZXNDerSbByZXYXOK iYkTEMlB0SBVpZCrBSQJUKvD46LZsqVO4T05yNfKwMjV6g6XNQBLWZH/f6tsA2PAXMUf s3SvBcSuMh4LSqKVl6opoKj/nJcQrRuJj2m+M69ftLU0OZltz4Y8sW4TLZZY/Ngdei3K VgPA== X-Gm-Message-State: AFuF++mzyoZfyoVVlykWA8EzjLCkXqBZVQv8CRXmGBxGqM5NB93+Nk1z MIH9wndYX6EkvxaJQ3p/SlT4m9dyyc0EepepmzLIL4i8JvIEgYsl1dg0DUENSk2HbM7bFcIP8vD COM90 X-Gm-Gg: AYBFou3vaf/ra7u4g/dMBc4uGgUawk9BFDQ44QWMMrCgIGa0uzmEt32fL2UQGCELgdY iamVOyJOxOx/1H7WL/QYU40kg2CYsQNpbh8Qk7mu7TvxFD7fYidJYgNYqa0DPNnB2qbEAjH9cGL MS7SAEtPBhos8sel29gHdv6iCg+ZiKLM2s42LDXXcNP2HfK6dIvURtPNEf4aZ4Dk5o3YR6uoGSO wCSqYfIs0c4v+PumN8ytfCgkq3ZdDPtjyh+iYhvurjWIK6PcEYBJ41pCnDmD7lj1Flq+Mwyyl+N r7DzM0cTPQRlh6BIQ9qG/gSV61kS3ZZTrgZyhvqJsV663O1VlHVM5+Qc8nYqhEv0bE5aF+62sOB vh4juBfcAPGUgFasPn5u+vxi5P9HeNxq26qxCFawC0KrtVLJ7Qnt6L9S2lfJyiMFVu9qI6Wx4ro ReYKZHuoE3EEzjDv2qsU3rK83lqmGKzWsrVXRMeRf/9TWQFtauPI9QH8zEAB2brbWv8nDBgg5vd qc5esA= X-Received: by 2002:a17:90b:3d47:b0:395:5f43:4ec4 with SMTP id 98e67ed59e1d1-39e1e26a235mr11414797a91.0.1789619752990; Wed, 16 Sep 2026 21:35:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 082/101] tcg: Generic expansion of tcg_gen_addcio_* Date: Wed, 16 Sep 2026 18:28:04 -1000 Message-ID: <20260917042823.542588-83-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619936187158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 77 +++++++++++------------------------- 3 files changed, 24 insertions(+), 58 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index c60135d2fe4..60a0dfddf25 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -136,8 +136,6 @@ void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i3= 2 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); -void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, - TCGv_i32 a, TCGv_i32 b, TCGv_i32 ci); void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); @@ -166,8 +164,6 @@ void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i6= 4 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); -void tcg_gen_addcio_i64(TCGv_i64 r, TCGv_i64 co, - TCGv_i64 a, TCGv_i64 b, TCGv_i64 ci); void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 1f6b3e2c464..141c18061e8 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -3,6 +3,7 @@ DEF2(abs, TCGV, TCGV) DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) +DEF5(addcio, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 04faf9bb69a..c534acbdc74 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -430,6 +430,29 @@ static void gen_addi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_addcio(TCGType type, TCGTemp *r, TCGTemp *co, + TCGTemp *a, TCGTemp *b, TCGTemp *ci) +{ + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_addci, type, 0)) { + TCGTemp *zero =3D tcg_constant_internal(type, 0); + TCGTemp *mone =3D tcg_constant_internal(type, -1); + + gen_op_ttt(INDEX_op_addco, type, t0, ci, mone); + gen_op_ttt(INDEX_op_addcio, type, r, a, b); + gen_op_ttt(INDEX_op_addci, type, co, zero, zero); + } else { + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + gen_add(type, t0, a, b); + gen_setcond(type, TCG_COND_LTU, t1, t0, a); + gen_add(type, r, t0, ci); + gen_setcond(type, TCG_COND_LTU, t0, r, t0); + gen_or(type, co, t0, t1); + } +} + static void gen_and(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_and, type, dst, src1, src2); @@ -1250,33 +1273,6 @@ void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv= _i32 al, } } =20 -void tcg_gen_addcio_i32(TCGv_i32 r, TCGv_i32 co, - TCGv_i32 a, TCGv_i32 b, TCGv_i32 ci) -{ - if (tcg_op_supported(INDEX_op_addci, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 zero =3D tcg_constant_i32(0); - TCGv_i32 mone =3D tcg_constant_i32(-1); - - tcg_gen_op3_i32(INDEX_op_addco, t0, ci, mone); - tcg_gen_op3_i32(INDEX_op_addcio, r, a, b); - tcg_gen_op3_i32(INDEX_op_addci, co, zero, zero); - tcg_temp_free_i32(t0); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - - tcg_gen_add_i32(t0, a, b); - tcg_gen_setcond_i32(TCG_COND_LTU, t1, t0, a); - tcg_gen_add_i32(r, t0, ci); - tcg_gen_setcond_i32(TCG_COND_LTU, t0, r, t0); - tcg_gen_or_i32(co, t0, t1); - - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) { @@ -1787,33 +1783,6 @@ void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv= _i64 al, } } =20 -void tcg_gen_addcio_i64(TCGv_i64 r, TCGv_i64 co, - TCGv_i64 a, TCGv_i64 b, TCGv_i64 ci) -{ - if (tcg_op_supported(INDEX_op_addci, TCG_TYPE_I64, 0)) { - TCGv_i64 discard =3D tcg_temp_ebb_new_i64(); - TCGv_i64 zero =3D tcg_constant_i64(0); - TCGv_i64 mone =3D tcg_constant_i64(-1); - - tcg_gen_op3_i64(INDEX_op_addco, discard, ci, mone); - tcg_gen_op3_i64(INDEX_op_addcio, r, a, b); - tcg_gen_op3_i64(INDEX_op_addci, co, zero, zero); - tcg_temp_free_i64(discard); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - - tcg_gen_add_i64(t0, a, b); - tcg_gen_setcond_i64(TCG_COND_LTU, t1, t0, a); - tcg_gen_add_i64(r, t0, ci); - tcg_gen_setcond_i64(TCG_COND_LTU, t0, r, t0); - tcg_gen_or_i64(co, t0, t1); - - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b) { tcg_debug_assert(n > 2); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619929; cv=none; d=zohomail.com; s=zohoarc; b=IFqTScO+1xAO7kn2RxvxkrwnsUtiij+M2AN93Z2ACEodpf7h6K0B49sbbaR7We75HRvR7voXLjKMCDdxLzvpL1qD9b6Emmmw/bvoTN/mCo+JuEgj18VjDKDE05g5nRtekgxyBjyF3YWkPPjvVOtM1ZxKCCwOc3uR/JVLIUI9QIg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619929; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=X37aO0DVHtGqRrYmr1sgHY4ieFdsWL1C1cOZVM0sRR8=; b=VWpPvA36i5OkpDmIgoZG+CfObAC8zeKrLxB3uGVMH0GTCHR0cziuXixczZVFeIZU+VSWYZSKWNEthsodgWc2+K8WbAXwwEhFLOaVNoll6YLFToLKaAD3poBlmUbRaqNPonCKOkAfroQWCYeIZBMj+OKr3EEbX41W12+6/i3PK+A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619929958901.8790465679748; Wed, 16 Sep 2026 21:38:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qs-0003Sp-3m; Thu, 17 Sep 2026 00:36:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qn-0003EK-LQ for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:57 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73ql-0007vE-Q8 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:57 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc4c08393b0so335944a12.0 for ; Wed, 16 Sep 2026 21:35:55 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619754; x=1790224554; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=X37aO0DVHtGqRrYmr1sgHY4ieFdsWL1C1cOZVM0sRR8=; b=qnLz1+D/g8LaKKu3NkGImdsaNHe0RHWxd8HctaYFYHaQpoHNJoQo+EcbBWHpmd9RrJ S2HPygxqv8rA3UxT1WfsNlPfOa9bvNxbKAtJcAztPyrNzwJrHzK1yMQR20MH13TZqb8v gHHnuKgW4XR/xsG+EOjtWHJc2mtAIeRx8kBy0WJjT0VMEhwvaKpAlmIONShp8TM8g+m9 dOKOCW3PUfgIrYXOyXKMX78rrcgWQlMgc5NJSOtekqzBWWWQ5cJ/1Q0X3IuiQ4RqTUAl jaI1bJeZfQGck1q7LuxoIzUK5rwLyaM4++8iWREmqTO4o+Nm/qmKoyqSEBS6H5VFJ+Vi quwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619754; x=1790224554; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=X37aO0DVHtGqRrYmr1sgHY4ieFdsWL1C1cOZVM0sRR8=; b=gFlr4Gw+OcnVK1b7uxRG5EPhzp3kzqiIe/pIfE1gKfElHwTgFzHajBYsUeJqEJwCXz AqTmB1fJSKn7vpLqPXmMiZ/uIqEu24povSgE/gwRpSFEacxzqT029rEP8MLgR1jO+ZyN OATdEx9seGMnvTT2KYmxEepFNQfcV+0TDx2gAf8dS6OarprNrfmk1TxLXMncu7pRwtd8 EpSRjQOPgw+14V1Sk6VByQF1CFjhMAJKXvjJbNCu9v4T8FMuZe+g89D9pwhCHfaPz3TA tHDW7N2cZFzWXeYQ/R9h/E7oCxxmhuO0Gg3vktOkAJERA+FBBgvbhlCtMJKX9GqHbo+C 5CHQ== X-Gm-Message-State: AFuF++m7wcMOInKyW7BpZyrUxlWckr2jZTd9EK2sf8ghh7+5Gx0HGl/A VXcbmlfaFhD1DcpDY7feEh0wbK1Wwr+hVWhjnf3p0JDVmuhiyQtZleM1jBV0XH8O2u4+F5v0PPn z+IxhPX8= X-Gm-Gg: AYBFou0ZjcJUHUPxF1m40rXO8IqwrAFXcLF4QTAFwBVcwyXBMF0AE/vO91jdH6xUD42 u+5zANyH2fiRdTt6ndnpydGUst0JJNoqzMY/8xSODESoGna7ggzwF7HIdzHjz+JRDVIePR9mX8W wmUM6jMH7AERvzo3cfR66ot5p49M63PHRgGSzEPyxlnrWSunU6Fy+yAygFa2T/Lb6qlNmYHMt4X QJHnM8Q/Qx+0L+wGjqpqtDK+JVnPEgMrK3eIjRXcsAMRX9abShMSnFrNS/yt77PfbhxV3bXc7RM VkcCSGDXss93PupZTnRSMwxOcKPBvt4BroHqcGK0HEF9jEy85WgBb5+FvQAsfuz9HjL/8MZJqrq tgpGu3SNcEflI4FwdC/P6pp6IgrCtHXr1AyW6RAZTwvwUMNDoysOWw4ucZsjju2NU4XO2adrPqn VN1aAaeRWipZ2bLyGr/Tr/ayc0Ynk6531PtXMYNMH7Os64NlY1x4ZmsgsjC1nZZlcyhOULFHeh7 iFYJVOX X-Received: by 2002:a17:90b:4b83:b0:398:9bd5:490b with SMTP id 98e67ed59e1d1-39e1e4c4687mr12015690a91.18.1789619753990; Wed, 16 Sep 2026 21:35:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 083/101] tcg: Generic expansion of tcg_gen_add2_* Date: Wed, 16 Sep 2026 18:28:05 -1000 Message-ID: <20260917042823.542588-84-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619930148158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 64 +++++++++++------------------------- 3 files changed, 20 insertions(+), 49 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 60a0dfddf25..d6e185580c5 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,8 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, - TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); @@ -160,8 +158,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, - TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 141c18061e8..f42aeb7d8f5 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -3,6 +3,7 @@ DEF2(abs, TCGV, TCGV) DEF3(add, TCGV, TCGV, TCGV) DEF3(addi, TCGV, TCGV, TINT) +DEF6(add2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV) DEF5(addcio, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(and, TCGV, TCGV, TCGV) DEF3(andi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index c534acbdc74..aa8c3f4b0d2 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -430,6 +430,25 @@ static void gen_addi(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_add2(TCGType type, TCGTemp *rl, TCGTemp *rh, TCGTemp *al, + TCGTemp *ah, TCGTemp *bl, TCGTemp *bh) +{ + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_addci, type, 0)) { + gen_op_ttt(INDEX_op_addco, type, t0, al, bl); + gen_op_ttt(INDEX_op_addci, type, rh, ah, bh); + } else { + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + gen_add(type, t0, al, bl); + gen_setcond(type, TCG_COND_LTU, t1, t0, al); + gen_add(type, rh, ah, bh); + gen_add(type, rh, rh, t1); + } + gen_mov(type, rl, t0); +} + static void gen_addcio(TCGType type, TCGTemp *r, TCGTemp *co, TCGTemp *a, TCGTemp *b, TCGTemp *ci) { @@ -1251,28 +1270,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_add2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, - TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) -{ - if (tcg_op_supported(INDEX_op_addci, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_addco, t0, al, bl); - tcg_gen_op3_i32(INDEX_op_addci, rh, ah, bh); - tcg_gen_mov_i32(rl, t0); - tcg_temp_free_i32(t0); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - tcg_gen_add_i32(t0, al, bl); - tcg_gen_setcond_i32(TCG_COND_LTU, t1, t0, al); - tcg_gen_add_i32(rh, ah, bh); - tcg_gen_add_i32(rh, rh, t1); - tcg_gen_mov_i32(rl, t0); - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) { @@ -1760,29 +1757,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) } } =20 -void tcg_gen_add2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, - TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh) -{ - if (tcg_op_supported(INDEX_op_addci, TCG_TYPE_REG, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - - tcg_gen_op3_i64(INDEX_op_addco, t0, al, bl); - tcg_gen_op3_i64(INDEX_op_addci, rh, ah, bh); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_add_i64(t0, al, bl); - tcg_gen_setcond_i64(TCG_COND_LTU, t1, t0, al); - tcg_gen_add_i64(rh, ah, bh); - tcg_gen_add_i64(rh, rh, t1); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b) { tcg_debug_assert(n > 2); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619983; cv=none; d=zohomail.com; s=zohoarc; b=UX5TQtjQJ5ArKifpIZ+iqNz7WM1QlCdwvL4nTaUJuMdVBC2UI7KmN4l0OCiU0wsm+pCCKu+jS5jj8YyogSNJaALpdl+TuVW2IsP/dQA0usB+ND9Mcuq0mT9bs7XOQQUZN6PEkFytjw/mVrwOIXXK1bhF8hSkkYDO7rWKHZCN06k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619983; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=I2ZPCLfkHtElcRmELbIyv4yFp8iiCx0qQXQzu2SEUDg=; b=dWhSJObNNkmmqjQO3S3kLvzNuK7rXC5kfg6OXXIJKChE0eyDLWMOXuP2HTFk1nlJUGEys8SIXy/XCcIRIan+rjmnubd9oWArTQLsHCD8YdKDdw+PiBAWPs5g9v2imvZGo7Ctgm2zoAsJBocvY1Lv0I2nDGtCihKFS7i4a3CfvXs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619983098892.32083750624; Wed, 16 Sep 2026 21:39:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qv-0003hf-QU; Thu, 17 Sep 2026 00:36:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qo-0003I0-Ih for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:58 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qm-0007vK-LV for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:58 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-39647aa9d52so345113a91.0 for ; Wed, 16 Sep 2026 21:35:56 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619755; x=1790224555; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=I2ZPCLfkHtElcRmELbIyv4yFp8iiCx0qQXQzu2SEUDg=; b=vBy3qYaC4YgqGtpnDXF3FBv1GWeKYag9Ix1VwtxS8+BOb47YhV7jJ/DpoBwgU4t7c3 ZPZeBlhbH8MvibT+lhXpTS40ekD09IOtB7+jeYXRAgbPesSRcnpaOu8TV76k3Nw0fwkZ 0rAgeJgnSYSkDzz/mOewx0ukAg+7v6JJLpcnXvir5WeSOWHHDj8n803SWcHZE7xKXam7 GFKYotG5siw2z6hi5s2XcPcg10doeKnXD2ECs4bLV4km1zd4LldDK9wLeFbOZf97geeA PZV78NMKDjMI9lJ6XXZp1yv0Ufqrq6r1p6zKZ2LWUTrMmPKvq7CFG2H0wViDDFymaZYd KLkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619755; x=1790224555; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=I2ZPCLfkHtElcRmELbIyv4yFp8iiCx0qQXQzu2SEUDg=; b=cU5n2YDUcFF04MV09lliZE+az8uOmoFWRkKVuqMjNdw8xsF0MBOkgdi6BvsVn+N1BM qxoR5wcDFNIR7A+JjeVZplVpqEoNeTtI2eQgH7BNKPMpsDW7Bd/hp/HzPMeGYe+Ud3ov avb+PPoy/ZivzxvbNFmEXgZBn+hFGAU6y07x/lb11CDVZMv9HPyE32dmoIO2OxQx/uuj 6No269DKUtucCaLW8vLQnN930woe8mw7eF9jlb4EXUW0BrW8JsLdVr9GKjnbCPtqQ//T d2pYRM+Cidd1Ul+ChqmwYPSwomPwpFoFPlhq2L49bfB9V/aVSd1BZJ2wPMs/O8R4KZGj Y1qg== X-Gm-Message-State: AFuF++l2iUmJjbAOjEqRdsDkjhdY+7HSqRwmylfIuXDYcAkfdMo7Medt exz+rkTQoOLViIQpaK9CHfbuOohCWucf2YX0TxIDcs0CKQO7fx3flZqwdbAG4tA16SgC46VCGOI e5hiB X-Gm-Gg: AYBFou3K4QipX/zBcxaDVW/u64EoZK1kFtgYbLuYRA2UINXR/DaQHUgQ+DzyLXVv/Se v3zk9sUzNOy8JfFqHitXYioaHKlncgQG789dylid9A7cSAoMsmgu1wTldU5H/qQ+nFPMCxDQWit LXzDCcVGPjFvDtv8p92pzy8Yr/m2fxetaeknnUOecnxJObS2SF+Etu6lJ0fRfUiQhuLK4xTr+wY PbAwr9DojIyRSCX9aJaRjPEYzup8yQ2McAR62x+81k+Mgat9wEZxU90A+LWeyptedDCRRDfLldY x3eT+COR21XQSuaJKLwZHewVkOKymttNQ0jNqjgwTZMtJNTDKo8q1+caDO6ulSnOMpugbgUQtDs hlhSbq/QbNegpZyISDVZJUI8lUiZKKKEHQs3PZWyKfCKOtYwkMnzukSaelpDXUR91fO0o8+vf93 YoGWqNva6J7WLyqnT30zmyhGYmgkAo7FRjLCo3Cut36voFKtMjpKFWszaB/lml7FqqyMmxdu5C7 hWEWW+R X-Received: by 2002:a17:90b:1e0c:b0:39d:fd21:75cf with SMTP id 98e67ed59e1d1-39e3615cb5amr3347305a91.26.1789619754901; Wed, 16 Sep 2026 21:35:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 084/101] tcg: Generic expansion of tcg_gen_sub2_* Date: Wed, 16 Sep 2026 18:28:06 -1000 Message-ID: <20260917042823.542588-85-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619984487158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 4 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 64 +++++++++++------------------------- 3 files changed, 20 insertions(+), 49 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index d6e185580c5..1e5282af98d 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,8 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, - TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh); void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); @@ -158,8 +156,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); =20 /* 64 bit ops */ =20 -void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, - TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh); void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index f42aeb7d8f5..5a472a910c6 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -62,6 +62,7 @@ DEF3(smax, TCGV, TCGV, TCGV) DEF3(smin, TCGV, TCGV, TCGV) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) +DEF6(sub2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(subfi, TCGV, TINT, TCGV) DEF3(umax, TCGV, TCGV, TCGV) DEF3(umin, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index aa8c3f4b0d2..4559af91358 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1206,6 +1206,25 @@ static void gen_subi(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) gen_addi(type, dst, src1, -src2); } =20 +static void gen_sub2(TCGType type, TCGTemp *rl, TCGTemp *rh, TCGTemp *al, + TCGTemp *ah, TCGTemp *bl, TCGTemp *bh) +{ + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + + if (tcg_op_supported(INDEX_op_subbi, type, 0)) { + gen_op_ttt(INDEX_op_subbo, type, t0, al, bl); + gen_op_ttt(INDEX_op_subbi, type, rh, ah, bh); + } else { + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + gen_sub(type, t0, al, bl); + gen_setcond(type, TCG_COND_LTU, t1, al, bl); + gen_sub(type, rh, ah, bh); + gen_sub(type, rh, rh, t1); + } + gen_mov(type, rl, t0); +} + static void gen_subfi(TCGType type, TCGTemp *dst, int64_t src1, TCGTemp *s= rc2) { if (src1 =3D=3D 0) { @@ -1270,28 +1289,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_sub2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 al, - TCGv_i32 ah, TCGv_i32 bl, TCGv_i32 bh) -{ - if (tcg_op_supported(INDEX_op_subbi, TCG_TYPE_I32, 0)) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_subbo, t0, al, bl); - tcg_gen_op3_i32(INDEX_op_subbi, rh, ah, bh); - tcg_gen_mov_i32(rl, t0); - tcg_temp_free_i32(t0); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - tcg_gen_sub_i32(t0, al, bl); - tcg_gen_setcond_i32(TCG_COND_LTU, t1, al, bl); - tcg_gen_sub_i32(rh, ah, bh); - tcg_gen_sub_i32(rh, rh, t1); - tcg_gen_mov_i32(rl, t0); - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2) { if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I32, 0)) { @@ -1799,29 +1796,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *= a, TCGv_i64 *b) } } =20 -void tcg_gen_sub2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 al, - TCGv_i64 ah, TCGv_i64 bl, TCGv_i64 bh) -{ - if (tcg_op_supported(INDEX_op_subbi, TCG_TYPE_REG, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - - tcg_gen_op3_i64(INDEX_op_subbo, t0, al, bl); - tcg_gen_op3_i64(INDEX_op_subbi, rh, ah, bh); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_sub_i64(t0, al, bl); - tcg_gen_setcond_i64(TCG_COND_LTU, t1, al, bl); - tcg_gen_sub_i64(rh, ah, bh); - tcg_gen_sub_i64(rh, rh, t1); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2) { if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619844; cv=none; d=zohomail.com; s=zohoarc; b=MP91XZXIVr+BpFXM5U1n3rAuJvmtg+oNZ/SHVLp7m5VM7VIHXIBbwpWcw/KxQjogN5OWeDM/aEbjC1LNdTD7qC7/SV2c8HWvaHx6fVn+ejtgBTZW5U454g3sAy9t6BGZFE0OExXVfhfk6RxV1/gpYzXCgRd2gYLC+n36lVky3AY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619844; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=DNKqOeXMHorxLMBLmo6QaCMfgwSxgQZDu3caW+N75eA=; b=O7M3MtAft3THdAyi55rBiLEvmXTyDnil88R9cFWZhACaq1pfjW4dJ3PsxMsLOjgKVLc4Cz+8yZN9Dmz4vLLhZq/5t+Wu/Po+CUzIis0xVqQXxWEju3bN+2JWCTrn94Hq4A2hk3+y24TZ+DdnqByHaMStwQaSEwDCEznyYplOoW0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619844625747.4705660293713; Wed, 16 Sep 2026 21:37:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73r2-0003zO-FV; Thu, 17 Sep 2026 00:36:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qq-0003Ng-21 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:00 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qn-0007va-Ss for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:35:59 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-396ccb652d7so335148a91.0 for ; Wed, 16 Sep 2026 21:35:57 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619756; x=1790224556; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=DNKqOeXMHorxLMBLmo6QaCMfgwSxgQZDu3caW+N75eA=; b=xw4ZwfoeSctZeUWLTuA4is2L9FaxmTiQWlc4NYNEheTLd52wHOFd6zrlIyE9CHMfTn KHxK0buANWP6r36TSe+OP0Bp1dVQxH1Z03nJQ/cRBwQiaSLOK/3s3gh2VQVy6+c2/7fB DJtA8LLGu6GP4Iu4jaaus1M26ziQjPGSwkISunes6A5bAM7W5WM3oDob6egJa5VU/xw6 kubPIwVW+oayHDzDAi9npZKNj30OKjx8iGiRQXDG5Ptuz1bpPsiqMG/PJbPCAUTLH1f/ D+O7xkFq17f7Uxn+q1QTLpKZ/deHHGVNTDIlKoXk2rJ9iZMgDXlYrAUf06Za9tTJPjhP WNzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619756; x=1790224556; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=DNKqOeXMHorxLMBLmo6QaCMfgwSxgQZDu3caW+N75eA=; b=qPclPFA5k9gt94vwdkofc7I2BLxHhvwnhnkUGpYx572yiH8HKqYwc8HsK+js8hDUxM a1j89OUzdmHdzVzzHLRqMm47pxRli0/DKyElJWN5f3RTbdiLSB4gF/WVjBpYz1SP+IUv qt9P7lxVOK7pb/9ED894WhzFVVV7cT5QgISM5Sr96Q1z8pXh+iE4CmXeyEiMwsqJTthE s6JsO5MjzSMv75rpHNbgDzS3N0q34HIFP6XaxdU1u+ahrUyH80n2bSSZqkloTnS1Fym3 /LDnpSmORdBL+XLQF0UuMHHdB9wXpyQ9u4NjN24EURWEoZzMBJXgu7zCnkKA05XbkbXA dgnw== X-Gm-Message-State: AFuF++liEKCSHQ915RH9gpUz7yQ0n3EMosQQOFmy0uuLzDUvGxKHZEff L9wPA0bUIVTXIKlSazuBQiAmdgtUajzmMojzCRTOSeBkeZ6aLmf30hCImQo5uza0lQZuJkUU5TB TFROQyiw= X-Gm-Gg: AYBFou0jIZWYsjpp4qTv9nAo7dXzAegi/vqBvVgRO0CKDgV7K57WDxi2b5on3JNjkn2 6etZ3UoqdNPvkjdcY+PnoFQcdv7NgfSMNQ318x2sV0SeD8FuNJgxM4nqGDmYqRl7RQ1j4aSqGMm jsFPEIs+eQthZS7mY7/VO2ge1U/dKvQTwu0Nr4ZZcvN8EupawO3vt5SPuEHNj+W9x3Z+2kIEO8T GzlSPXqm8CQgqnuZI2HDgfeH1sHRjcMEH6mP5k4azcN/sSksEiYN90JJhK9v2fevkHVCwSxttSr XP9j9Skt9zF9WK6M+FSeRR1PBqLKtSItuqxS2ekYcAM52L545W/VAYktPgMDT8bWIaJdF6R4Srk aUdP7YtFdqnEEuxilA1/XwIrw8X0xa6qPRyZUG3KTnC39T4HgDiRrAQPipfs3GsMzzu7D3c1yiw KCd3a5EI5wl0Pxoi8CatKYxc4euartA4/VmYpAFVGjiFIUSjTfFUax8f5O+2ciiCOv2FZKg3Eva O+XH+c= X-Received: by 2002:a17:90a:10c1:b0:39e:1ec9:dc8d with SMTP id 98e67ed59e1d1-39e1ec9e479mr7970017a91.24.1789619756086; Wed, 16 Sep 2026 21:35:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 085/101] tcg: Generic expansion of tcg_gen_mulu2_* Date: Wed, 16 Sep 2026 18:28:07 -1000 Message-ID: <20260917042823.542588-86-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619845916158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 79 +++++++++++++++++------------------- 3 files changed, 39 insertions(+), 43 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 1e5282af98d..3ad966b72c1 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,7 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); @@ -157,7 +156,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); -void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 5a472a910c6..75ada0d0473 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -34,6 +34,7 @@ DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) +DEF4(mulu2, TCGV, TCGV, TCGV, TCGV) DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) DEF4(negsetcond, TCGCond, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 4559af91358..5219140f5fb 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -135,6 +135,13 @@ static TCGOp *gen_op_tttii(TCGOpcode opc, TCGType type, temp_arg(t2), a3, a4); } =20 +static TCGOp *gen_op_tttt(TCGOpcode opc, TCGType type, TCGTemp *t0, + TCGTemp *t1, TCGTemp *t2, TCGTemp *t3) +{ + return tcg_gen_op4(opc, type, temp_arg(t0), temp_arg(t1), + temp_arg(t2), temp_arg(t3)); +} + static TCGOp *gen_op_ttttt(TCGOpcode opc, TCGType type, TCGTemp *t0, TCGTemp *t1, TCGTemp *t2, TCGTemp *t3, TCGTemp *t4) @@ -882,6 +889,37 @@ static void gen_muli(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_mulu2(TCGType type, TCGTemp *rl, TCGTemp *rh, + TCGTemp *src1, TCGTemp *src2) +{ + if (tcg_op_supported(INDEX_op_mulu2, type, 0)) { + gen_op_tttt(INDEX_op_mulu2, type, rl, rh, src1, src2); + } else if (tcg_op_supported(INDEX_op_muluh, type, 0)) { + g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); + + gen_mul(type, t, src1, src2); + gen_op_ttt(INDEX_op_muluh, type, rh, src1, src2); + gen_mov(type, rl, t); + } else if (type =3D=3D TCG_TYPE_I32) { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(TCG_TYPE_I64); + + /* Simply extend and use host 64-bit multiply. */ + gen_extu_i32_i64(t0, src1); + gen_extu_i32_i64(t1, src2); + gen_mul(TCG_TYPE_I64, t0, t0, t1); + gen_extrl_i64_i32(rl, t0); + gen_extrh_i64_i32(rh, t0); + } else { + g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); + + gen_mul(TCG_TYPE_I64, t, src1, src2); + gen_helper_muluh_i64(temp_tcgv_i64(rh), temp_tcgv_i64(src1), + temp_tcgv_i64(src2)); + gen_mov(TCG_TYPE_I64, rl, t); + } +} + static void gen_nand(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) { if (tcg_op_supported(INDEX_op_nand, type, 0)) { @@ -1289,28 +1327,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_mulu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2) -{ - if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I32, 0)) { - tcg_gen_op4_i32(INDEX_op_mulu2, rl, rh, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_muluh, TCG_TYPE_I32, 0)) { - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_mul, t, arg1, arg2); - tcg_gen_op3_i32(INDEX_op_muluh, rh, arg1, arg2); - tcg_gen_mov_i32(rl, t); - tcg_temp_free_i32(t); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_extu_i32_i64(t0, arg1); - tcg_gen_extu_i32_i64(t1, arg2); - tcg_gen_mul_i64(t0, t0, t1); - tcg_gen_extr_i64_i32(rl, rh, t0); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2) { if (tcg_op_supported(INDEX_op_muls2, TCG_TYPE_I32, 0)) { @@ -1796,25 +1812,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *= a, TCGv_i64 *b) } } =20 -void tcg_gen_mulu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2) -{ - if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I64, 0)) { - tcg_gen_op4_i64(INDEX_op_mulu2, rl, rh, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_muluh, TCG_TYPE_I64, 0)) { - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - tcg_gen_op3_i64(INDEX_op_mul, t, arg1, arg2); - tcg_gen_op3_i64(INDEX_op_muluh, rh, arg1, arg2); - tcg_gen_mov_i64(rl, t); - tcg_temp_free_i64(t); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_mul_i64(t0, arg1, arg2); - gen_helper_muluh_i64(rh, arg1, arg2); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - } -} - void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2) { if (tcg_op_supported(INDEX_op_muls2, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619918; cv=none; d=zohomail.com; s=zohoarc; b=WZj8kZc2qdW3yRhSfHUO4y5P6znfXg9K+BVbpBNPflWJNmnfinXl7XnZ0sq09Ni6JEKDvazf30Y1wHxsHkBpVacX9sDQWBqBOI7D69u2x2IZsY58pxg2oXvno+Xg9uR8CQ293vfp9OzFUjEObNu6mK7ATQWzlitR+hJHgJmIzQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619918; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=/087KF7xsjcRBKjQv0Z7hl413GlOcT4aAI/LPKV8L34=; b=hBPRs9pus2KpJa58QafcuzeHGC8S0Gfl3ZXg95max/gJCldPMi2O/RbwSTdUo1PXN+Xln6eapZQCMsRnaCrDLX6rglni+iil8KC21kPB6e2zMw2bCRHj7FayLBBBA+vi2d+QZXXvK5uP1HZLj9OShdQdlfd7cbAGyfnsU+dkUoY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619918673237.33887685840944; Wed, 16 Sep 2026 21:38:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ri-0005v0-0l; Thu, 17 Sep 2026 00:36:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qq-0003OM-MN for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:00 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qo-0007vv-Jx for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:00 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-396ccd4f99cso404100a91.0 for ; Wed, 16 Sep 2026 21:35:58 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619757; x=1790224557; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=/087KF7xsjcRBKjQv0Z7hl413GlOcT4aAI/LPKV8L34=; b=WhCaKtwZ1B36TLcshKuzZ3VQTRSyyjxpi/k77Efh9fchyz8Q9AOq8wTyW/9zGmJ+ne fYYpa+PQNChCxFSoSqF3LOTp2J3zhY8LeA+uSULXOhCtjEbKqH0CmLNzAEmW06E+LUqI psa2mnQOQOG1s3FZ9fCoSpdAat0yV4H3keGdgG+2CyqQ31Ahsed7/uCuIX+XxqTkyiYt JlgfHmOlVjIVAxIUZiYhQgITwQMlVfqWG9iKYweCPK+VDVC/tss1xIizF5nLj3a/OTuz ZpPG2fF8p3CCT7zJhM0slV60DCsoc012SP46TpVRChGUfvp77TyF+ihDSGTb4sEcZ1pM zqHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619757; x=1790224557; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=/087KF7xsjcRBKjQv0Z7hl413GlOcT4aAI/LPKV8L34=; b=OOZUMlUhAwNyGqDlllR77r6NAFYbrIC9gyKSiTy+CMTbiscddADg2YFTNSdBqDO4jq o+KWKJSUhXA50ZRPH6pjSpMqVmVBG9E7NMyf4XmDvplRs64Z04wvSFvr91k62hqZy0pz q0pBlxSq21FIO2QI7FAhyHyibxkbkVYh5pdSA/z922SLnUw7x0O2bpU/ScS9nhs5fOUP H5gghUcA8jsohj4rNL5y43ZTHwe6rKFWsdkTcZNaclCGZQ1PYnxrzfykxcSiI1EF6RSi 5IXMbUPOkHGOVpbQBhhVk193KmfB/7xO8Ef5ZaymlRv7s3fBx9GDm4N+FH8Olz0usQ1k WDvg== X-Gm-Message-State: AFuF++l6AV04XQ5oZ3KmWAHcq8juQmgMNCRTNl/Q19Dq7N6a/IExvWxU pDXaZDIWAhp1vETLCfSyvbt8K82s9A774hnk8mJQ4NQkOEDLQz0Qan35eZKh+ZdrR/cgp91pUru TB/8z X-Gm-Gg: AYBFou3rI+i30mrcWnMt56TJK10K9mhK0l1uNFwrQjWnCYNIc1Y4w8ZyIyyQw1RI3+a hzp7SZuxa2+fUwf5poI1mbQs/3YpNSSX0AsKAMtzon7Fv8bd51fwjS/f9OWjM4fNU8yjsiZmAxu KTULYAXaiP0BiSFXH9epAEgDIq7cRafqYwQhzRRy2xXlu1v928huVREvf6r0B/b/+h7d/xbZAbi TdcmikUG/0XWR3jfXU7ZFMiciuR0v1A1Ooykhqp/1Ne3XSo7UVWF7eQUVpfDKMoxt6YDMrwquR+ i9jai4SQSUNjlgtMAXAlYnT3hjbgUDnIzp8pM8U0luizPBdZlHfpVxnVEJJsYQWwJDoAAJkq6nO DJsvKuLLfCwlrWaq8XUZ/lERl8bqvzF2Rccl2mARu5HN+L+4J3srSXkc0GdtZ9Jt7elnRm3vVb7 6bRagnofyROMDLeQwvDbh5hhzNlsqbByMKbflQ3aetkDd2eE7aISOSsUpZzk475cD4oJo1anbdX rn4q34J X-Received: by 2002:a17:90b:3a43:b0:39d:f5b1:e365 with SMTP id 98e67ed59e1d1-39e1e559b78mr12536611a91.25.1789619757137; Wed, 16 Sep 2026 21:35:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 086/101] tcg: Generic expansion of tcg_gen_muls2_* Date: Wed, 16 Sep 2026 18:28:08 -1000 Message-ID: <20260917042823.542588-87-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619920125158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 131 +++++++++++++---------------------- 3 files changed, 51 insertions(+), 83 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 3ad966b72c1..b0ce35df411 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -132,7 +132,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); =20 /* 32 bit ops */ =20 -void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -156,7 +155,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_t= arget_long offset); /* 64 bit ops */ =20 void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); -void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 75ada0d0473..5e169258ea3 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -34,6 +34,7 @@ DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) DEF3(mul, TCGV, TCGV, TCGV) DEF3(muli, TCGV, TCGV, TINT) +DEF4(muls2, TCGV, TCGV, TCGV, TCGV) DEF4(mulu2, TCGV, TCGV, TCGV, TCGV) DEF3(nand, TCGV, TCGV, TCGV) DEF2(neg, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 5219140f5fb..d58d1c81c4b 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -183,13 +183,6 @@ static void DNI tcg_gen_op2_i64(TCGOpcode opc, TCGv_i6= 4 a1, TCGv_i64 a2) tcg_gen_op2(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2)); } =20 -static void DNI tcg_gen_op3_i32(TCGOpcode opc, TCGv_i32 a1, - TCGv_i32 a2, TCGv_i32 a3) -{ - tcg_gen_op3(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), - tcgv_i32_arg(a2), tcgv_i32_arg(a3)); -} - static void DNI tcg_gen_op3_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, TCGv_i64 a3) { @@ -223,20 +216,6 @@ static void DNI tcg_gen_ldst_op_i64(TCGOpcode opc, TCG= v_i64 val, tcgv_ptr_arg(base), offset); } =20 -static void DNI tcg_gen_op4_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2, - TCGv_i32 a3, TCGv_i32 a4) -{ - tcg_gen_op4(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2), - tcgv_i32_arg(a3), tcgv_i32_arg(a4)); -} - -static void DNI tcg_gen_op4_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2, - TCGv_i64 a3, TCGv_i64 a4) -{ - tcg_gen_op4(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), - tcgv_i64_arg(a3), tcgv_i64_arg(a4)); -} - /* Generic ops. */ =20 void gen_set_label(TCGLabel *l) @@ -889,6 +868,56 @@ static void gen_muli(TCGType type, TCGTemp *dst, TCGTe= mp *src1, int64_t src2) } } =20 +static void gen_muls2(TCGType type, TCGTemp *rl, TCGTemp *rh, + TCGTemp *src1, TCGTemp *src2) +{ + if (tcg_op_supported(INDEX_op_muls2, type, 0)) { + gen_op_tttt(INDEX_op_muls2, type, rl, rh, src1, src2); + } else if (tcg_op_supported(INDEX_op_mulsh, TCG_TYPE_I32, 0)) { + g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); + + gen_mul(type, t, src1, src2); + gen_op_ttt(INDEX_op_mulsh, type, rh, src1, src2); + gen_mov(type, rl, t); + } else if (type =3D=3D TCG_TYPE_I32) { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + + /* Simply extend and use host 64-bit multiply. */ + gen_ext_i32_i64(t0, src1); + gen_ext_i32_i64(t1, src2); + gen_mul(TCG_TYPE_I64, t0, t0, t1); + gen_extrl_i64_i32(rl, t0); + gen_extrh_i64_i32(rh, t0); + } else if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I64, 0) || + tcg_op_supported(INDEX_op_muluh, TCG_TYPE_I64, 0)) { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t2 =3D NULL; + g_autoptr(TCGTemp) t3 =3D NULL; + + gen_mulu2(TCG_TYPE_I64, t0, t1, src1, src2); + + /* Adjust for negative inputs. */ + t2 =3D tcg_temp_new_ebb(type); + t3 =3D tcg_temp_new_ebb(type); + gen_sari(TCG_TYPE_I64, t2, src1, 63); + gen_sari(TCG_TYPE_I64, t3, src2, 63); + gen_and(TCG_TYPE_I64, t2, t2, src2); + gen_and(TCG_TYPE_I64, t3, t3, src1); + gen_sub(TCG_TYPE_I64, rh, t1, t2); + gen_sub(TCG_TYPE_I64, rh, rh, t3); + gen_mov(TCG_TYPE_I64, rl, t0); + } else { + g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); + + gen_mul(TCG_TYPE_I64, t, src1, src2); + gen_helper_mulsh_i64(temp_tcgv_i64(rh), temp_tcgv_i64(src1), + temp_tcgv_i64(src2)); + gen_mov(TCG_TYPE_I64, rl, t); + } +} + static void gen_mulu2(TCGType type, TCGTemp *rl, TCGTemp *rh, TCGTemp *src1, TCGTemp *src2) { @@ -1327,28 +1356,6 @@ static void gen_xori(TCGType type, TCGTemp *dst, TCG= Temp *src1, int64_t src2) =20 /* 32 bit ops */ =20 -void tcg_gen_muls2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 a= rg2) -{ - if (tcg_op_supported(INDEX_op_muls2, TCG_TYPE_I32, 0)) { - tcg_gen_op4_i32(INDEX_op_muls2, rl, rh, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_mulsh, TCG_TYPE_I32, 0)) { - TCGv_i32 t =3D tcg_temp_ebb_new_i32(); - tcg_gen_op3_i32(INDEX_op_mul, t, arg1, arg2); - tcg_gen_op3_i32(INDEX_op_mulsh, rh, arg1, arg2); - tcg_gen_mov_i32(rl, t); - tcg_temp_free_i32(t); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - tcg_gen_ext_i32_i64(t0, arg1); - tcg_gen_ext_i32_i64(t1, arg2); - tcg_gen_mul_i64(t0, t0, t1); - tcg_gen_extr_i64_i32(rl, rh, t0); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2) { TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); @@ -1812,44 +1819,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *= a, TCGv_i64 *b) } } =20 -void tcg_gen_muls2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 a= rg2) -{ - if (tcg_op_supported(INDEX_op_muls2, TCG_TYPE_I64, 0)) { - tcg_gen_op4_i64(INDEX_op_muls2, rl, rh, arg1, arg2); - } else if (tcg_op_supported(INDEX_op_mulsh, TCG_TYPE_I64, 0)) { - TCGv_i64 t =3D tcg_temp_ebb_new_i64(); - tcg_gen_op3_i64(INDEX_op_mul, t, arg1, arg2); - tcg_gen_op3_i64(INDEX_op_mulsh, rh, arg1, arg2); - tcg_gen_mov_i64(rl, t); - tcg_temp_free_i64(t); - } else if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I64, 0) || - tcg_op_supported(INDEX_op_muluh, TCG_TYPE_I64, 0)) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t2 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t3 =3D tcg_temp_ebb_new_i64(); - tcg_gen_mulu2_i64(t0, t1, arg1, arg2); - /* Adjust for negative inputs. */ - tcg_gen_sari_i64(t2, arg1, 63); - tcg_gen_sari_i64(t3, arg2, 63); - tcg_gen_and_i64(t2, t2, arg2); - tcg_gen_and_i64(t3, t3, arg1); - tcg_gen_sub_i64(rh, t1, t2); - tcg_gen_sub_i64(rh, rh, t3); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - tcg_temp_free_i64(t2); - tcg_temp_free_i64(t3); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - tcg_gen_mul_i64(t0, arg1, arg2); - gen_helper_mulsh_i64(rh, arg1, arg2); - tcg_gen_mov_i64(rl, t0); - tcg_temp_free_i64(t0); - } -} - void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2) { TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619842; cv=none; d=zohomail.com; s=zohoarc; b=PcOTQe85TK/fzxIlBceKw6pAs+WkoP1SQQjiOiBl3+CgMx2SryvqWCOn8F2zg1ZA5vNVa/pUvudeXeH2dh4Bqodb91A0oi3PljI/6uBSyCZBfJkk5IJUHbVZ/4VGrPW0OEq4AOZLyvQUXjH29rq5uW8jRkJD1YdZF6r8Iy8tiwY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619842; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=W+JgBN35vqPMsZk+u76UTaj7IIgPbC7+hvkUk9eqOfc=; b=kDV2GlHw3hZ1Cdj3c1QZhoyiEdR07n5HzQ2YRMhv55Ul38gSudN19bRqaWDZIc4Y168JxYcZrgcg+bHNs54mIYStY+3wL3qU5u6MD4PkzpnYtKjFiGJUAexNHjJub0vmMamb/WFlIn19LJoZEkjmb5zRxtjteKfH9tG4YvlaWJ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619842024268.18061677482785; Wed, 16 Sep 2026 21:37:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qw-0003kG-1O; Thu, 17 Sep 2026 00:36:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qr-0003Vl-VM for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:02 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qq-0007wA-5l for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:01 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccd5cf02so265866a91.3 for ; Wed, 16 Sep 2026 21:35:59 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619758; x=1790224558; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=W+JgBN35vqPMsZk+u76UTaj7IIgPbC7+hvkUk9eqOfc=; b=u9bVbbFC4fI7N51wA1j5XVGbN/9bLrb+xT2LSvgfWvhstvxd2q2uQOPi15RKh8beKe xah2/4y+k7YBqvhi/M161n9L++SWCy9OK2uWxd2LpDX/nJnyzAvxdJCqxMIcItFcO+Mp elgGN3FXbwcflqGJQoYkVaId57zYchSGsbRsdHtNeK0n95Q85u5+sLjV+v2TzPN19T07 KC4NNvtsiHwXEguZAjztcFAv4jZI9AGqYvhGyinP1Hcq/jbZoiQy4ARo6JVb/eu/qP6G vSOjW6G1fRTZbWqGefsDy0y96GB9tchY0W+miXc/lLBjAh08HXtczVTLUh9J+nLIPjJI 7MjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619758; x=1790224558; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=W+JgBN35vqPMsZk+u76UTaj7IIgPbC7+hvkUk9eqOfc=; b=t8UjZaIWTNOCwjV4sQZlkz0syT1Z7I3JMiz+FGWfzhvJ8DWIW7SdCDf3i3nHs4kvxH co25YOKgUfwcdSx03/xJQhRYMLFuPtC8aKrjiCLgXGbG/HJTAT7jaecaH8NxNQhQOcJj lotjzTD183AJrGP9KzywG7/cpvog+I99nz8lM2nNhamfHIPMwG7y6xsABZ7AryABEW77 dvf5tdm09eEKD1akqueWXekZ7VSgLaWwxzhkBXPrMs99+VVQMFSlt3t62YzW0qdScUzC lzPVnVrOOVNsK/18PuvVV+71MxMpOEH8Tjb+7MbwvdKcp7Qp4Eq1WDey6VGRnB3E8LEP G7Nw== X-Gm-Message-State: AFuF++lgeNJeBy/oQEJhzDsj805A0aSsaHM7iSecDOi3M6zDngeT6WZk 0Jz00IqEQ6wM4PkYiXnUP03l6nDPdtobWsJCltHCrt0Y5aCwsH569k3368p9iWtBtuQ4LNPlSZy 3qLfgUnU= X-Gm-Gg: AYBFou0W6EDRcHSbCU7X3FUumefVgNUb0h18rlJ9g8GNKiZQ4v8U9Pzdrkn6lczUr+r NyFEWEXsmzWdTuiB9R7yvM+RZvo+m9CiOoyHzeA0rNKBi1v1nllWsD6DclgZUzwW9twtwQUmBwu ZQ3VTnTN9oHb50X5E9hcyimdhDX3pZsETw3kpE5BgEBFWhsS9a4dGqekqighYczKUjG142+aN/V +1uzGcLnwJcnkVl6SrJCeXsbFX0gPT7HsXaTUcoDsO4i/fY6VYB0iILwFF83aq/ajtW5YeqfaHa qV1EOXy/iVIsXmht7ZT4Cj92WiRwXzbZ9OQYHi2fG1A3feC2JgVA+IfhBxI5mb7FrGr4KO0M+tu ku2LdsYeeCUCxu0+xQIFmj6GsZh3Nlgh0tFKVmBXL5s0vIsnCrMrNr/+YP5fYgyG5HfFIWqXhkD 95cgq5XF1NMBLQKNQXPusLYUbP6tGq6M8prlj2vL66SBLf5Y1Fj2PGPX+ApbDkdRJbvCDFuA3WC ZW0N7s= X-Received: by 2002:a17:90b:384c:b0:39d:8794:5564 with SMTP id 98e67ed59e1d1-39e1e48a48dmr11179797a91.12.1789619758041; Wed, 16 Sep 2026 21:35:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 087/101] tcg: Use unsigned for flags for bswap and revbit operations Date: Wed, 16 Sep 2026 18:28:09 -1000 Message-ID: <20260917042823.542588-88-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619843795158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 8 ++++---- tcg/tcg-op.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index b0ce35df411..9d83d70a798 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -133,7 +133,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags); +void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -158,13 +158,13 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a= , TCGv_i64 *b); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); -void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); +void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); +void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags); +void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); =20 /* Replicate a value of size @vece from @in to all the lanes in @out */ diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index d58d1c81c4b..fcdee7be963 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1415,7 +1415,7 @@ static void gen_bitswap_i64(TCGv_i64 ret, TCGv_i64 ar= g, uint64_t mask) * With TCG_BSWAP_IZ, x =3D=3D zero, else undefined. * With TCG_BSWAP_OZ, y =3D=3D zero, with TCG_BSWAP_OS y =3D=3D sign, else= undefined. */ -void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, int flags) +void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned flags) { /* Only one extension flag may be present. */ tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); @@ -1616,7 +1616,7 @@ void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg) * With TCG_BSWAP_IZ, x =3D=3D zero, else undefined. * With TCG_BSWAP_OZ, y =3D=3D zero, with TCG_BSWAP_OS y =3D=3D sign, else= undefined. */ -void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, int flags) +void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags) { /* Only one extension flag may be present. */ tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); @@ -1659,7 +1659,7 @@ void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, = int flags) * With TCG_BSWAP_IZ, x =3D=3D zero, else undefined. * With TCG_BSWAP_OZ, y =3D=3D zero, with TCG_BSWAP_OS y =3D=3D sign, else= undefined. */ -void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags) +void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags) { /* Only one extension flag may be present. */ tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); @@ -1726,7 +1726,7 @@ void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg) tcg_gen_rotli_i64(ret, arg, 32); } =20 -void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, int flags) +void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags) { /* Only one extension flag may be present. */ tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619940; cv=none; d=zohomail.com; s=zohoarc; b=SNeHCLPRGFrvfclMMV3JYgm0Agfo6ELr0ltVX8FLEWy+gmVNecRH0vb+5+wYDWbwhw8bZSgtNsThPOUslw3EOtu3E342/U0zB+daIZKHk/f1yS7i89NvHaPDe2XDg962h/ot5zJ5s6ecwpbdaAaoQmYQI2E7fnJ9a05ybvw3XjE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619940; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=mycOAsqCVqiTtK5zjSU3Ne/ALHamd86f7BML4GNCBvs=; b=nNXA1WAtiRqB/7frw6IRerUyZsHTEmH6OsJRcwqvw5ozJZGiSrEjB6Rj2yoMXxXLmfTX//fv5LXw3LA62c4/z709WDs2jXd5KoPNstGiAHl02ydKhbQM+1fF2IDBJ7RDeT57Pa698oWJrlOZZSCYF09zVbmfM8CxMz7zTPNxd1s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619940327965.6650982126731; Wed, 16 Sep 2026 21:39:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rV-0004Ua-QC; Thu, 17 Sep 2026 00:36:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qs-0003Xg-Mv for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:03 -0400 Received: from mail-pz2-x0f.google.com ([2607:f8b0:4864:3b::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qq-0007wF-GW for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:02 -0400 Received: by mail-pz2-x0f.google.com with SMTP id 41be03b00d2f7-cc433d52421so218564a12.3 for ; Wed, 16 Sep 2026 21:36:00 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619759; x=1790224559; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=mycOAsqCVqiTtK5zjSU3Ne/ALHamd86f7BML4GNCBvs=; b=ZajRf8Mg69zW/VZpb4maRXkwY/s+agq19N1Zt73JYkekN12k9nrlLzCWo1OPHJwJr5 Xji+h/DfZVOkY0w7HrgBpAyOAmHocTFFc5QCIhtmZ+C4f4bQJ94XYl5x8nVWgHMifRPl rJa7Vsm3+uBk2yCRfeObWXzL2JvmqDohoIHFgEToHNvxo0ryJ3z10Gog4GRA32/qnsZj F8G3yqwiI1tdGi2/0+rMFdgBpHLxBbe1iGcyDH+iD1fhC/W9qYNVXtD2hLw4kAl0/o5s SzWgnZ8Oz2AVNXlzJXceyiOoeTafW+HzB/Sd2eBA2PdI3lZ3BnA8ENcTei1tMIjDQ1hC aqXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619759; x=1790224559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=mycOAsqCVqiTtK5zjSU3Ne/ALHamd86f7BML4GNCBvs=; b=pkWaKo0EtwvawF38CxwOP9FtLM8Zjmg3PNO4N41SPxFfHwfhms4H94fo7tm0ba9iZZ UDMTjLCflXGCc3T4zZdZkADV8x0UGf80VdgwIgHCKOMoR/D/S1+endJb1Do6ipajiiB8 hhr8ate2H0UdWRkR4jjv1m40KM9gUjururKLxXh7jz6pNUUXCtvZ6wsgZXBMJXUiE+Tg qK4QOkz2J0vsnfKRCbDVXlOldG3fifqj71ebnD+2lrx8Mti3sPOLLRT5BlWFM7iU0ZSn h4D1ujfP5HIYni6tG6pC73NRcIzHgUMebuRl2N64XWnOwlCglfhUDXKgbDwYf7x93xz6 flyQ== X-Gm-Message-State: AFuF++nGukmVLD1PHKNsmDVPa3CA0Vi1TesywEYTvU9wd+FMKiWGqa01 iejmbcfP75LpJ0tQSK/NWjTU+EgELm+eZi+JEQxzcnLXIqPRmuOge57a9Ie+qLF4vXJOIll1TsQ 8dt80os4= X-Gm-Gg: AYBFou0oAGqnj4GvgqLAEdmVNRIslKvHmsiTfWTNOMFHZVXgvzd/z/7NKDGdWxx/pjf z+fWnFU4vwk1HmVj05X8CS7zUfhVloUw/15W1gRCGvEPJD8sgAvyDct9p1SH7y2Bk9sOzEBqgQE Nn/NiAMtMVaCTXEdfoqFnUuj5ByFDmOl4KS73n3r2ZkUY0cKBkB8J3fxZ8pu7vrPLBYTTQf409d tyNM4k8zlCAVo8eOyA/jj/Mu+rlJEkXut8pdouJk+5qbcgYwlpK/mCVRPDRK49USlx8vuiU1SUD 3kADa0YCu5lKFoLozvN1+BdCYcf5+t9mmbUaauEz9Y+0TihuCFSjJ8H1Cz8IOmYzWEI+1KvBLQO VJDHBrpVL7GD4lTX2tJeFXx5dDfk4EieA8OA/PsaWG0/rYl6v+EtOMxiS7/mADCdiFyym29OaUY e7NsD7gXztA7KkcD57Xqpq0CKAH6yJA3syMdo+1ueZsCzeLkGo+Rv7hX13+BtCknRhIVgqaIlIV pz4y4A7KX/t4aLpeA== X-Received: by 2002:a17:90b:2f4f:b0:398:990e:1587 with SMTP id 98e67ed59e1d1-39e1e3024fdmr12574079a91.9.1789619759007; Wed, 16 Sep 2026 21:35:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 088/101] tcg: Generic expansion of tcg_gen_bswap16_* Date: Wed, 16 Sep 2026 18:28:10 -1000 Message-ID: <20260917042823.542588-89-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::f; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619942236158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 - include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 127 +++++++++++------------------------ 3 files changed, 42 insertions(+), 88 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 9d83d70a798..56bc8ce4ace 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -133,7 +133,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); /* 32 bit ops */ =20 void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned flags); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); @@ -158,7 +157,6 @@ void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, = TCGv_i64 *b); void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 5e169258ea3..28cfa68db3e 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -10,6 +10,7 @@ DEF3(andi, TCGV, TCGV, TINT) DEF3(andc, TCGV, TCGV, TCGV) DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr) DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr) +DEF3(bswap16, TCGV, TCGV, unsigned) DEF2(clrsb, TCGV, TCGV) DEF3(clz, TCGV, TCGV, TCGV) DEF3(clzi, TCGV, TCGV, TINT) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index fcdee7be963..418750776a5 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -109,6 +109,12 @@ static void gen_op_tt(TCGOpcode opc, TCGType type, TCG= Temp *t0, TCGTemp *t1) tcg_gen_op2(opc, type, temp_arg(t0), temp_arg(t1)); } =20 +static TCGOp *gen_op_tti(TCGOpcode opc, TCGType type, + TCGTemp *t0, TCGTemp *t1, TCGArg a2) +{ + return tcg_gen_op3(opc, type, temp_arg(t0), temp_arg(t1), a2); +} + static TCGOp *gen_op_ttt(TCGOpcode opc, TCGType type, TCGTemp *t0, TCGTemp *t1, TCGTemp *t2) { @@ -517,6 +523,41 @@ static void gen_brcondi(TCGType type, TCGCond cond, TC= GTemp *src1, gen_brcond(type, cond, src1, tcg_constant_internal(type, src2), l); } =20 +static void gen_bswap16(TCGType type, TCGTemp *dst, + TCGTemp *src, unsigned flags) +{ + /* Only one extension flag may be present. */ + tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); + + if (tcg_op_supported(INDEX_op_bswap16, type, 0)) { + gen_op_tti(INDEX_op_bswap16, type, dst, src, flags); + } else { + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + int width =3D tcg_type_size(type) * 8; + + if (flags & TCG_BSWAP_IZ) { /* t0 =3D ...a */ + gen_shri(type, t0, src, 8); + } else { + gen_extract(type, t0, src, 8, 8); + } + + if (flags & TCG_BSWAP_OS) { + gen_shli(type, t1, src, width - 8); /* t1 =3D b... */ + gen_sari(type, t1, t1, width - 16); /* t1 =3D ssb. */ + } else if (flags & TCG_BSWAP_OZ) { + gen_ext8u(type, t1, src); /* t1 =3D ...b */ + gen_shli(type, t1, t1, 8); /* t1 =3D ..b. */ + } else { + gen_shli(type, t1, src, 8); /* t1 =3D xab. */ + } + + gen_or(type, dst, t0, t1); /* ret =3D ..ba (OZ) */ + /* =3D ssba (OS) */ + /* =3D xaba (no flag) */ + } +} + static void gen_clrsb(TCGType type, TCGTemp *dst, TCGTemp *src) { if (tcg_op_supported(INDEX_op_clz, TCG_TYPE_REG, 0)) { @@ -1407,49 +1448,6 @@ static void gen_bitswap_i64(TCGv_i64 ret, TCGv_i64 a= rg, uint64_t mask) tcg_temp_free_i64(t1); } =20 -/* - * bswap16_i32: 16-bit byte swap on the low bits of a 32-bit value. - * - * Byte pattern: xxab -> yyba - * - * With TCG_BSWAP_IZ, x =3D=3D zero, else undefined. - * With TCG_BSWAP_OZ, y =3D=3D zero, with TCG_BSWAP_OS y =3D=3D sign, else= undefined. - */ -void tcg_gen_bswap16_i32(TCGv_i32 ret, TCGv_i32 arg, unsigned flags) -{ - /* Only one extension flag may be present. */ - tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); - - if (tcg_op_supported(INDEX_op_bswap16, TCG_TYPE_I32, 0)) { - tcg_gen_op3i_i32(INDEX_op_bswap16, ret, arg, flags); - } else { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - - /* arg =3D ..ab (IZ) xxab (!IZ= ) */ - tcg_gen_shri_i32(t0, arg, 8); /* t0 =3D ...a (IZ) .xxa (!IZ= ) */ - if (!(flags & TCG_BSWAP_IZ)) { - tcg_gen_ext8u_i32(t0, t0); /* t0 =3D ...a */ - } - - if (flags & TCG_BSWAP_OS) { - tcg_gen_shli_i32(t1, arg, 24); /* t1 =3D b... */ - tcg_gen_sari_i32(t1, t1, 16); /* t1 =3D ssb. */ - } else if (flags & TCG_BSWAP_OZ) { - tcg_gen_ext8u_i32(t1, arg); /* t1 =3D ...b */ - tcg_gen_shli_i32(t1, t1, 8); /* t1 =3D ..b. */ - } else { - tcg_gen_shli_i32(t1, arg, 8); /* t1 =3D xab. */ - } - - tcg_gen_or_i32(ret, t0, t1); /* ret =3D ..ba (OZ) */ - /* =3D ssba (OS) */ - /* =3D xaba (no flag) */ - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); - } -} - /* * bswap32_i32: 32-bit byte swap on a 32-bit value. * @@ -1608,49 +1606,6 @@ void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg) tcg_gen_extract_i64(ret, arg, 0, 32); } =20 -/* - * bswap16_i64: 16-bit byte swap on the low bits of a 64-bit value. - * - * Byte pattern: xxxxxxxxab -> yyyyyyyyba - * - * With TCG_BSWAP_IZ, x =3D=3D zero, else undefined. - * With TCG_BSWAP_OZ, y =3D=3D zero, with TCG_BSWAP_OS y =3D=3D sign, else= undefined. - */ -void tcg_gen_bswap16_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags) -{ - /* Only one extension flag may be present. */ - tcg_debug_assert(!(flags & TCG_BSWAP_OS) || !(flags & TCG_BSWAP_OZ)); - - if (tcg_op_supported(INDEX_op_bswap16, TCG_TYPE_I64, 0)) { - tcg_gen_op3i_i64(INDEX_op_bswap16, ret, arg, flags); - } else { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - - /* arg =3D ......ab or xxxxxxa= b */ - tcg_gen_shri_i64(t0, arg, 8); /* t0 =3D .......a or .xxxxxx= a */ - if (!(flags & TCG_BSWAP_IZ)) { - tcg_gen_ext8u_i64(t0, t0); /* t0 =3D .......a */ - } - - if (flags & TCG_BSWAP_OS) { - tcg_gen_shli_i64(t1, arg, 56); /* t1 =3D b....... */ - tcg_gen_sari_i64(t1, t1, 48); /* t1 =3D ssssssb. */ - } else if (flags & TCG_BSWAP_OZ) { - tcg_gen_ext8u_i64(t1, arg); /* t1 =3D .......b */ - tcg_gen_shli_i64(t1, t1, 8); /* t1 =3D ......b. */ - } else { - tcg_gen_shli_i64(t1, arg, 8); /* t1 =3D xxxxxab. */ - } - - tcg_gen_or_i64(ret, t0, t1); /* ret =3D ......ba (OZ) */ - /* ssssssba (OS) */ - /* xxxxxaba (no flag) */ - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); - } -} - /* * bswap32_i64: 32-bit byte swap on the low bits of a 64-bit value. * --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619983; cv=none; d=zohomail.com; s=zohoarc; b=IR07y1MAeaPmIfdiN0YYeNm6lQFuIsX0b9oRSkM2VSS6ZUlWFCdpOtOTQEIXHUE9jFmHAJqNId45XmuZJaMc56PjnMKonF7xgLbJspRcvbVPTlshGM1un7dP5qom2d5UraN8p1dXoKIL9NyvooOMruW6nwXbhhyrLGk+896mmi8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619983; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=EEZjclD1Pfg6ab1ffCtW1YR8no5EBaKysar8IuTZsyQ=; b=fk6qd+mqfi38omDPPncoVfLVveDCd1t8JonBIogwdBCQUD32WQK4iyUu8yWe7Tap4NNU3gHcGHE8leRGo8hZK+qu4U9v8Yyp3J+zhooHa3TZhO65a43qjkq8fuXEPbHcBD6ybnvYkWvOwiL32KYXTiTONYr0anSyHEwMlEi3o1o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619983819965.6104153213779; Wed, 16 Sep 2026 21:39:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73qv-0003hQ-JR; Thu, 17 Sep 2026 00:36:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qt-0003Xu-CI for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:03 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qr-0007wY-Kr for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:03 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc4d04d740cso250530a12.0 for ; Wed, 16 Sep 2026 21:36:01 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.35.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:35:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619760; x=1790224560; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=EEZjclD1Pfg6ab1ffCtW1YR8no5EBaKysar8IuTZsyQ=; b=lVeodAkHvjUwhX1oqNdIcif4Cr/Eik/dnioA+uAbnWULB4bc4wfr+fSUt0Nz1NPuOa 8nxO+OFroSbs4Nj7oqLMvIjC/OOf4AO0OySt8sGUxtPM+EWtByAhdACgLO6EfkrDB+49 n3+EbiDTDUx8RroV3+fVlKyRYpITmrBIdnXqVWfEfG3X/S1U6unhlpc4o10+MuulJvy8 ZnHutTAnBSYGfaqfwjdhSzZ1OZejMtkOBImNfCY4UGKpkMg/cwDPQelmtjs08WAWP8mh 5HrGW7MsuZmWOdkumLDepziin4M2ASDmWl3Noby6lmNbcxSQs0FQMF9ExEXMyLnt7Dyb GXGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619760; x=1790224560; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=EEZjclD1Pfg6ab1ffCtW1YR8no5EBaKysar8IuTZsyQ=; b=IYWrX6jm3QNmlF+kBi6X2ztuxJ1vMSjt6kABWsqhRk5yc+dXlqQNPAhqV/NC5ko4UI K/MYvRgVuRByqFv9/B7jJcrdUzFCQQ4YFew1bElBfomBA4mUBGS5QxPTul+RpeR17IlJ bKkKwjeY0XgQvnfJLHdxIQa/NWJADE5SG3zxXk1ckNCtZxXfLQTDaMXnSMKo81MoVTfj WwCSu+Qhm6EKjxV/ryFHq7VAHRXEV424syzGsbeHdGIfDLBSEi9Y9cq+RALb+FWe/1xm nPIA2aFgjEr9Cyc+mFFpoPK4l8gNQCsskJG444ZHl8uku4E+TM2RmDCSenVMIrbuqeNT EnsA== X-Gm-Message-State: AFuF++nc1zKCqiXarQMZXteu9JSHANPKPfT1YFW9MJgjZMq8XVjdpnPu Okp+E6IOq7hqywlvHkfWMAZLGypBnx74v9xP6L7aV1fG3h3sgPuO4i4+WTkHqMJNshEjTwXMM8V cUVSW3Sk= X-Gm-Gg: AYBFou3guZHZpOVfkU5LfO4lDUPvhFZKL4BKLyJTzbOsHeRBar5zCnWbGURAOVz0EP+ P3xMY01eKWyr+oyTgddDWSNWGB0ehPws5xGxaQSQoO6vI+8J7TfXpzVK/4RsdbsvYAFfwrxjLkp NPKvPXeLL/zw3+YQg1I26yEYCLcu0XlWF8mCgBOXWevQMiMdPAiNDU5T2E8Ca2t6HLioZwVKljd YdNPpSYhbev+myH3hTbyi+0/acC+pQTe7dOpnJYo6MCn5CMuTtx9m9sr0ZWEEwse6OnqQfl5A2e q57TVUsSDBcoQooCBcin+1J9DbdEU76I+6EvuW/cP6KL++qWoE2exy7vyq3I4RHQ0UAqS/P5PC+ CEu+zjIEQ1ZkbpwiOQgbh8oXB8tqoL/RKnDWh1rwNHYSE6TcmXsPwju2QhiGmxqcmLMA2bgViOg 2dBNITdAhx9BrbpLDS8A+RbOZYFk5QocT6BCS/vjzaE3El+HsxVMaQB2IAuekcRPfpcgyc4IAdW 5EfhvY+WSUPHyybQg== X-Received: by 2002:a17:90b:578b:b0:39e:14db:4371 with SMTP id 98e67ed59e1d1-39e1e27a374mr11442722a91.1.1789619759950; Wed, 16 Sep 2026 21:35:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 089/101] tcg: Split out gen_bitswap Date: Wed, 16 Sep 2026 18:28:11 -1000 Message-ID: <20260917042823.542588-90-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619984403158500 Content-Type: text/plain; charset="utf-8" We'll need this for other generic expansions. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 58 ++++++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 418750776a5..a2ac9380802 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -382,6 +382,7 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo) #undef DEF5 #undef DEF6 =20 +static void gen_bitswap(TCGType, TCGTemp *dst, TCGTemp *src, uint64_t mask= ); static void gen_extrh_i64_i32(TCGTemp *dst, TCGTemp *src); static void gen_extrl_i64_i32(TCGTemp *dst, TCGTemp *src); static void gen_ext_i32_i64(TCGTemp *dst, TCGTemp *src); @@ -505,6 +506,26 @@ static void gen_andc(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +/* + * Internal helper for bit and byte reversal. + * Given a repeating matched block of 1's and 0's, swap the bits within + * those two blocks. E.g. mask=3D00ff00ff, shift the input bits left and + * right 8 bits. + */ +static void gen_bitswap(TCGType type, TCGTemp *dst, TCGTemp *src, uint64_t= mask) +{ + g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); + g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); + TCGTemp *tmask =3D tcg_constant_internal(type, mask); + TCGTemp *tshift =3D tcg_constant_internal(type, cto64(mask)); + + gen_and(type, t0, src, tmask); + gen_shr(type, t1, src, tshift); + gen_shl(type, t0, t0, tshift); + gen_and(type, t1, t1, tmask); + gen_or(type, dst, t0, t1); +} + static void gen_brcond(TCGType type, TCGCond cond, TCGTemp *src1, TCGTemp *src2, TCGLabel *l) { @@ -1409,43 +1430,14 @@ void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, T= CGv_i32 arg1, TCGv_i32 arg2) tcg_temp_free_i64(t1); } =20 -/* - * Internal helper for bit and byte reversal. - * Given a repeating matched block of 1's and 0's, swap the bits within - * those two blocks. E.g. mask=3D00ff00ff, shift the input bits left and - * right 8 bits. - */ -static void gen_bitswap_i32(TCGv_i32 ret, TCGv_i32 arg, uint32_t mask) +static void gen_bitswap_i32(TCGv_i32 dst, TCGv_i32 src, uint32_t mask) { - TCGv_i32 t0 =3D tcg_temp_ebb_new_i32(); - TCGv_i32 t1 =3D tcg_temp_ebb_new_i32(); - int sh =3D cto32(mask); - - tcg_gen_andi_i32(t0, arg, mask); - tcg_gen_shri_i32(t1, arg, sh); - tcg_gen_shli_i32(t0, t0, sh); - tcg_gen_andi_i32(t1, t1, mask); - tcg_gen_or_i32(ret, t0, t1); - - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); + gen_bitswap(TCG_TYPE_I32, tcgv_i32_temp(dst), tcgv_i32_temp(src), mask= ); } =20 -/* Similarly for 64-bit operands. */ -static void gen_bitswap_i64(TCGv_i64 ret, TCGv_i64 arg, uint64_t mask) +static void gen_bitswap_i64(TCGv_i64 dst, TCGv_i64 src, uint64_t mask) { - TCGv_i64 t0 =3D tcg_temp_ebb_new_i64(); - TCGv_i64 t1 =3D tcg_temp_ebb_new_i64(); - int sh =3D cto64(mask); - - tcg_gen_andi_i64(t0, arg, mask); - tcg_gen_shri_i64(t1, arg, sh); - tcg_gen_shli_i64(t0, t0, sh); - tcg_gen_andi_i64(t1, t1, mask); - tcg_gen_or_i64(ret, t0, t1); - - tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); + gen_bitswap(TCG_TYPE_I64, tcgv_i64_temp(dst), tcgv_i64_temp(src), mask= ); } =20 /* --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619900; cv=none; d=zohomail.com; s=zohoarc; b=japuLPzNhz7oDnlnn4BWT7OZtS7sYfLB/Q8iu2gOpEyrFhV5KhkGFPZlRmUBxQsRrOyV6k++l/EDZw6s+iqgaIqn7qvwXZEiwh5EI68iPu904VXQRsdq/o+l4K6mV10Lgn5st8rtXbTGZFNBmDn+rUF18UDHW7tcFxsDEYs7UWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619900; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=WHup/94Sgl0bkQr1l1r+uzHpyYNDE26cjX/AH6Go9sg=; b=fS9rLaF+P6BhF+VNfZrVeo9BArt+bFxR4s+Uu0ok2uNUz+CgxKNP25Pk5wm/Bv2MtS6tlqZHuzZI/Tn7Iv2KJ/FHFXb/wNbzXdw7om0h+Oat87Dg2nht/+VdhLyzu1aU0XdqYK+NJI5NhmqR2nHJTp0C1M02IyWuQi8+Vu2614I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619900501672.3016093614976; Wed, 16 Sep 2026 21:38:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73ri-0005v2-1j; Thu, 17 Sep 2026 00:36:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qu-0003eS-Bq for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:04 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qs-0007wh-En for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:04 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-8686f46e4adso338955b3a.0 for ; Wed, 16 Sep 2026 21:36:01 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619761; x=1790224561; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WHup/94Sgl0bkQr1l1r+uzHpyYNDE26cjX/AH6Go9sg=; b=AH1xh1Oj6Qi49nvo0l/YK6csQVtoHoKp9U6W7dcBVhRM3jJllUD215/HAzpXUaK0Cd IT858q2bWpy3hWhhhz/IV/d5rBVRi/9PNXGi+yt37oReNrq1AY26mZ2Wg/XuGtsAVcQE zxCYqtwikxJpn/dzkqpPeGWrFgAlLGRh1fnZutGtXnTCtzXxg7nSUzKlQIGCFiY5LYvH HLYfvZln6gK3cX1c5Og/ZwWF/RVjkrlH3Z4kTLQFxoQTOUAZq+jxgnMBdDXBWdvEY6Y2 3qEK99mLpIK+Hi/g0IuaonHlqGV0PU1pMtTWeSgA5NHMjkbcOyrRNiAH/ZVtstID7vea Tysw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619761; x=1790224561; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=WHup/94Sgl0bkQr1l1r+uzHpyYNDE26cjX/AH6Go9sg=; b=AAXncZsMkkQ+caRLjLZtwlhpqaK2hfHSLU7AuSgCwsYyvnfinw2Y05ShaPVQxpPGQh WyAfyz/3rf1kGUIbYZEFKsBr+tmOHXTGxqAnusPQmjwPPcKeiqh9it+8xqqRe1XKJlN9 ivgnIXdJmY58eBh82TU3ZSOPmcoYei7T+MCko4JnrC2jNbtQO95TDRl/Vse7nAiqQam6 6NoI3m37DeFyVfsM/n5fOL9r9nFmLBySYyaBclHZ/zWwsQ9/iHqXhJaARZG6SK7yt35f +oXppztqmlww/iS5p4hPPVC2EeZOs+TAMGTu2zi0Y8DbP5YNhro4rFHcVG/mVRuvy1K0 UJJQ== X-Gm-Message-State: AFuF++mSjuRnww2W7ffOctB9ObhSRsTGDFHPS7wcqdksyLRdh0ynuC9L SWuPykMKdSTeb3L7OCkmCYI8wkXduMrvVKfufqDQr1r/pHiMEVag/D7EfQ1kVsf5vZZQMw1+J8u Oukv56Lo= X-Gm-Gg: AYBFou2+OvQyFse9frKNLaQ1xBDx8mGaQ3e+Gcy8nTPcYxVNj5IJ2RNY1tyoEiWsNrf L4oWo6vrRmgtGCH+cPKvTd29yYczZQdqZS/XXGcbIbsZboC5IlYRVDF4t5VIQ8A1ig25QAsiQzZ OuBV7Iw5MzX+2m4gHbCie0wn1mIVhBukaVGJEzcw4UG586O5HCoGGj4wYykazsXTt+0TntCvt8Y lZvEX8gdfIQZHJNFVwE9PAn94QncXvZ5E9K+reaeRWMY5EzlzhtvHxJ6qhOTTrC9jQhQZrsBWt8 LafxlMyR5pSa0JCc9Vu0E2agsMn6qw3+4hsoYwriZ5Hg95UzJbdPdhtVqhHRELa6ZVOthg4tbXn 9CMNIV+aFscXo+Nob7Yec2POh0lRaIycFEH8f4S0xkNr5Cu0oPAeWAv18VtXESl6O6zi1wphMw4 V1tmXfVcU33HIOm0CRtXlaRyO6LoCw4ZtVjTvW+41pkbJj+SLm+Rt0RtjjnyJVoc2i+zDPRWZdg IzO5jI= X-Received: by 2002:a05:6a21:7d02:b0:3cc:faf3:331a with SMTP id adf61e73a8af0-3dd5f41b4d0mr12773228637.10.1789619760902; Wed, 16 Sep 2026 21:36:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 090/101] tcg: Generic expansion of tcg_gen_revbit8_* Date: Wed, 16 Sep 2026 18:28:12 -1000 Message-ID: <20260917042823.542588-91-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619902031158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 51 +++++++++++++----------------------- 3 files changed, 19 insertions(+), 35 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 56bc8ce4ace..c3d080222d9 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -135,7 +135,6 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned memi= nfo); void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* Replicate a value of size @vece from @in to all the lanes in @out */ @@ -161,7 +160,6 @@ void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, un= signed flags); void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 28cfa68db3e..13aa8e15e42 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -48,6 +48,7 @@ DEF3(ori, TCGV, TCGV, TINT) DEF3(orc, TCGV, TCGV, TCGV) DEF3(rem, TCGV, TCGV, TCGV) DEF3(remu, TCGV, TCGV, TCGV) +DEF2(revbit8, TCGV, TCGV) DEF3(rotl, TCGV, TCGV, TCGV) DEF3(rotli, TCGV, TCGV, TINT) DEF3(rotr, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index a2ac9380802..33e82973d8d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -179,11 +179,6 @@ static TCGOp * DNI tcg_gen_op1i(TCGOpcode opc, TCGType= type, TCGArg a1) return tcg_gen_op1(opc, type, a1); } =20 -static void DNI tcg_gen_op2_i32(TCGOpcode opc, TCGv_i32 a1, TCGv_i32 a2) -{ - tcg_gen_op2(opc, TCG_TYPE_I32, tcgv_i32_arg(a1), tcgv_i32_arg(a2)); -} - static void DNI tcg_gen_op2_i64(TCGOpcode opc, TCGv_i64 a1, TCGv_i64 a2) { tcg_gen_op2(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2)); @@ -1133,6 +1128,24 @@ static void gen_remu(TCGType type, TCGTemp *dst, TCG= Temp *src1, TCGTemp *src2) } } =20 +static void gen_revbit8(TCGType type, TCGTemp *dst, TCGTemp *src) +{ + static const TCGOpcode revw[2] =3D { INDEX_op_revbit32, INDEX_op_revbi= t64 }; + static const TCGOpcode bswapw[2] =3D { INDEX_op_bswap32, INDEX_op_bswa= p64 }; + + if (tcg_op_supported(INDEX_op_revbit8, type, 0)) { + gen_op_tt(INDEX_op_revbit8, type, dst, src); + } else if (tcg_op_supported(revw[type], type, 0) && + tcg_op_supported(bswapw[type], type, 0)) { + gen_op_tt(revw[type], type, dst, src); + gen_op_tti(bswapw[type], type, dst, dst, 0); + } else { + gen_bitswap(type, dst, src, 0x5555555555555555ull); + gen_bitswap(type, dst, dst, 0x3333333333333333ull); + gen_bitswap(type, dst, dst, 0x0f0f0f0f0f0f0f0full); + } +} + static void gen_rotl(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *s= rc2) { if (tcg_op_supported(INDEX_op_rotl, type, 0)) { @@ -1466,20 +1479,6 @@ void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg) tcg_gen_rotli_i32(ret, arg, 16); } =20 -void tcg_gen_revbit8_i32(TCGv_i32 ret, TCGv_i32 arg) -{ - if (tcg_op_supported(INDEX_op_revbit8, TCG_TYPE_I32, 0)) { - tcg_gen_op2_i32(INDEX_op_revbit8, ret, arg); - } else if (tcg_op_supported(INDEX_op_revbit32, TCG_TYPE_I32, 0)) { - tcg_gen_op2_i32(INDEX_op_revbit32, ret, arg); - tcg_gen_bswap32_i32(ret, ret); - } else { - gen_bitswap_i32(ret, arg, 0x55555555u); - gen_bitswap_i32(ret, ret, 0x33333333u); - gen_bitswap_i32(ret, ret, 0x0f0f0f0fu); - } -} - void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) { if (tcg_op_supported(INDEX_op_revbit32, TCG_TYPE_I32, 0)) { @@ -1700,20 +1699,6 @@ void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg= , unsigned flags) } } =20 -void tcg_gen_revbit8_i64(TCGv_i64 ret, TCGv_i64 arg) -{ - if (tcg_op_supported(INDEX_op_revbit8, TCG_TYPE_I64, 0)) { - tcg_gen_op2_i64(INDEX_op_revbit8, ret, arg); - } else if (tcg_op_supported(INDEX_op_revbit64, TCG_TYPE_I64, 0)) { - tcg_gen_op2_i64(INDEX_op_revbit64, ret, arg); - tcg_gen_bswap64_i64(ret, ret); - } else { - gen_bitswap_i64(ret, arg, 0x5555555555555555ull); - gen_bitswap_i64(ret, ret, 0x3333333333333333ull); - gen_bitswap_i64(ret, ret, 0x0f0f0f0f0f0f0f0full); - } -} - void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg) { if (tcg_op_supported(INDEX_op_revbit64, TCG_TYPE_I64, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619920; cv=none; d=zohomail.com; s=zohoarc; b=ETxsLDnbhqRpGSs+3t2Jj9GgxZblCkcg6WI5l1jIZAQVDJ3lJvK92YpsB3gv6rDZ02GMBqxag6fuSVsFgwGpzzr5e7pHejaRCJn9Ni1cZMo0aj+FM90VA5lnOXPYzbHSoLT1pAroaSgYeYeK68ZfKUtye29YeqdwZZnq6TZUrLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619920; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=G3BqLd91rjoKhJ2YDcmupDkC98VcuJQ2DeRHEk8J0io=; b=bUbqUt7+d95bGOS1Zbc+JKlX0jCcdu1lK1czl/f11j1f2M3Nvgoe+W0q+jgl98Mr6K5z1zMDi+i4Hr5vg52L2sIhYD8rMnWpPDdw+2/OZPlJX1DvxLVq3pvT2VpkHOBXwxr56TVUEQJ16JgxOoULe+ELZXdiG6VYpjo62FMfSfg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619919865552.4461648264348; Wed, 16 Sep 2026 21:38:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rW-0004ii-UD; Thu, 17 Sep 2026 00:36:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qv-0003kz-Sy for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:05 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qt-0007ww-M9 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:05 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-398b1e63c49so308093a91.0 for ; Wed, 16 Sep 2026 21:36:03 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619762; x=1790224562; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=G3BqLd91rjoKhJ2YDcmupDkC98VcuJQ2DeRHEk8J0io=; b=Odne1nx6sYSOh3N2WjU2lQa40HdpdA3CTUzMnczXyKwZylnZiePrJP97O9zkysrAZx Vyhdksyz1BVYwnl+L5+phAErd8xXGBfXoHNR33teYwunJOGJl/jDykn1vsuhW4BMFKLB p9BIXddD81k+EAUQ5f9DKopmUoOka9c1wpg34YVA7HPvi5sMIIhkGm5OEf9/Y3d++vI5 pvX4THvGNu+IZ09sTQFPYhmdbn5LBqZGbnH8iNOBfZ3xYSEyQMi3V4GFm+8eqn/sxV9O 9hj+irxhsrw+2/OnosLx93ogrfDZMYhs/tu2e39mAdz8nN7zEgQv9drVwL5QniFND6Ks 9znw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619762; x=1790224562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=G3BqLd91rjoKhJ2YDcmupDkC98VcuJQ2DeRHEk8J0io=; b=DV9j8TcFtG/zpGGd9jAIfxSEw/vELDsOTnIGIFn3J9t64xBMj2NHOX6KxavSuAgSMW JmyYeDEgev8z5B3tdZDOGdU/j7KvNbr5PUkNsqfUysGj2knlLgIzKdP5tVc+pqDAw4JT ki8ZKHllAX/8SxweYD59hC3BLnY9zgvDI/tVG0lFW4qu6pn9wvLXSdbgB9fraVn3+ezl GgzaZ9e7jPjnZs0vO+MkPFfyM21ahNGfCjUB8dyQf04MtIDhDktnwXVzxN6rHBxD7Jb8 bGyMuf7o2b6p2P7whq5G+EWZ65b+oB5ubQNCSRQbUghPcRXDeSnbsaiSXD4/geMyqjrG L7xw== X-Gm-Message-State: AFuF++kwkB1GpZnEzO8LfR5RBnHdaFXLISGKPuu/DJiiAhcoyu4yOJ56 XAC3loXAYP9ZseXOE8mg/M2TK5X6kNeb+hxgWuVde8a6wlVL26mc1B8ogKs2+Go5Jj6V/eFmWvb i2YtkxcE= X-Gm-Gg: AYBFou2T9m2kzyvrvvr0RY8BzjMW5BOwmzrsNn6h+oMUvPJnsrc4R+YeVTczBoeFv+/ wpTl8AUvVIn9yWcfKcBo1oRjWbTaj11T8+g99pEPyOyh6C9MHM3a3tbxV9cXBq6Z6iYMZ5OKs+i ErfjW9tT+hiD/v9A8DTInqg2WHmVHytIW3SYfJTsDGOSiLGVoIynMn7+ZUa3im1IsCM+ZNsjOQM ldAwnnbSTfEef8VT3CoVt000J1z+o6p2XB0+EyB/KJz5tMivznRXlA+nNKpQTCKa6lXvb6ZSZnS ijcRlLiRoiCPVdDY8tOb80HEKg/LzkQC7xAt6tdbUDIh5jcP4E3mW8VD4zo3DZKCrBNYpYfrbEG bVPxowsqO6o6eGu1KIIow/7diA1U7rW3sVMMOvOM/8E84YjK0LksAqUuGnnw8qtvb2ODqNX+4pj 9ZOPmBAIqM+JxmMoR+nlJNLEc++93h/Moiq9O6lcXDN9rv3fUJxExUwsWzeQMmlPP14xhwiVl2D 6rOobE= X-Received: by 2002:a17:90b:58c4:b0:39d:e445:1d44 with SMTP id 98e67ed59e1d1-39e361afbe1mr3337818a91.31.1789619761741; Wed, 16 Sep 2026 21:36:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 091/101] tcg: Generic expansion of tcg_gen_ld_* Date: Wed, 16 Sep 2026 18:28:13 -1000 Message-ID: <20260917042823.542588-92-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619922171158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 26 ++++++++++++++------------ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index c3d080222d9..22077246109 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -144,7 +144,6 @@ void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_ld8s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_ld_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); =20 void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); @@ -176,7 +175,6 @@ void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_ld16s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 /* Size changing operations. */ diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 13aa8e15e42..dcd5be7f20c 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -30,6 +30,7 @@ DEF2(ext16u, TCGV, TCGV) DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF4(extract2, TCGV, TCGV, TCGV, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) +DEF3(ld, TCGV, TCGv_ptr, tcg_target_long) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 33e82973d8d..b77e61c2b1d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -284,13 +284,15 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) #define DEF6(NAME, T1, T2, T3, T4, T5, T6) \ QEMU_ARG_NONNULL static void glue(gen_,NAME)(TCGType, T1, T2, T3, T4, = T5, T6); =20 -#define TCGV TCGTemp * -#define TINT int64_t +#define TCGv_ptr TCGTemp * +#define TCGV TCGTemp * +#define TINT int64_t =20 #include "tcg/tcg-op-def.h.inc" =20 #undef TINT #undef TCGV +#undef TCGv_ptr =20 #undef DEF1 #undef DEF2 @@ -332,11 +334,13 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) =20 #define C_TCGv_i32 tcgv_i32_temp #define C_TCGv_i64 tcgv_i64_temp +#define C_TCGv_ptr tcgv_ptr_temp #define C_int32_t #define C_int64_t #define C_MemOp #define C_TCGCond #define C_TCGLabelPtr +#define C_tcg_target_long #define C_unsigned =20 #define TCGV glue(TCGv,TEXT) @@ -363,11 +367,13 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo) =20 #undef C_TCGv_i32 #undef C_TCGv_i64 +#undef C_TCGv_ptr #undef C_int32_t #undef C_int64_t #undef C_MemOp #undef C_TCGCond #undef C_TCGLabelPtr +#undef C_tcg_target_long #undef C_unsigned =20 #undef DEF1 @@ -885,6 +891,12 @@ static void gen_extu_i32_i64(TCGTemp *dst, TCGTemp *sr= c) gen_op_tt(INDEX_op_extu_i32_i64, TCG_TYPE_I64, dst, src); } =20 +static void gen_ld(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_ld, type, dst, base, ofs); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -1509,11 +1521,6 @@ void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i32(INDEX_op_ld16s, ret, arg2, offset); } =20 -void tcg_gen_ld_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_ld, ret, arg2, offset); -} - void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_st8, arg1, arg2, offset); @@ -1562,11 +1569,6 @@ void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_ld32s, ret, arg2, offset); } =20 -void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_ld, ret, arg2, offset); -} - void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_st8, arg1, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619977; cv=none; d=zohomail.com; s=zohoarc; b=YgbSjGf+o/CZ6U9Xc6tpTAMFmrFfpSNlU2DyhNQGToqS6A/dqEIF9BZLIx+3DN/KQmloae5Tj/ZKLS3ybKRYaR8jpZsOs9ntnQyw+JiBmYWqhGYZ8J3/RHobnxaNi4k6pnrKxdWAHltqUyu2H0DrzNv0Ehg1B+SmuJA0MVop7X4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619977; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=JzX3XHmCsmRbtmaFAA6hZKePi8VPIq4fPpBQOzjWd/s=; b=EFXR/7X/nhKCZCBbsqo6g3ky2bNGXt0sP5SFmhQUd40ZjwA/kgf0gJww6VBkyFSyM8BGde6FXZMctsYlSNlcUSQwJ6V1564XATSPRjwqllWIptGwMvpvJVNwGo4MKSGLIRQH9586+g/mv1n/CzhU6L1BejICaxqBWgE6K4qgViA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619976948468.99941779234985; Wed, 16 Sep 2026 21:39:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rZ-0004yC-8N; Thu, 17 Sep 2026 00:36:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qv-0003l8-TL for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:06 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qu-0007x5-07 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:05 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-398a147688bso364108a91.1 for ; Wed, 16 Sep 2026 21:36:03 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619763; x=1790224563; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=JzX3XHmCsmRbtmaFAA6hZKePi8VPIq4fPpBQOzjWd/s=; b=hpO1GG+qLGdTemppoXdGhfyvK8mLEKvRx0C02JAFFRWay8fYN3sIJAajEszq/hjZS7 QHZ2na0oc9L25rDw4q+hfdywWz6laOql5tje4znB8sKrTRxKcMqmZb9e8h64PqOUtRpi L4h/MrjWKfoad0q/4JBCG3+BOLcDcoOUYapA4MZ2GSNUv5+msCfFP8SZhZxtp7YHkUIF b/Cls7WrBBqh34imqE8OP9XjFrdeW7tgbAWHuO0aUGa8aU5Php8w5cLCYmi3UZsy0pWo RLSdxWpnv1fud1LRA4uJVIB4YnyGb1blls10Z0csOQ5Dig1VZzGBoxqaPhinEoIPBsqT L4xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619763; x=1790224563; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=JzX3XHmCsmRbtmaFAA6hZKePi8VPIq4fPpBQOzjWd/s=; b=IdXwUWjh9JeOZvqLQNQWMn1X2icBXNB0GVcl93aB+V+Ur5vttK9BW54oMteVG9HdOp pmzbK11tyJ/9p41bPt9+chRLO42n4F8sw29rm/GKH4L/4T5lHwVnFxt0MvPZyWMwmIrA T64XvHWHDIi9QHeudQBtZCvvOBqEaCW/8p9KNpTR/TM9lybhpzWPBlETr1hgv6SA7v00 zMPiPvp5bOq0/NOTTeD1h2DdZOvGG9nKRMb9Dcq73yrRKBttCSwNPQdK/LwaPO5l4M+2 jjc3xu7rjyNQn8QxoqadGL9seEEE3Vt4hxGzdaqwc//AzwCiUttz5TiF+tHamX81zxp3 kTcg== X-Gm-Message-State: AFuF++lCNqv9q2tb1s1aOxkbDtf+B87VQh97Fc711qQMB2InEGpCGhOO NYkeYGHy/CfDlKEkPmNKH3W0z2/IMLHFgT/b+l/xAtCrvuCXQq5cqs7lOcw6VRQW/QSZU6WeTU2 771MOLwc= X-Gm-Gg: AYBFou2oiR77xjEQz3FnJFMAbtZCy7Swa5wmyQNoQyMGss+GjM/LQCWdPnfL0B33fpX SK0SuaXvQqbEjv/YGKchUOFZq1C+5y9QPQg9Jk2T9EmA76b2eiS4PJQnH1yD+e9ifSnAUHUOcsu xdK+8/3rnIVu6rzgo2i4F99cXl4Tr956j8N4SezMsI3jyMmZob+uX50kycbszwokbtbLyjJAWZ5 Ee2klotsvdY4NGtr4maSB83NnG9/4HsEV5NB5tWjHwQaeRlEGcwAmIgPb/+cmA8pF2o4/Wnujm+ p8rLuWXBijspCeMD55DTm8Hoeo/NQLOwuhXWq9mrIWoccXZdg0EgeqTnXCsL0Qs4zSIQuPNad0y EeBPgp1WDR1zyQ1kUvk9JLjefbI7gbbtYyHJJ3/crMNHkXzuWO9ITCiDYXt8gC5KZk3Crjnv3vE uafiJVmzVDdqqE4pMGhrbS8Raot53s1FHwJvMopPlYWvaGFcQCdSZfdfxoo4tWce9ahn/O+J8b4 1bjfSzK X-Received: by 2002:a17:90b:6d0:b0:39d:e213:9dd3 with SMTP id 98e67ed59e1d1-39e1e27ad18mr12233362a91.1.1789619762591; Wed, 16 Sep 2026 21:36:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 092/101] tcg: Generic expansion of tcg_gen_ld8s_* Date: Wed, 16 Sep 2026 18:28:14 -1000 Message-ID: <20260917042823.542588-93-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619978347158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 16 ++++++---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 22077246109..0e75243f534 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -141,7 +141,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_ld8s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); =20 @@ -170,7 +169,6 @@ void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); -void tcg_gen_ld8s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld16s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index dcd5be7f20c..d246b47a38d 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -31,6 +31,7 @@ DEF4(extract, TCGV, TCGV, unsigned, unsigned) DEF4(extract2, TCGV, TCGV, TCGV, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF3(ld, TCGV, TCGv_ptr, tcg_target_long) +DEF3(ld8s, TCGV, TCGv_ptr, tcg_target_long) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index b77e61c2b1d..c4419b702b1 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -897,6 +897,12 @@ static void gen_ld(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_ld, type, dst, base, ofs); } =20 +static void gen_ld8s(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_ld8s, type, dst, base, ofs); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -1506,11 +1512,6 @@ void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, t= cg_target_long offset) tcg_gen_ldst_op_i32(INDEX_op_ld8u, ret, arg2, offset); } =20 -void tcg_gen_ld8s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_ld8s, ret, arg2, offset); -} - void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_ld16u, ret, arg2, offset); @@ -1544,11 +1545,6 @@ void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, t= cg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_ld8u, ret, arg2, offset); } =20 -void tcg_gen_ld8s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_ld8s, ret, arg2, offset); -} - void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld16u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619973; cv=none; d=zohomail.com; s=zohoarc; b=T6lEY2FUn879cHPUgjI7hL09/OBs7PtLb1fC2l51fyX39dYVVf78iByzKZwQmNcc1bnk0IR5lgypKSRnP/VQg0Qecbn6Ts9V+fIme3vout9/WjQfIwOXJ2UsRoG2RKGzIK/2xTk9XYaonGRiLSG5+ZGHR+LvoxiccqQngCihd9M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619973; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ef8ofqaPMNPbfFoVZalzi7/jscXslYUane0qo/xYIy8=; b=X6cWCQXyWVvLXQ0QTGIANSsaxZJylJTHoA4SNd7IMU1bs1m5hsGAtacuVLXeNqQIcZBX8evmG8RN1YYieOjKadaGZ4JmI58HuO7x42jqlQLK/aO+WhMqdHUcW6vKOwjjADSV7bEdjHd7ZroFe9CUQWYmya9CTDO1kwiKaIG74zo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619973236998.2017181589398; Wed, 16 Sep 2026 21:39:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rf-0005iI-Rz; Thu, 17 Sep 2026 00:36:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73qw-0003t9-Pc for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:07 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qu-0007xK-Tq for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:06 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4ae2cso336687a12.0 for ; Wed, 16 Sep 2026 21:36:04 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619763; x=1790224563; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=ef8ofqaPMNPbfFoVZalzi7/jscXslYUane0qo/xYIy8=; b=I04M8gmIElZIdtfgaxGPnikaLwWeqpuhOaDdBmC4XL484mMbg7kITH4ORwwW4mq7pJ dTeqiKwn2kmTLdyPCamSH8R05XqkBsISmPEpDrOacph96oM1qPwUJmmD8EaEhcrXDjD9 wPE/gCn/YRBV/IFRIM4Rgce+26mRYwBD7urFSi75+mGvQajYcOC4VEIL0tgOhVGkOpTT HAveR/iDT0R4eWhEjzi8B1hYiqvjVfk0OSkpWIbREY3aiWyVApQ21k1ZtQZc+lQv4kNZ 3z/IOsjuA0O1kuU28egizIi5iNZPSZ0XBQK5CtoY3ETg20U7d71/8QrHyutgokGDPqGn 8WAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619763; x=1790224563; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ef8ofqaPMNPbfFoVZalzi7/jscXslYUane0qo/xYIy8=; b=hlo4G+126H0Kjk2MDz6h1Jwe9zuz8m+JtSDEYYtBdOmKy47E5+eoLyF/SnSV5lFTBS AcKrB4pPEVg88Uur6HrNGCIdmLaRreNIW+fYxo+OjIeIRkS/rA4mTuBomAC5bBYSbWK3 CwjayZt9RsXlQ1ZrhOfeGlE9kuuZebZuUvRrGt6C+YVqbz0tBpK7M49a8rfwVQQrgMc3 nuMNyYa60HCBtQir1SY8ADLjhdYjACEYvbKF9jhXARKBdBacWJI4OjZ/GF+NHRg3fH4o dODBswJiQ0oX9288c2/i0JzsD/QzP+x57y8hXz5oV9u6q5zTuD6m3PbANo0N0mTTx8jw 4iBg== X-Gm-Message-State: AFuF++nNxd1w2PaQypjWycXNZazovpcz0q1aowuGMBYAIpk3IDbhhvyo syxBpv+iSTQe9p7l2a1mmtePNBgRhSQ2e1sFfnbZwu0DVsdRJvFpbOhznQvJ+b9nTTBd/5Ylm9w tfWx6zZA= X-Gm-Gg: AYBFou05RW6MEyA2vOTFJkm1UTBFmslWT/VncRvaMbFRwJPbqtK3NCs3UPnRCfHsBRR y0MHhJNl+H1Oy0cHg1X7QQTDLuyBZRndEZukVOyj5PXsrwtZgpsVraihQYDy67XtnBaTKUQQ8/s iZ/Vcsi5x9HLD3N4z7iU2N6eoy+lDYFTlSrfuBnAqvjyrEZgN0gy7ShoP5fJLbcpyhCTGcRJ/Cv kGqnX+ya3Mo537spwrttrJcb9mu0X+KE6wCx8VPglLN8PRrmhmcoMBf1Ph5Hy4ylEKb51dmRWkI 6IzwO/I/vnP4NhUgVEJS0HV+HEbhqF/NuM7sKWZJPbVuvVp9OQtT2hyyToE0b9cKEYluFs4Q8bp t70EUYdsecqBJkCZa3Vd4TbviFFuUYaPuyh3IzPR8q25cpxqcb7/q9LdwzCPhbDkmGOI9Tb52ON nwhVe1MibnCQzdrLKNaXlxTww/6t+MVt7LWjwm88xCJo3PJJxkAP8oJyuy8gYgWUuLUDcBJUWRA /rxhbI= X-Received: by 2002:a05:6a20:d8b:b0:3d0:d1f1:6ec5 with SMTP id adf61e73a8af0-3dd5f3c0a82mr14049918637.4.1789619763504; Wed, 16 Sep 2026 21:36:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 093/101] tcg: Generic expansion of tcg_gen_ld8u_* Date: Wed, 16 Sep 2026 18:28:15 -1000 Message-ID: <20260917042823.542588-94-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619974529158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 16 ++++++---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 0e75243f534..925d6c1a2ae 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -140,7 +140,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 -void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); =20 @@ -168,7 +167,6 @@ void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 -void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld16s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index d246b47a38d..14b545c4b50 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -32,6 +32,7 @@ DEF4(extract2, TCGV, TCGV, TCGV, unsigned) DEF3(eqv, TCGV, TCGV, TCGV) DEF3(ld, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld8s, TCGV, TCGv_ptr, tcg_target_long) +DEF3(ld8u, TCGV, TCGv_ptr, tcg_target_long) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index c4419b702b1..1a22c0d71ff 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -903,6 +903,12 @@ static void gen_ld8s(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_ld8s, type, dst, base, ofs); } =20 +static void gen_ld8u(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_ld8u, type, dst, base, ofs); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -1507,11 +1513,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_ld8u, ret, arg2, offset); -} - void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_ld16u, ret, arg2, offset); @@ -1540,11 +1541,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tc= g_target_long offset) =20 /* 64-bit ops */ =20 -void tcg_gen_ld8u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_ld8u, ret, arg2, offset); -} - void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld16u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619840; cv=none; d=zohomail.com; s=zohoarc; b=Omp6qJ/5rRO1MAOahisGUA0Nl05vDnZtK6oZ3E96ndQ7wtRGdJ8wIJzQ6Nq/hBtenWqeq0fm3T9uusDWM5aGhpZQeU+OpG4HoGW5ydel2y7ijwfUP0gojzcQZzc80+Y94EaoE7Wgzk9DUig6lZaNlHqcHrCdHvly050C8oTmWx0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619840; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=qUs/LcFAdg6jp5g2jRJRQ/pPNVGY8IkuWcSKApGt5sM=; b=FPMAC+LBCOutqkL/7p/wwkQ41lukUaaM02unP2PYAho3eV1lKiLzJkh1cW0wMJqbD2YSmYipe42ErUBEgDygqShEHKijzejyT8D0R6JhCv2zkriS+YZ4VNEue38eobzhrpGX/S9XAptqDQg1PXyFDM8zPTgOrb9xBfhWdHkQpl0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619840103924.2193980793039; Wed, 16 Sep 2026 21:37:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rY-0004lq-18; Thu, 17 Sep 2026 00:36:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r0-00041S-Jo for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:12 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qx-0007xi-HY for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:09 -0400 Received: by mail-pz2-x10.google.com with SMTP id d2e1a72fcca58-86212a185dcso429564b3a.1 for ; Wed, 16 Sep 2026 21:36:07 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619766; x=1790224566; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=qUs/LcFAdg6jp5g2jRJRQ/pPNVGY8IkuWcSKApGt5sM=; b=sNZ+55RXwLvoPBMmu5AihQaG+O8nqh7q0kT1JGFFUsGXWH+lI0nnwA7SC42OumiI/V EtevpmwYApdJBFmLx9fuSgRzaBqw2u21mxpDZybJaM8Uyie6w0DQyXSLRsiwWnS0F4Kq o9qm2syDv4124sRBnBxis+Lba0q75g+9DOPCvWUw9stNpC36lfYGYua5rr5z4Z3SHyXM By8rTwaTtiGSmljVBWRyn91yrmpyT5gWgmBYkGNM78r+26A3Pe3DdcSPCYaJGjdiEitZ PLH7ktNc0UbFXxbYU54tO1deJUqp8K3SMi7ijhsNmgRPXDCygHN0iB+IkPOJZl1wc3l4 CJHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619766; x=1790224566; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=qUs/LcFAdg6jp5g2jRJRQ/pPNVGY8IkuWcSKApGt5sM=; b=OdesMDb7NOo8/rO0Q/KM1Wmb5xmMK4oMO0DYCFUgD4+IS215QgERuvImQcuyMUhBSY DLlusHZDW2CviUqdlfpb/90Nqfrkx2rG97tjjKc0a9bLDhy8w0q/bC5vDGNaG31bFJmy sdD0bRHfiZPDl6o31WzjQ65MQRTr/Aadm7lqGMj8FglgHp0x9rks0XjA+1Tqk7+czjAL AFCtNjbqnnsNR1S86VcZfZBXbalO+LDGIGKgA7BLldbErQEtkK/dxkF5f4WIPDKF9WWv L7JzVFkM757x/gRytNAnYEscSG4swriN/c7if2HQlFlggnutt3GIzD2/9YNrYAbSwWAB PKrA== X-Gm-Message-State: AFuF++lz3QD2Q7+amMwjhUPF0lQSt1eoXT9A101zmoybnDFVl9HHgUL6 YuphQ1W3dD6WyI39iT7OdIu9yWTm8kRAzmdGZCwxJkri+BcngWAhdM7nhepgT+kXj9VAXxbTJ57 lc0bALdM= X-Gm-Gg: AYBFou2+4zJAUetEEKYRNjYkB7suINkNBPcSSaEQ16SPp9wScrM/oNTwcNZOjgAgM6l 6Lkv4fjkbuiZXmW1KTyXErbGVn0hkg0RNGRHKK15dijbRtkDT2tJDBhw9aXnxJ5wsXwKKgbuKaY tcUUQ9b19S1AcfiF5OnprBVexQNL7uDQhA0UvS+hnz/ZK2LPpRoomaWJNBRkw9qp7sRo0kZ2o7b 7lds7hmmRRgHz6HOX5vRxUrj53s6SVu8xyXYM+Tnht4FksjwbUiSm4AGV+hLCGWUdOWifRFcOv4 xoEiR2IB9o453mXOU/CXZu10nVEm97Z6pnRGEeYlXO2+W0PRiPZN2cjYkEEWDYVPaNMrcw41FEs lSWWIdTPhsj6CpMWRW7XVyzNpBunTTSiMi+MXu5Zvih9RgWn2yVv7hpRNoPB3Skk63+pvbh+6n6 y2IRoXXcgvk1Hqb0D7IXelkEqJtwW/+pPnoP9zHre9bmTqnLmhzL6vV1iu9rIYCDguTDmidHXcb T5OuCjB1nNWJedG0vU= X-Received: by 2002:a05:6300:68c8:10b0:3dd:7a8b:2e88 with SMTP id adf61e73a8af0-3dd7a8b2efbmr1231494637.15.1789619764409; Wed, 16 Sep 2026 21:36:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 094/101] tcg: Generic expansion of tcg_gen_ld16s_* Date: Wed, 16 Sep 2026 18:28:16 -1000 Message-ID: <20260917042823.542588-95-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619841817158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 16 ++++++---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 925d6c1a2ae..75e124b8091 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -141,7 +141,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); =20 void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); @@ -168,7 +167,6 @@ void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg= _target_long offset); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_ld16s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 14b545c4b50..c4078ca5a1a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -33,6 +33,7 @@ DEF3(eqv, TCGV, TCGV, TCGV) DEF3(ld, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld8s, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld8u, TCGV, TCGv_ptr, tcg_target_long) +DEF3(ld16s, TCGV, TCGv_ptr, tcg_target_long) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 1a22c0d71ff..5c644c06609 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -909,6 +909,12 @@ static void gen_ld8u(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_ld8u, type, dst, base, ofs); } =20 +static void gen_ld16s(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_ld16s, type, dst, base, ofs); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -1518,11 +1524,6 @@ void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i32(INDEX_op_ld16u, ret, arg2, offset); } =20 -void tcg_gen_ld16s_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_ld16s, ret, arg2, offset); -} - void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_st8, arg1, arg2, offset); @@ -1546,11 +1547,6 @@ void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_ld16u, ret, arg2, offset); } =20 -void tcg_gen_ld16s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_ld16s, ret, arg2, offset); -} - void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld32u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619934; cv=none; d=zohomail.com; s=zohoarc; b=GiWJ23ryyKS8a8UDo2KHcdzgO1AT7H5zPse/W+h15riL6/tfxbAiVWSeozdZAIhzp2jpC6gUM/vTwA/l2Fm1i9kFRxv0ZXV1DY2qivim13RNuTEkncp8wuOOmnrKS919pbJnXw4f2Wu9zbWSCdsDMM2WXJXJveZ4/LgE3r+3rG0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619934; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=lM95YebAVIwfGCLo3GNoIrAehoSrueZBN/xi84kv11w=; b=EuQyOqFu855gysk6ZXwyNt/bDrOKfhps62jE5T+tAU0GMu4XKtqAjHqfNobm5ld6ZDGk5ZIfbJdKw6FCZWrLfzoc6YOVIJTCtxnnV3tN934MXAGYBZ2S01FMXX0rcGiH9ih/fD7FYZjn+w4N8oj/ioNQqW4e4RafOlOPCtBkqgw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619934225955.7524559001114; Wed, 16 Sep 2026 21:38:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73re-0005W4-ET; Thu, 17 Sep 2026 00:36:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r0-00041T-Nz for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:12 -0400 Received: from mail-oo2-x0f.google.com ([2607:f8b0:4864:31::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73qy-0007xy-Ew for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:09 -0400 Received: by mail-oo2-x0f.google.com with SMTP id 006d021491bc7-6b1ae7166ebso229199eaf.1 for ; Wed, 16 Sep 2026 21:36:08 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619767; x=1790224567; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=lM95YebAVIwfGCLo3GNoIrAehoSrueZBN/xi84kv11w=; b=gtUQqM8nnBMbJZRRKRDUhE1AsOXXi7O6CzpUiJLp2cAML8wjX2zUocAM7LdobZ1Hkv LyzNkJOn/m97oqXoxBjCp2UhqaGZLbEPJlZBdGEBKx7MjR8GPinnI5g3jFZ7dPpA1cwQ +Lc8ZPcDSuIKWCClGrx2xq2uNpThP8YgtmnNS8m/2Wk/Oa8JbufuSP30xn/fujTeSsAn R9zBaxF5b15lRySYNKnXM5feS8+7t8oIPwOPeSA3Wci7KmW588dIxIifoXmdlatDS+Ef Zx7gzHmO8H1ioBFdVer+wB3T4upNtgDsihreYZE+r3hdLb+rA8JcnpCyn5CKj1yqALRf EQag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619767; x=1790224567; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=lM95YebAVIwfGCLo3GNoIrAehoSrueZBN/xi84kv11w=; b=ZjZ4gI06E23dImKp9F9iVaFM3sYig+hT/YOE7wrfozBcTnAi6zHekFsN0ZNLiTP0GQ grMOQlkC0jY0Ijs0XHeAD7J0BETR/0RiaXgRgWlLyAje5VRNHWTxoCfvYYWCZbak24K3 PPdevoEUoc02cucSXereFonNPanLo1A+UiCjCIXEHpfuCSbNKKqsDIYL8I1AACZRVz67 rJXpAlUNLxc9sHuvTkNracZBoXSP5MDNwSOZw+ycwPa+QTfEGxwtqDLbxb5Z9pyJ7hky Cd5JKbHwp0xFhlwu8UICk73iNdEiJBDi1Kk+t83yt9eePIY9Tq7LJwistNjIiFlVwRHw 75HA== X-Gm-Message-State: AFuF++kahyIwJZWq1Mu3eEcEYp70wNcgEW0gbloZWxn9gNYUN16mTaTO ADLvDFOMG7GR92X2o3nwejP1lEqbVS3OyoqvVJfqu7y3Ycmhd8J2rlCshI1WjnfEi5CpmEFWgn0 jRpiSLlM= X-Gm-Gg: AYBFou3d8nvSCi3XCqyjARNbs/bq9vzBFm1omyrqk+LHeUywHDEt14BhNr5mQ284D6e e35HiXLsFG+SdmhuL1zPZXeVKgPEUAZaVdG12NSrUAJ1C/dAZv1WZDAijzcYMsqIl4l2KcwOMCd aWwqmPdgl/3436QhDZpV5rfX21nrW5eowFBY1LjsIoTb5y1sU/DRfLTiZXYr1oNZasfEm/JK7XF 4G/UQ/KgZI6XbLYvL1jOQiz3cZ2sHiLzdpNYHBxchB5DIO8IPTFeVm8vUGxbjzQuFpN+rRKNaoU xKSyFYt0wcZhhFeGlbe89b8XXoOUHDhy8ft0TuTfXCybuzaOPEs/da4f/DoUdzdUVV+Zok3IfeL ZR2zsHQaj4GkdKYZFVObh9pPV7ijAhRLGraKLAu9Enqc4Onm2d0rYq69sm/5EmOpj85pon/xaDk /ek814Zz7r1zWCUT82KabKt/JZtxK/j0+l9u4q3dWvnE2bqJrgSjX6mqwNvlGESUDKwe5YwU5W/ xP/4Kc= X-Received: by 2002:a05:6820:199a:b0:6c7:1e67:852 with SMTP id 006d021491bc7-6c7d49f9831mr5308477eaf.67.1789619767224; Wed, 16 Sep 2026 21:36:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 095/101] tcg: Generic expansion of tcg_gen_ld16u_* Date: Wed, 16 Sep 2026 18:28:17 -1000 Message-ID: <20260917042823.542588-96-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:31::f; envelope-from=richard.henderson@linaro.org; helo=mail-oo2-x0f.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619936204158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 3 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 16 ++++++---------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 75e124b8091..a6b479ab2d8 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -140,8 +140,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 -void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset= ); - void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); @@ -166,7 +164,6 @@ void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_= target_long offset); void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 -void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index c4078ca5a1a..4f630f7e32a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -34,6 +34,7 @@ DEF3(ld, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld8s, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld8u, TCGV, TCGv_ptr, tcg_target_long) DEF3(ld16s, TCGV, TCGv_ptr, tcg_target_long) +DEF3(ld16u, TCGV, TCGv_ptr, tcg_target_long) DEF2(mov, TCGV, TCGV) DEF2(movi, TCGV, TINT) DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 5c644c06609..539911ff94e 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -915,6 +915,12 @@ static void gen_ld16s(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_ld16s, type, dst, base, ofs); } =20 +static void gen_ld16u(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_ld16u, type, dst, base, ofs); +} + static void gen_mov(TCGType type, TCGTemp *dst, TCGTemp *src) { if (src !=3D dst) { @@ -1519,11 +1525,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_ld16u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_ld16u, ret, arg2, offset); -} - void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_st8, arg1, arg2, offset); @@ -1542,11 +1543,6 @@ void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tc= g_target_long offset) =20 /* 64-bit ops */ =20 -void tcg_gen_ld16u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_ld16u, ret, arg2, offset); -} - void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_ld32u, ret, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619845; cv=none; d=zohomail.com; s=zohoarc; b=Mp7PfAFnfXKuTvRM655tt3wVUET0DwT9NMWnn8OVkvuo/6RHW6rptRqmrymtylNVuHu2RTiRcdfdIqB8Vx/k7DcKzEhDhH3uQKl2MIimV1PwwI/u4XMPCli8BAOxrkxr8vKh1fHRfmt0/57TAiKMfHUdzTAzkzUgkVe7tAgrmVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619845; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=V6/XatSt+9Z5qJp9S2fZs29JeeUqwriGzVhNU7qPSbo=; b=T9MIkH6cVk2PGYs1kNyP4/qMN5kJ66I+ssYcmZ4kHqiQdxvQ4MklwH9v+tb9YAtJTRVzpNfsvg9gBLzb6I8DVRsgRScqK/6KmVpipbhpg8t+nhlwT2DyeCeJBZjsoSNLPbyR9i82GsKckuKzJJV67CPsS8b6vS4fjNXFAN1HTko= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619845097547.5863310154193; Wed, 16 Sep 2026 21:37:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rj-00067g-UA; Thu, 17 Sep 2026 00:36:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r2-00041W-40 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:12 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r0-0007y4-Cf for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:11 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc1cea4c7a0so195826a12.1 for ; Wed, 16 Sep 2026 21:36:09 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619768; x=1790224568; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=V6/XatSt+9Z5qJp9S2fZs29JeeUqwriGzVhNU7qPSbo=; b=eNktkJTakGPK1mAUDVobtsFDO7A4e7jGPfTq/305MGdtGxR7D4ZZoMbIGgq7bWhrZs qtYHZSF8rgpc4Rz0oI6sMj8KvhjNYgoCejEe5EV3MyLTDf8umbrXjyJOBn39Zv0bGuQg k6NIIg5CEkJ0N3ov6iFbb6xpPFDPnaNB4M68JZ0463ZCUC7/fPmJE5PtG9PReWiqk8q4 fjw0VZH+seQAtEvCcjtW3/hnISirQrynEfkZtxh9FQ9Xc5ZAo09Ho3FURwSDQls0A/fX obmjf1i8inNGKRan5KlxWsAB0TFW/d3ZqozAd9faZ9Ah7jbEVCcSV0c2Bf9+hKaMxMG4 ZcfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619768; x=1790224568; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=V6/XatSt+9Z5qJp9S2fZs29JeeUqwriGzVhNU7qPSbo=; b=NE6dFfYmRNeCuoaSZfxIzFueV7+ZFaWPpoLUWmpQ69M1FXyueS4vaPQnn5/NnOBKsU 8PCAKwxHuw38Uq9HtuxwJer7d4d2v2LQhflSU/+UeZfcvKUTCHdaBmwJXkfHBPjVm7Vc uSW7E51MrZCDB8dzPRO6b6nnPdI/oBrXuZmfatU5NxiWlQWdAtTg8WCMNeANsq6DlkTF pTBLN+LbDKRiE6qrSRExHmE74uVl/CeH3oaprTCR5NAg4AoGLyc0/40KOyKgLw++RpVe LsBc0m8RzJT0ih/48reAYBryYcq9+qCIwZbQPROaNoh6a8tzkt+qB9pwEkUwPXAf7fpa 6ttA== X-Gm-Message-State: AFuF++lxp9VNqG1ifvXjpGYiFD2Tk7FhbleiHbMbP5/4fdw/MX1iafb0 hImTVGHzTP/xJ6cWs9ctnTyy61tnytyKXKP7V5NnfshAKpGOigX5FlHQBjmMClJIMkXyps29l+7 08paA X-Gm-Gg: AYBFou2DbBZnf52dRparZ/4mdtyG96jQVYsut9tEkoBAuVKvAUTqeXZ01PdXkEn5LP/ +J7JlJZraUSgYM9l0He8nTrFMAQN6w0bnPnTUpiKDLDV8SZ7nhpHd0QYu00zs9OTgehp9aHBIsU X39ur9VJcbdzDZOkUWY3gqK5gHS46aI3ms8+0eALBeepOFxfeBdyOFLjfIGjpyc0nem6zEoo0vs Jdf9RX5pscQej1/29FBZVWfrT2n9/kUXDDiQ7KwMHVRxtuKTTY+5q7RAjO3yCwdOC5BdnjO47/E /OH1os1ybHKo2Ojj0Ts4yge3MWrf1PpKUxJmEXiKxcPYStxewdL0rMZTfIv+tbmH5iNshw2FOQP Uypiw0+oFc7M1/f1XGgeAYemg3Icrltxj4RE22TE4mFsVfQopdWdbpgq6Zqst7x0juq6Ozjv0Pb 38j4zwjx3TgWRKuBSdWGffwYLMmxnTwkohC8DOBhgTJbC9kE6+dfHKk62fAuGpfnku+hWTbjeJ8 NWJ/kM= X-Received: by 2002:a17:90b:1845:b0:39d:f259:3363 with SMTP id 98e67ed59e1d1-39e1e491d27mr13164071a91.12.1789619768087; Wed, 16 Sep 2026 21:36:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 096/101] tcg: Generic expansion of tcg_gen_st_* Date: Wed, 16 Sep 2026 18:28:18 -1000 Message-ID: <20260917042823.542588-97-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619845914158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 17 ++++++----------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index a6b479ab2d8..942d8168325 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -142,7 +142,6 @@ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_= i32 in); =20 void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 /* 64 bit ops */ =20 @@ -166,7 +165,6 @@ void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg= _target_long offset); =20 void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); -void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); =20 /* Size changing operations. */ =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 4f630f7e32a..a002163b04c 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -69,6 +69,7 @@ DEF3(shr, TCGV, TCGV, TCGV) DEF3(shri, TCGV, TCGV, TINT) DEF3(smax, TCGV, TCGV, TCGV) DEF3(smin, TCGV, TCGV, TCGV) +DEF3(st, TCGV, TCGv_ptr, tcg_target_long) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF6(sub2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 539911ff94e..9216e8cb95d 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1374,6 +1374,12 @@ static void gen_smin(TCGType type, TCGTemp *dst, TCG= Temp *src1, TCGTemp *src2) } } =20 +static void gen_st(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_st, type, dst, base, ofs); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -1535,12 +1541,6 @@ void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i32(INDEX_op_st16, arg1, arg2, offset); } =20 -void tcg_gen_st_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_st, arg1, arg2, offset); -} - - /* 64-bit ops */ =20 void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) @@ -1568,11 +1568,6 @@ void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_st32, arg1, arg2, offset); } =20 -void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_st, arg1, arg2, offset); -} - void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg) { tcg_gen_sextract_i64(ret, arg, 0, 32); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619892; cv=none; d=zohomail.com; s=zohoarc; b=P4jZK0/zICdqTlfG9i3d7cXZ0GUuCngjKhV021w/ygHbu2tQMkM6TWzGqvqxftlD/HjrDGAVQ4BBy9wyYH2d51WLxE/rJMGsopfvoON8nuIHNtYki7lOGlCypVYCWioVyztZKfx3GrDAAYUyq+ImK4s/wYNaBl3zL2f9FwBLoAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619892; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=07fvl0WaBM0yySjdM7M1wp/5mJtQ8eihJCwoTtXcH9o=; b=XDiy/TBc57M5rO2AR9YKMI/mDP6yR+RMdvdAF42dSUfK+fmpGdUgGC8U46qrYmuCCUC5jrdWN7uFxSBztJBbq87VVlbgtJo/oLm0WcpGJd/VBTCmIWSVFxSF0xbFsRxh6r/KLOxpJNG89o877p/7VrzGjUWHXXmF9h0g+52I72w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619892280205.60752551467704; Wed, 16 Sep 2026 21:38:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rT-0004Qd-Jq; Thu, 17 Sep 2026 00:36:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r2-00041X-41 for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:12 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r0-0007yB-Cz for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:11 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccd4f99dso360866a91.2 for ; Wed, 16 Sep 2026 21:36:10 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619769; x=1790224569; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=07fvl0WaBM0yySjdM7M1wp/5mJtQ8eihJCwoTtXcH9o=; b=L2DmD7/91kQsejH1w8BXt+UyrVqZRLaW5kAuMs0VPAkOWir+cweIIlhzhhLz6Riv6e 6o0JHUeqGmQ018QlZd1tbx4PYDwGN9rmaK6evJHepPYF/BykvF2Sszs+RcbIC/8b6STU WI6aCn6foA5FY55Re07F5gCFy5Hi+8UpC0tpyljEponxpAWOFaRkKVeBjaYMSL1JTeIp ZhCmF+2+jOO1wvfKjZrY/2ROExVbadwityWE9UWDY4ZOq8Y2ABe0nmPPnl+WEZHUKSR0 B2gXxSDuhh2t7FUGI0TYaH5WXHcehJZv7GGmqxrJ11BK0bx3yE1mpxNV5p9kVWGwV0Kk RCbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619769; x=1790224569; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=07fvl0WaBM0yySjdM7M1wp/5mJtQ8eihJCwoTtXcH9o=; b=caQRlBuPULEX3KUS86hLVFyW7nm59NUQa43nmhjKZ73fsWwFsDql0bBh+8EeZ3h7HT u91vTbpJ1LNlYVBMsFLu8BrAQ53atnYTNstKGlIZRi4BjO/83olWENPTofB54G9OpZky MzHkwY57FuUKVzDnfJdxn9lOL3gKNTa6eTT9Peh2SWsU38QhpuE9DzGHNUogcuSHMgm1 alYI1+O1wPxQHM2uVbAseJoC7tYDNEaf7YTKx6bNqBhHU8us2HLWEGl18JxrXkBHkNMi AUDOcWZRcNBrKfbIZDZGeYg90xAzxISZV7E0pVMD7C1oxaSfIgRRG1IbadXttf7Ugajj xwfg== X-Gm-Message-State: AFuF++liHLUF+lz6tApKT8mOkHP+blmC6Ka+kZWTKUjJ4sk3zZrM6YvR VjkJnWY0RwWnoa1gWLA8kF0IC1ZE405FGRaC7BhPV9OtROILB9j5aSJTxE6ZwruaKnQkdkVnn/+ Nz9f3Z78= X-Gm-Gg: AYBFou2MCk/Ucly8sBTwPdRdqJp1+rzPJgq0yelJ7hhnqR6fTqcO3swUYt8I3oyTBBs 6hXNZbCa0/yoaAXMMfzB0OgwSh1e23u7xccUderCVP5wsc8tv75zukKzETWDmcASlGF4TdEbwGI CSipUcZfeTvLRG5ZaInGYrciXtIoyAcFyxJ+juY9jNTC18GpUWeniIZiJvfUz8j+frAtx4+rysX FntPwiLNibET5zqxylaU72xACntqeG9k3ekb3ZLE90vQAQd8fB8NF7cVALgOGjsoJI3CpaRBxNq tKb791Fo3pjQf1KkUNnL1dNIIn9LzzpRKzDRmpvTHaFmBcP1hcPvKT6PAL9TIEZBfWcXPRToZuN ELCS1ETYnYwb4HTUHYIrVbZD0/TWQEesszYmAdA6E8OuYEpuF2lA0mvr45cfrFQ1jocbiqik1+f XeWYriD/bpkS8rriZMitH97M4YYNHct/VW2grHniuiDboViEL0/CzIakQjaJQTEH4sgpxi5e5Zn zO5yjojBxF1YnUPWQ== X-Received: by 2002:a17:90b:3c91:b0:39b:370e:c807 with SMTP id 98e67ed59e1d1-39e1e4c5116mr12396400a91.17.1789619769094; Wed, 16 Sep 2026 21:36:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 097/101] tcg: Generic expansion of tcg_gen_st8_* Date: Wed, 16 Sep 2026 18:28:19 -1000 Message-ID: <20260917042823.542588-98-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619893973158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 2 -- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 16 ++++++---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 942d8168325..0640774f8b1 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -140,7 +140,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 -void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 /* 64 bit ops */ @@ -159,7 +158,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in); =20 -void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset); void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index a002163b04c..0bb9f894564 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -70,6 +70,7 @@ DEF3(shri, TCGV, TCGV, TINT) DEF3(smax, TCGV, TCGV, TCGV) DEF3(smin, TCGV, TCGV, TCGV) DEF3(st, TCGV, TCGv_ptr, tcg_target_long) +DEF3(st8, TCGV, TCGv_ptr, tcg_target_long) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF6(sub2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9216e8cb95d..080c7ce1982 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -1380,6 +1380,12 @@ static void gen_st(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_st, type, dst, base, ofs); } =20 +static void gen_st8(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_st8, type, dst, base, ofs); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -1531,11 +1537,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_st8_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_st8, arg1, arg2, offset); -} - void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i32(INDEX_op_st16, arg1, arg2, offset); @@ -1553,11 +1554,6 @@ void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_ld32s, ret, arg2, offset); } =20 -void tcg_gen_st8_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_st8, arg1, arg2, offset); -} - void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_st16, arg1, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619983; cv=none; d=zohomail.com; s=zohoarc; b=j/fRpK6R4c3obutGhKJadd3erfixvShNxz1wXArd/6NpZyKkUmloKoEdSTOCv0jDm24AYro9PhqF/GbdfwN5bNghay+xBojtHkciJuRXF9yFq/6Wr+HXkaw3r5yU5ClPeFyb29PhO59uvElx1frynpok8CadT7/jZ72C6d6EKVQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619983; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=fWPVvphMxFaV7wkyvg2KgJ5icmQKQuyffqXeud25IRo=; b=ia9XFIF5AsXNR62WQIxSDwc8q1TPGXUwfACm0nUJGQ6HT44GtlzWWqR57sRnQqa5qrJyJ9ehgBCpESX9p/0tMM+834rRVTjSiP6dm4CCzAaGLK4JZ6HiHc7iDlTswTMRAC3xq9CNQSOn3a1nbRr9iUyoG+58voYSfa2/dDmag2o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619983358567.9157190922199; Wed, 16 Sep 2026 21:39:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rZ-0004zE-9e; Thu, 17 Sep 2026 00:36:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r3-00048q-Ha for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:14 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r1-0007yN-Fi for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:13 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-39dbdfaef3cso372250a91.1 for ; Wed, 16 Sep 2026 21:36:11 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619770; x=1790224570; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=fWPVvphMxFaV7wkyvg2KgJ5icmQKQuyffqXeud25IRo=; b=ZiHkRZ+RgqYBA4IRg5d1Rfb0/h3BRTZui5XrJiMl8pB/2lO/eh4Ds5yGyk4fxk8wwn dl6D0zASp5US+BjZsQCIWREDtPbfNNS6ahKMP3VZvHL1yAHn8MglLo0HGCKKIeu3slXA yDqD+PCD6KRuDMPdpjT9brJM1qGuLhX8L2mGgYRSctWr7Yqf1HmEXYuBuccvWfNpEUeo 8eOHXGDfaObBSi9uxZDehJ//K2vZ2wB7N7CK8F3bGmM772dentgRVUf9henSvu41a8dp Oh84VHK3jJGkVjJR4xCoO4Swb57F4PJZ23PW2Xfcc4GOCqsYrCEPXv4/7v8Px4L38BV4 KFiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619770; x=1790224570; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=fWPVvphMxFaV7wkyvg2KgJ5icmQKQuyffqXeud25IRo=; b=T1cRGgnyA5LKRH5fik0TDvcqMq3Fpbg8INVycx7MkQ/7hcBAwqZ+PQWmxGNHnVd/ap WquF4bW8Drtv9SC+lVIFlOaQtsxL05b8Kqbc0X2S31dHMCpEc/Cw2abGx6jow+zUsKBj fBQZseQWUMifghcG+GCbx5JfV8o0mU/wySC2QGymGVE+3UmAN0xZ1loTF0Y5y/Rv+SK0 fUIiBgu36OpRWdTBGw3pTqn6piPg8P05fyiSunrd2ymZPw1PeX5Gt3w1Dyfo3dVZIUjc h4Q4A/UOrsUzieb6kQJXMRYmRGwAIFUQCPi6935s1F53JdVNvzjm71CQmZn3k88DPgeJ Ri3w== X-Gm-Message-State: AFuF++lhcvF3eYSYGW0Dr9v0HGTwCJcb2X7VFb/lZQE2bmUiOQ6k6/RO T9+brjImVnRK/HeZNtpTQlQ9amfhMsCUNpXgE2/8QhCLDbPiZbthwWfFP5CnN+WCWFFQVzt1QhT XqHxbjG0= X-Gm-Gg: AYBFou0tAENTBNpHzLpHAYmLhUu8EWTui6OD00RBw3Xy4BrKl2dygb7MIzK4fi07j2Q KyhoBv0FbNjqd/0FV6BlfYkCWTrmIO9Lf0OkATJDbpGv1IzZCk7zQ6BElFx2Fb6Z9csRSaVhN6Z eKS8IO5LSdiPYARjmf32FZ3yY81pp4gmVdvaOb/kesW0HywH6+EcELz/RmmJWTMfMIHJjIYKeqE u2HGBKYQDLIRvDfjo351FndD2iFYS78du//L5U318Xathxbx8X91iQ+QNIiLTI68WoS3mIqhEoj NE14PihnTHvxo4lCBO2tIJ6s1A/K0Z172bRONl+XYgXXpzhYTlfL14lveOWO57o2LdC2WHg7wRT YgfbtYEH7ZZV4VFCZ5uGx4IZbcQWggoeeKfcDv0b6HznxGmrM6aYYurwLY+ElLOHgkjCtRyB1Z/ c02z4h40yNdRZpWdVDnVjLqEtOC0KKrIQlS3WF41PctYRnXe1RZSaMQSJO1c/vvtBAirJhfVtvq 5nia1Pw0+gHxUVtxg== X-Received: by 2002:a17:90a:f09:b0:39e:218c:d47c with SMTP id 98e67ed59e1d1-39e218cd674mr9282258a91.9.1789619769924; Wed, 16 Sep 2026 21:36:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 098/101] tcg: Generic expansion of tcg_gen_st16_* Date: Wed, 16 Sep 2026 18:28:20 -1000 Message-ID: <20260917042823.542588-99-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619984363158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 3 --- include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op.c | 23 ++++++----------------- 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 0640774f8b1..604ead6b5ed 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -140,8 +140,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); =20 -void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset= ); - /* 64 bit ops */ =20 void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); @@ -158,7 +156,6 @@ void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); /* Replicate a value of size @vece from @in to all the lanes in @out */ void tcg_gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in); =20 -void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 0bb9f894564..5657636fa2a 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -71,6 +71,7 @@ DEF3(smax, TCGV, TCGV, TCGV) DEF3(smin, TCGV, TCGV, TCGV) DEF3(st, TCGV, TCGv_ptr, tcg_target_long) DEF3(st8, TCGV, TCGv_ptr, tcg_target_long) +DEF3(st16, TCGV, TCGv_ptr, tcg_target_long) DEF3(sub, TCGV, TCGV, TCGV) DEF3(subi, TCGV, TCGV, TINT) DEF6(sub2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 080c7ce1982..9317c9ca792 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -203,13 +203,6 @@ static void DNI tcg_gen_op3i_i64(TCGOpcode opc, TCGv_i= 64 a1, tcg_gen_op3(opc, TCG_TYPE_I64, tcgv_i64_arg(a1), tcgv_i64_arg(a2), a3); } =20 -static void DNI tcg_gen_ldst_op_i32(TCGOpcode opc, TCGv_i32 val, - TCGv_ptr base, TCGArg offset) -{ - tcg_gen_op3(opc, TCG_TYPE_I32, tcgv_i32_arg(val), - tcgv_ptr_arg(base), offset); -} - static void DNI tcg_gen_ldst_op_i64(TCGOpcode opc, TCGv_i64 val, TCGv_ptr base, TCGArg offset) { @@ -1386,6 +1379,12 @@ static void gen_st8(TCGType type, TCGTemp *dst, gen_op_tti(INDEX_op_st8, type, dst, base, ofs); } =20 +static void gen_st16(TCGType type, TCGTemp *dst, + TCGTemp *base, tcg_target_long ofs) +{ + gen_op_tti(INDEX_op_st16, type, dst, base, ofs); +} + static void gen_sub(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { gen_op_ttt(INDEX_op_sub, type, dst, src1, src2); @@ -1537,11 +1536,6 @@ void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg) } } =20 -void tcg_gen_st16_i32(TCGv_i32 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i32(INDEX_op_st16, arg1, arg2, offset); -} - /* 64-bit ops */ =20 void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset) @@ -1554,11 +1548,6 @@ void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2, = tcg_target_long offset) tcg_gen_ldst_op_i64(INDEX_op_ld32s, ret, arg2, offset); } =20 -void tcg_gen_st16_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) -{ - tcg_gen_ldst_op_i64(INDEX_op_st16, arg1, arg2, offset); -} - void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset) { tcg_gen_ldst_op_i64(INDEX_op_st32, arg1, arg2, offset); --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619941; cv=none; d=zohomail.com; s=zohoarc; b=PRpyCvxgpKkUXTB9nYFMaZB9sX7PvpNBw1c+w5/XQrMkFQ8E2mN+OJMmQqFF2ie6hZflcHP/JmUfWQXVv4IawT95hBxwq4OYR+dlnn8DxjiP/FMbZStc7+2VwJ2DWJNphwCDtz67m9CTk3oONqZmzrR1kg+cGZ3FYo3gzGtrl2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619941; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=0EMgWlSGdn2kbxieErkqcHE7QNb7o5bu+ZeG+Og1EMQ=; b=FFlPRumtgw+JP+onxQzSIWaZlCM9Oi62Le4oZ576R1LJ6KnUiZOvEi4tkArSGpmOl0b9hASOTu9dti/7HoPQiyq1dOum8WQlovQ1oQNyv7fP1eVSXBBKjCXs9+ihkmNhOj8GcI2fWe/x0everMKzi5a172SBCYiNXFao7/847Yw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789619941256457.2698087621633; Wed, 16 Sep 2026 21:39:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rg-0005lS-FA; Thu, 17 Sep 2026 00:36:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r4-00048r-8u for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:16 -0400 Received: from mail-pz2-x0e.google.com ([2607:f8b0:4864:3b::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r2-0007yT-FW for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:13 -0400 Received: by mail-pz2-x0e.google.com with SMTP id 41be03b00d2f7-cc4c08393b0so336077a12.0 for ; Wed, 16 Sep 2026 21:36:11 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619771; x=1790224571; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=0EMgWlSGdn2kbxieErkqcHE7QNb7o5bu+ZeG+Og1EMQ=; b=K+3Xr/sd4XBXKhtr8EQkp9k7g13gyS7ZbA5ct9EV8QlZM2TOM1dMTy4/GAktulRPLt oEfn9cx3NR+WJtTqjAtaInEr5qDFlRlTbKssIesXoisO2tb6f193BjctH899wF5CHrQq 1FUmQw+YY/Wi1LJ4S0BELwAYzJaHdhqXBEDXXcBAsVggFyaCU+JQPlAjcoJxsJoHCFSQ +jhR0/R/tA92VAbMQIvXyHd2tdbeNH4t2PSEM5vzA+vYxRkI9YJc+FtE53oSZM1TzOFs zT/X3/FlEf7XeEBZmUm1AnNJzjpdUBfCU9Fz+9dtboEbx5HPHhPyUGRGL3YHWGKzEhKH Y/AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619771; x=1790224571; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=0EMgWlSGdn2kbxieErkqcHE7QNb7o5bu+ZeG+Og1EMQ=; b=i3qfHY5R5tvQMV1taHGkrV7jbEkalVdwLmQMtnHC7Zdo2iJI7MTMmlQpMWbJnP2bky QYZBzqgX9p2nef8HbLjrn0Han+HjjwPFZFzU5N0vb8kcCkja2dOHLNSY1IimwXF7nSXx glUOuwfJzjrLKkmi+ceodJTqk3Flkgx6Uk/mhqwA/6JX9VnvqRLMIN3xPKwlaWu3/dvn apui7TpDYKanuyOfnkg/nbbKz0BWT5TwE12C9ZSlENRw9DzIR3QEgqZR93eoSFwNXGvX kR1rfpebdfbVllkMzOErUPZOJRCVsQgpzT1pFMQLCSob8aQ4YrPNUbz+cRSUH6NEA800 Ocqg== X-Gm-Message-State: AFuF++lsrsTzNW2I6OEY6OCmd6zVzeUjU0NaGDUBRo2swbWW+RmLmVOG 2HNKja4YKBoveqQGpwab53iPACgQA/oRiVuKs9IBuNiyRQ/lyVHd/FaK7tLduZ6Z+98cthz0hMS 4/44hDak= X-Gm-Gg: AYBFou2JR5dQbLc839tc3t51t6JEUsBQBN+PbrXI1C1G6xpxLhI2h3qGuxFd/9mT/1E Yqux+5t2RDbYdSplRJqeL+xVyoJG9DgZ1TNsCph63tkF7t1HUiP9fjyzK4HZySXN5tG8naIUq4E TepF6sLRLyLnVxnadr0xMHtjL55eKaSQsKYHrICoZAV+A/YmLQX+7f/0wTQQVc8r2cJXOUEdiqL uYU8ekf556Vxn/B301cby+r/i+xB3qNiKhUav2oIHxJXf/rWeJMRYEGlj6v9DBuOLnDwl3hK1WL WovoPTn2sXQ+vwKwPAbsCCEFYDs42MTh8hOz9Z2rrhGA9S3yMVk/iCv4Y8VTVQXyhY7seId2C/G zmNBc+ouOzxSce02p8NtzIHMCapBIRv2AVNPL/+UiDKykKxu3Zk/IcmbXPmQvTWIu+lIhYHwSe+ Ea/pAwxd53PK1CjM5QQciaMcLrW36I6v9J7l34q/Vr+20o1W4cjE49xxAQhGaQIDH7Vu7bxp8bK 1zjFeCnESyTAN9bGg== X-Received: by 2002:a05:6300:614a:b0:3d1:8876:fb1e with SMTP id adf61e73a8af0-3dd5f06f373mr13058299637.0.1789619770887; Wed, 16 Sep 2026 21:36:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 099/101] tcg: Generic expansion of tcg_gen_dup_* Date: Wed, 16 Sep 2026 18:28:21 -1000 Message-ID: <20260917042823.542588-100-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::e; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x0e.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619942356158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 6 ------ include/tcg/tcg-op-def.h.inc | 1 + tcg/tcg-op-gvec.c | 41 ------------------------------------ tcg/tcg-op.c | 16 ++++++++++++++ 4 files changed, 17 insertions(+), 47 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 604ead6b5ed..26431e71bcd 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -137,9 +137,6 @@ void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); =20 -/* Replicate a value of size @vece from @in to all the lanes in @out */ -void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in); - /* 64 bit ops */ =20 void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); @@ -153,9 +150,6 @@ void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); =20 -/* Replicate a value of size @vece from @in to all the lanes in @out */ -void tcg_gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in); - void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 void tcg_gen_ld32u_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset= ); diff --git a/include/tcg/tcg-op-def.h.inc b/include/tcg/tcg-op-def.h.inc index 5657636fa2a..4d121470bec 100644 --- a/include/tcg/tcg-op-def.h.inc +++ b/include/tcg/tcg-op-def.h.inc @@ -22,6 +22,7 @@ DEF4(deposit_z, TCGV, TCGV, unsigned, unsigned) DEF1(discard, TCGV) DEF3(div, TCGV, TCGV, TCGV) DEF3(divu, TCGV, TCGV, TCGV) +DEF3(dup, unsigned, TCGV, TCGV) DEF3(ext, TCGV, TCGV, MemOp) DEF2(ext8s, TCGV, TCGV) DEF2(ext8u, TCGV, TCGV) diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c index 27f3807b004..0fec60a5cf3 100644 --- a/tcg/tcg-op-gvec.c +++ b/tcg/tcg-op-gvec.c @@ -426,47 +426,6 @@ uint64_t (dup_const)(unsigned vece, uint64_t c) } } =20 -/* Duplicate IN into OUT as per VECE. */ -void tcg_gen_dup_i32(unsigned vece, TCGv_i32 out, TCGv_i32 in) -{ - switch (vece) { - case MO_8: - tcg_gen_ext8u_i32(out, in); - tcg_gen_muli_i32(out, out, 0x01010101); - break; - case MO_16: - tcg_gen_deposit_i32(out, in, in, 16, 16); - break; - case MO_32: - tcg_gen_mov_i32(out, in); - break; - default: - g_assert_not_reached(); - } -} - -void tcg_gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in) -{ - switch (vece) { - case MO_8: - tcg_gen_ext8u_i64(out, in); - tcg_gen_muli_i64(out, out, 0x0101010101010101ull); - break; - case MO_16: - tcg_gen_ext16u_i64(out, in); - tcg_gen_muli_i64(out, out, 0x0001000100010001ull); - break; - case MO_32: - tcg_gen_deposit_i64(out, in, in, 32, 32); - break; - case MO_64: - tcg_gen_mov_i64(out, in); - break; - default: - g_assert_not_reached(); - } -} - /* Select a supported vector type for implementing an operation on SIZE * bytes. If OP is 0, assume that the real operation to be performed is * required by all backends. Otherwise, make sure than OP can be performed diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 9317c9ca792..0c27c45021a 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -761,6 +761,22 @@ static void gen_divu(TCGType type, TCGTemp *dst, TCGTe= mp *src1, TCGTemp *src2) } } =20 +static void gen_dup(TCGType type, unsigned vece, TCGTemp *dst, TCGTemp *sr= c) +{ + unsigned t_width =3D tcg_type_size(type) * 8; + unsigned e_width =3D memop_size(vece) * 8; + + tcg_debug_assert(e_width <=3D t_width); + if (t_width =3D=3D e_width) { + gen_mov(type, dst, src); + } else if (t_width =3D=3D e_width * 2) { + gen_deposit(type, dst, src, src, e_width, e_width); + } else { + gen_extract(type, dst, src, 0, e_width); + gen_muli(type, dst, dst, ~0ull / MAKE_64BIT_MASK(0, e_width)); + } +} + static void gen_eqv(TCGType type, TCGTemp *dst, TCGTemp *src1, TCGTemp *sr= c2) { if (tcg_op_supported(INDEX_op_eqv, type, 0)) { --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619937; cv=none; d=zohomail.com; s=zohoarc; b=cq/obycvCaSc+vSWjAvmGF+lNBJy148LArOcQxM2/WokYsDiJrjSqyoxRZ4ekHA79m0+jyhzlPErIa5j3p9vch8btsQN7eMNImhylbF24KF/HX7ay5H+eS7u7e8hz5E7YP/hVJuFaxVNIY9oxQ0BUYaXwpdagPfpK9YS3v6/sW8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619937; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=nEvuuw+iqC3+8eF+i7MT1moAPIwnUjQ+Hl1lv6vNvY8=; b=dXGa0qfAct9SleTwK1xT5lYpgAdjxISFbMCiwH3LZGsGwnNSBAAadGIMhvbBO27bcrHm/OFhYSFApCq5is3Tc569w8Lrw6Sbpskqu1hXmee6h04+7bQy4RFxMwoaQ9312cNeB0TM3rABvA8JRkhchXoCvg7otZ0a+gbko96rh1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961993777376.49652491750953; Wed, 16 Sep 2026 21:38:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73s0-0006rW-0G; Thu, 17 Sep 2026 00:37:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r6-00049s-2m for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:16 -0400 Received: from mail-pj2-x0f.google.com ([2607:f8b0:4864:39::f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r3-0007yh-Ih for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:15 -0400 Received: by mail-pj2-x0f.google.com with SMTP id 98e67ed59e1d1-39b2ad83dc6so360916a91.0 for ; Wed, 16 Sep 2026 21:36:13 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619772; x=1790224572; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=nEvuuw+iqC3+8eF+i7MT1moAPIwnUjQ+Hl1lv6vNvY8=; b=uBNCzDS+rhiPYeqootrC94xOYVxSFSVGx9zNxi0gxkesbbh1UE+tTOxNT3QqMPvrT2 OwR7fdEbcgP0caTxfNrG0uXJwKQZ/S5LrfZnmVNgDTFyeY1LC+Px8yXKafqMUUi2NAQe gfUhyoD6nesP3pIpqHodTDY3hGhemhrrLJcAxtS9LfgQaCmGARJWeNQveUQjOPa5M1Y6 EH/3yuF9IkYsd/oCXkCZ4Aic+GcJb20CYhf1ZivUb2U/Z78eKfRicj68jL2vko60kCyK IG5iQn50rGAtOoV+zutN53M9DcgLcP+R646RY0ZhJRquefwJd0vuNn+vVY4fEJrfUsfg adUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619772; x=1790224572; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=nEvuuw+iqC3+8eF+i7MT1moAPIwnUjQ+Hl1lv6vNvY8=; b=CjnNtvQqYyxJp6b4wSDPX6oXwb/h0C36xfvtgksCPI55myagDxqLQDc4US7YiG1J0N U0KsuDewaDriQyknbQjicgzMdVxmSBpMl0FB7BfkOkNM6p2WbJlQK43IWx4QxqNpX1Cn yZqi0E7oEGkX3o5KdmcXI43KACcBOndIVbGtrttlrbTr6rfebfJ8DBKw1gajzs9Rk4Q7 DDA285AZAWFaGC3DDik89BsIuHeOd5Jpn4vDHKQlT99RkoNJavBs0WyCb3gZqLu+vIuj SNQb62YV5liU+udM3irFDwSRvgVKijDEMeKpWBwUGO+WBRur7jbjICBA+0GRIvBwJYW2 obPQ== X-Gm-Message-State: AFuF++mEWWfP42WmgpdBmitVpB9xelDQ3rSVCD9FSY+1N+vYwXHg8BgP r9R1UioSqF3tmdKWHxzLhAWa9L3w2wQh1OgJ7qfonNuCML4Sx8KpvAplwBDGPkygOB0ciwExUS6 EiOI7rqk= X-Gm-Gg: AYBFou2ZR8XbkoJpb3FPfrlp7PoCo391JOBl92snI99ttVnl7qTMzX2vVeY7vC6HWrC khYoa7UvreM5EdsSOASc/tjsdn4O1RVuRKgsZpv+cgwgSipEZUyv6glMGOJyO9a7km0ABg6fU/a w4AP2TOpi9DgjpGVjYHO/H4ikHzaeyySxM9ZgTAoZPT2t9Lx1QZhJP3BV32cuH9xdbuaeQNZfbi thjSM5UAUgS0b+x/X6T0R2REQJWUemSV3zMD8KDxt1fVvjFk1J2zrGw6xmzYvwvYFjvW1qv9Gzr fU9xZbldaRyV8kU1wZ11xmCwKgWLlFSMhfryA+1eXFnsf5BOELoi4rbTGDdv7fO+3HR06gzT349 t51W6nHJzRClZZafFWX3NI9Og2bfPAMsp4eF9iBtsOOefHV7ithl7aNa++sSdYxYoyH6iRW5b3L pmMzh2q6h6XEqVaXHHx/R/W+eWyQncwafgXX53bKFXpDEIthshndFYwyslIYHHdwnZFFWpjKFEA k4rdK8= X-Received: by 2002:a17:90b:3842:b0:39d:f6a6:60d8 with SMTP id 98e67ed59e1d1-39e1e23e8bcmr11237324a91.3.1789619771804; Wed, 16 Sep 2026 21:36:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 100/101] tcg: Expand missing mulu2_i64 during liveness Date: Wed, 16 Sep 2026 18:28:22 -1000 Message-ID: <20260917042823.542588-101-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::f; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x0f.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, 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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619938300158500 Content-Type: text/plain; charset="utf-8" During liveness, we finally know whether the high part of the double-word multiply is actually used. If we were to decompose the operation earlier, we would prevent the removal of the unused value. This is fairly common with translated x86 code, where the high part of the multiply may only be used for condition codes, which may easily be dead code eliminated. Once we know the computation is required, expand the multiply by parts for hosts without ISA support. At present this is older s390x and sparc64. This is far more efficient than the out-of-line helper. Since this is after the normal tcg_optmize pass, do some minimal constant decomposition and value propagation for the subexpressions within the double-word multiply. Signed-off-by: Richard Henderson --- accel/tcg/tcg-runtime.h | 3 - accel/tcg/tcg-runtime.c | 14 --- tcg/tcg-op.c | 26 ++--- tcg/tcg.c | 210 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 213 insertions(+), 40 deletions(-) diff --git a/accel/tcg/tcg-runtime.h b/accel/tcg/tcg-runtime.h index 003c963bc7d..0dda2079fd0 100644 --- a/accel/tcg/tcg-runtime.h +++ b/accel/tcg/tcg-runtime.h @@ -1,6 +1,3 @@ -DEF_HELPER_FLAGS_2(mulsh_i64, TCG_CALL_NO_RWG_SE, s64, s64, s64) -DEF_HELPER_FLAGS_2(muluh_i64, TCG_CALL_NO_RWG_SE, i64, i64, i64) - DEF_HELPER_FLAGS_2(clz_i32, TCG_CALL_NO_RWG_SE, i32, i32, i32) DEF_HELPER_FLAGS_2(ctz_i32, TCG_CALL_NO_RWG_SE, i32, i32, i32) DEF_HELPER_FLAGS_2(clz_i64, TCG_CALL_NO_RWG_SE, i64, i64, i64) diff --git a/accel/tcg/tcg-runtime.c b/accel/tcg/tcg-runtime.c index 77c4024148f..44b48a1ea79 100644 --- a/accel/tcg/tcg-runtime.c +++ b/accel/tcg/tcg-runtime.c @@ -32,20 +32,6 @@ #include "exec/helper-info.c.inc" #undef HELPER_H =20 -uint64_t HELPER(muluh_i64)(uint64_t arg1, uint64_t arg2) -{ - uint64_t l, h; - mulu64(&l, &h, arg1, arg2); - return h; -} - -int64_t HELPER(mulsh_i64)(int64_t arg1, int64_t arg2) -{ - uint64_t l, h; - muls64(&l, &h, arg1, arg2); - return h; -} - uint32_t HELPER(clz_i32)(uint32_t arg, uint32_t zero_val) { return arg ? clz32(arg) : zero_val; diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 0c27c45021a..2a92bd37534 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -991,8 +991,7 @@ static void gen_muls2(TCGType type, TCGTemp *rl, TCGTem= p *rh, gen_mul(TCG_TYPE_I64, t0, t0, t1); gen_extrl_i64_i32(rl, t0); gen_extrh_i64_i32(rh, t0); - } else if (tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I64, 0) || - tcg_op_supported(INDEX_op_muluh, TCG_TYPE_I64, 0)) { + } else { g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(type); g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(type); g_autoptr(TCGTemp) t2 =3D NULL; @@ -1010,13 +1009,6 @@ static void gen_muls2(TCGType type, TCGTemp *rl, TCG= Temp *rh, gen_sub(TCG_TYPE_I64, rh, t1, t2); gen_sub(TCG_TYPE_I64, rh, rh, t3); gen_mov(TCG_TYPE_I64, rl, t0); - } else { - g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); - - gen_mul(TCG_TYPE_I64, t, src1, src2); - gen_helper_mulsh_i64(temp_tcgv_i64(rh), temp_tcgv_i64(src1), - temp_tcgv_i64(src2)); - gen_mov(TCG_TYPE_I64, rl, t); } } =20 @@ -1031,7 +1023,14 @@ static void gen_mulu2(TCGType type, TCGTemp *rl, TCG= Temp *rh, gen_mul(type, t, src1, src2); gen_op_ttt(INDEX_op_muluh, type, rh, src1, src2); gen_mov(type, rl, t); - } else if (type =3D=3D TCG_TYPE_I32) { + } if (type =3D=3D TCG_TYPE_I64 || + tcg_op_supported(INDEX_op_mulu2, TCG_TYPE_I32, 0)) { + /* + * Unsupported mulu2_i64 is expanded after liveness analysis + * has a chance to discard an unused high-part. + */ + gen_op_tttt(INDEX_op_mulu2, type, rl, rh, src1, src2); + } else { g_autoptr(TCGTemp) t0 =3D tcg_temp_new_ebb(TCG_TYPE_I64); g_autoptr(TCGTemp) t1 =3D tcg_temp_new_ebb(TCG_TYPE_I64); =20 @@ -1041,13 +1040,6 @@ static void gen_mulu2(TCGType type, TCGTemp *rl, TCG= Temp *rh, gen_mul(TCG_TYPE_I64, t0, t0, t1); gen_extrl_i64_i32(rl, t0); gen_extrh_i64_i32(rh, t0); - } else { - g_autoptr(TCGTemp) t =3D tcg_temp_new_ebb(type); - - gen_mul(TCG_TYPE_I64, t, src1, src2); - gen_helper_muluh_i64(temp_tcgv_i64(rh), temp_tcgv_i64(src1), - temp_tcgv_i64(src2)); - gen_mov(TCG_TYPE_I64, rl, t); } } =20 diff --git a/tcg/tcg.c b/tcg/tcg.c index 38e5928ccf9..88662bad966 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -3691,6 +3691,32 @@ static inline void la_reset_pref(TCGTemp *ts) =3D (ts->state =3D=3D TS_DEAD ? 0 : tcg_target_available_regs[ts->= type]); } =20 +/* For liveness_pass_1, allocate a new dead temporary. */ +static TCGTemp *la_temp_new(TCGType type) +{ + TCGTemp *t =3D tcg_temp_new_internal(type, TEMP_EBB); + + t->state_ptr =3D tcg_malloc(sizeof(TCGRegSet)); + t->state =3D TS_DEAD; + la_reset_pref(t); + + return t; +} + +/* For liveness_pass_1, allocate a new constant. */ +static TCGTemp *la_const_new(TCGType type, int64_t val) +{ + TCGTemp *t =3D tcg_constant_internal(type, val); + + /* This constant may already be live within the TB. */ + if (!t->state_ptr) { + t->state_ptr =3D tcg_malloc(sizeof(TCGRegSet)); + t->state =3D TS_DEAD; + la_reset_pref(t); + } + return t; +} + /* liveness analysis: end of function: all temps are dead, and globals should be in memory. */ static void la_func_end(TCGContext *s, int ng, int nt) @@ -3894,9 +3920,180 @@ static void assert_carry_dead(TCGContext *s) tcg_debug_assert(!s->carry_live); } =20 -/* Liveness analysis : update the opc_arg_life array to tell if a - given input arguments is dead. Instructions updating dead - temporaries are removed. */ +/* + * Expand missing mulu2. This is delayed until liveness because x86 + * translation generates double-word multiplies which may turn out to + * be dead with condition codes, and we may be able to simplify to + * just a single-word multiply. + */ + +static TCGTemp *la_mulu2_ext32u(TCGContext *ctx, TCGOp *op, + TCGTemp *dst, TCGTemp *src) +{ + TCGOp *op2 =3D tcg_op_insert_before(ctx, op, INDEX_op_extract, + TCG_TYPE_I64, 4); + + op2->args[0] =3D temp_arg(dst); + op2->args[1] =3D temp_arg(src); + op2->args[2] =3D 0; + op2->args[3] =3D 32; + return dst; +} + +static TCGTemp *la_mulu2_mov(TCGContext *ctx, TCGOp *op, + TCGTemp *dst, TCGTemp *src) +{ + TCGOp *op2 =3D tcg_op_insert_before(ctx, op, INDEX_op_mov, TCG_TYPE_I6= 4, 2); + + op2->args[0] =3D temp_arg(dst); + op2->args[1] =3D temp_arg(src); + return dst; +} + +static TCGTemp *la_mulu2_op3(TCGContext *ctx, TCGOp *op, TCGOpcode opc, + TCGTemp *dst, TCGTemp *src1, TCGTemp *src2) +{ + TCGOp *op2 =3D tcg_op_insert_before(ctx, op, opc, TCG_TYPE_I64, 3); + + op2->args[0] =3D temp_arg(dst); + op2->args[1] =3D temp_arg(src1); + op2->args[2] =3D temp_arg(src2); + return dst; +} + +static TCGTemp *la_mulu2_op3c(TCGContext *ctx, TCGOp *op, TCGOpcode opc, + TCGTemp *dst, TCGTemp *src1, TCGTemp *src2) +{ + if (src2->kind !=3D TEMP_CONST && (src1->kind =3D=3D TEMP_CONST || dst= =3D=3D src2)) { + TCGTemp *t =3D src1; + src1 =3D src2; + src2 =3D t; + } + return la_mulu2_op3(ctx, op, opc, dst, src1, src2); +} + +static TCGOp *la_expand_mulu2_i64(TCGContext *s, TCGOp *op) +{ + TCGTemp *o0_orig =3D arg_temp(op->args[0]); + TCGTemp *o1_orig =3D arg_temp(op->args[1]); + TCGTemp *i0 =3D arg_temp(op->args[2]); + TCGTemp *i1 =3D arg_temp(op->args[3]); + g_autoptr(TCGTemp) l0 =3D NULL; + g_autoptr(TCGTemp) l1 =3D NULL; + g_autoptr(TCGTemp) h0 =3D NULL; + g_autoptr(TCGTemp) h1 =3D NULL; + g_autoptr(TCGTemp) m0 =3D NULL; + g_autoptr(TCGTemp) m1 =3D NULL; + g_autoptr(TCGTemp) t0 =3D NULL; + g_autoptr(TCGTemp) t1 =3D NULL; + /* o0/o1 will equal one of the inputs or another autoptr temp. */ + TCGTemp *o0, *o1; + TCGTemp *t32 =3D la_const_new(TCG_TYPE_I64, 32); + TCGTemp *tzero =3D la_const_new(TCG_TYPE_I64, 0); + TCGOp *ret; + + /* + * At present, the only two hosts missing some form of double-word or + * high-part multiply are s390x without misc-insn-ext-2 (before z14) + * or sparc64 without vis3 (before ultrasparc t3). + * Both of these have ext32u and addci. + */ + tcg_debug_assert(op->opc =3D=3D INDEX_op_mulu2); + tcg_debug_assert(TCGOP_TYPE(op) =3D=3D TCG_TYPE_I64); + tcg_debug_assert(TCG_TARGET_extract_valid(TCG_TYPE_I64, 0, 32)); + tcg_debug_assert(tcg_op_supported(INDEX_op_addci, TCG_TYPE_I64, 0)); + + /* + * Split the two 64-bit multiplicands into unsigned halves. + * Via fold_multiply2, i0 must be non-constant. + */ + l0 =3D la_mulu2_ext32u(s, op, la_temp_new(TCG_TYPE_I64), i0); + h0 =3D la_mulu2_op3(s, op, INDEX_op_shr, la_temp_new(TCG_TYPE_I64), i0= , t32); + + if (i1->kind =3D=3D TEMP_CONST) { + l1 =3D la_const_new(TCG_TYPE_I64, extract64(i1->val, 0, 32)); + h1 =3D la_const_new(TCG_TYPE_I64, extract64(i1->val, 32, 32)); + } else { + l1 =3D la_mulu2_ext32u(s, op, la_temp_new(TCG_TYPE_I64), i1); + h1 =3D la_mulu2_op3(s, op, INDEX_op_shr, + la_temp_new(TCG_TYPE_I64), i1, t32); + } + + /* + * Compute partial products. + */ + if (l1 =3D=3D tzero) { + o0 =3D tzero; + m0 =3D tzero; + } else { + o0 =3D la_mulu2_op3c(s, op, INDEX_op_mul, o0_orig, l0, l1); + m0 =3D la_mulu2_op3c(s, op, INDEX_op_mul, + la_temp_new(TCG_TYPE_I64), h0, l1); + } + if (h1 =3D=3D tzero) { + m1 =3D tzero; + o1 =3D tzero; + } else { + m1 =3D la_mulu2_op3c(s, op, INDEX_op_mul, + la_temp_new(TCG_TYPE_I64), l0, h1); + o1 =3D la_mulu2_op3c(s, op, INDEX_op_mul, o1_orig, h0, h1); + } + + /* + * The middle partial products need shifting up by 32, producing + * bits within [63:32] and [95:64]. + */ + if (m0 !=3D tzero) { + t0 =3D la_mulu2_op3(s, op, INDEX_op_shr, + la_temp_new(TCG_TYPE_I64), m0, t32); + la_mulu2_op3(s, op, INDEX_op_shl, m0, m0, t32); + if (o0 =3D=3D tzero) { + o0 =3D m0; + if (o1 =3D=3D tzero) { + o1 =3D t0; + } else { + o1 =3D la_mulu2_op3c(s, op, INDEX_op_add, o0_orig, o1, t0); + } + } else { + o0 =3D la_mulu2_op3c(s, op, INDEX_op_addco, o0_orig, o0, m0); + o1 =3D la_mulu2_op3c(s, op, INDEX_op_addci, o1_orig, o1, t0); + } + } + if (m1 !=3D tzero) { + t1 =3D la_mulu2_op3(s, op, INDEX_op_shr, + la_temp_new(TCG_TYPE_I64), m1, t32); + la_mulu2_op3(s, op, INDEX_op_shl, m1, m1, t32); + if (o0 =3D=3D tzero) { + o0 =3D m1; + if (o1 =3D=3D tzero) { + o1 =3D t1; + } else { + o1 =3D la_mulu2_op3c(s, op, INDEX_op_add, o0_orig, o1, t1); + } + } else { + o0 =3D la_mulu2_op3c(s, op, INDEX_op_addco, o0_orig, o0, m1); + o1 =3D la_mulu2_op3c(s, op, INDEX_op_addci, o1_orig, o1, t1); + } + } + + /* Final write-back, if necessary. */ + if (o0 !=3D o0_orig) { + la_mulu2_mov(s, op, o0_orig, o0); + } + if (o1 !=3D o1_orig) { + la_mulu2_mov(s, op, o1_orig, o1); + } + + ret =3D QTAILQ_PREV(op, link); + tcg_op_remove(s, op); + return ret; +} + +/* + * Liveness analysis : update the opc_arg_life array to tell if a + * given input arguments is dead. Instructions updating dead + * temporaries are removed. + */ static void __attribute__((noinline)) liveness_pass_1(TCGContext *s) { @@ -4071,10 +4268,11 @@ liveness_pass_1(TCGContext *s) op->args[0] =3D op->args[1]; op->args[1] =3D op->args[2]; op->args[2] =3D op->args[3]; - } else { - goto do_not_remove; + } else if (!tcg_op_supported(opc, TCGOP_TYPE(op), 0)) { + op =3D la_expand_mulu2_i64(s, op); + op_prev =3D QTAILQ_PREV(op, link); + opc =3D op->opc; } - /* Mark the single-word operation live. */ goto do_not_remove; =20 case INDEX_op_addco: --=20 2.53.0 From nobody Sat Sep 26 20:52:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789619899; cv=none; d=zohomail.com; s=zohoarc; b=ilSEqcZG9bMeyzFcyTwlyqQe5eD+I3GKnGlMW3BphJdHQC0Hn7lls8UkxIj/qFfJpBcbN4ayDvGDYZvSsyP6CPpTQZkeWE+5ip5OoXFjQZZb4ZKfuYhCFp/oJRjwLRCXqmgDwjG+VGzrX9iI6XVH6VHyV0riVqmq6wMB6SE5vd0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789619899; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=nEXgOwIRa20voppQo9GDHMS1u9ECztspvZ13bPqVcXQ=; b=TVHikRQM8XgVJggp3wKJMyxbqd+REEJcxAZExu/d7aBo2wD7lF0hU1TnS64Fdkqe1OmLifiJWiFhQmoS8OhxsKw7UMRr9fvQogtywxHZB2VB1IUY6y93bObrgM4jgIYfCbcZlQf3LzRvblPzSQ2rTMLOEfNxCjBI26AXj45wOP0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178961989925732.859265078002636; Wed, 16 Sep 2026 21:38:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x73rc-0005LJ-SX; Thu, 17 Sep 2026 00:36:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x73r7-0004AE-Ej for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:21 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x73r4-0007yp-AG for qemu-devel@nongnu.org; Thu, 17 Sep 2026 00:36:17 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea50dc1so205789a12.0 for ; Wed, 16 Sep 2026 21:36:13 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:325f:1938:d075:8c13]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14395d13ee7sm10764267c88.8.2026.09.16.21.36.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 21:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789619773; x=1790224573; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=nEXgOwIRa20voppQo9GDHMS1u9ECztspvZ13bPqVcXQ=; b=AKtyXJ1eBNaUni1JtwD3qs9MzWspLnD2UobIDyKPUlmLmwgMluEdOZoOdm6FCE1mA8 /7i3Cj29l4SQhPLQCpwQOh3peHwHdQVSPqbFGtj+c6WD773BV1zzm6o8mRKP7DvgNoBe 5CzCvBIxWocG8tiLFtCCHfIOZ14Ytzfg67on7RRBxkyVXJf9YixateQ0kUXQ67pEJEoH 03jETZDnwiZ25C5DRDfVVgBMkQztap3uMSfTmGFVmjtkpwn5466HgxLQHE+v+jl30eoF pub7XjlX0KgF+EAcUoun1nGvHGK8MPgAPRqion3NU7t8+b6A+5zrtyE9KRPneUHuMJGz XtiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789619773; x=1790224573; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=nEXgOwIRa20voppQo9GDHMS1u9ECztspvZ13bPqVcXQ=; b=GG4vuJaP0CfBhrWBWZ4JWlq/3NAwZb3GPdMMGkkuhij9pstkhAJfR/LLtoTnUWNxv9 cYI4R6BuctaDSsG/a1OdG3ZTfSHZxuyrk+gNo1wMhLk9Udd68kbNz18hnKyoJif4oFk+ YOL7Na6gSBOROdHwETt+IixOjD/B+/IQii2OWreOY+q0t+ehsXL5ku3s64cgru9spqbo 5MOlGOru7wu3rnyoYLASx55dhKgqgM/x6OYkFl/GDo31CSTP4aF7TaFqLSBIrwykx5Ei Aw7MVuolG34pfRc6uvrGeP2pyr8DAKG61NgXqsRvedgzQac+Ngi7hXIdzz6tWnmix9Xn ZzGA== X-Gm-Message-State: AFuF++nFk1HxXVJaNyGmoHEjWLRLcbMhHSe3M2Zu63a8YGi07oZTeHiM 24BLd2CAbs0TwBLZGX65v9R/pcJOukTYmHK22KdnA6H1DoSsigs3/+I2icX4ty4XldKr9CYxT8+ xgMpC X-Gm-Gg: AYBFou0Y9vHpzTaVo0sG/Xl0/2qSIcfkSDoOhQtjFlqAXC/ssK44FCLZ1tJoGkZ9Ij1 eXaBCcNumxY3BQP7DiOglgvaWbJv3nMc9gLrxnR6HsgBevot74MF3fFGbRuR4EK2jeCZS5U9y04 GHfS4X4Q83L4xeG2EX/yqVYn3r0kirL5iwc3055OfchMPxm30K6Yz5nzecE3awfrNevU/XkcXHt FZNE+IbO/fs86glNK63QN8NkzUCTDld+YDMnPq/I9DynThKi0GmTgboYv46glHYHeFC8Z5EQe4k mdfog0mZrO+ARbetpmwlyb931MxBflO/SaLv1O0oD5w9W4hVw9JELYdRhQJ+2aF6auw/hfWKP0/ u2pftfYuM1Zx8y+dZtw3YZAb6CkycTjS06GU0QlLuD2Re1uSFnhZtiMfqxnzu4t02UXrra8E/lF 43tFmJ6PlejdYlqyh7OyKB1l6ZeRNylJaPQ9DQt4X0b9pW/TTud0XMoDKKOcM99/wpmaUmRpIYW BQdRCo= X-Received: by 2002:a05:6a20:4307:b0:3dd:5844:c95e with SMTP id adf61e73a8af0-3dd5f7b07ebmr12531290637.27.1789619772739; Wed, 16 Sep 2026 21:36:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 101/101] tcg: Annontate functions in tcg-op-common.h with QEMU_*_NONNULL Date: Wed, 16 Sep 2026 18:28:23 -1000 Message-ID: <20260917042823.542588-102-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260917042823.542588-1-richard.henderson@linaro.org> References: <20260917042823.542588-1-richard.henderson@linaro.org> MIME-Version: 1.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.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.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789619900032158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/tcg/tcg-op-common.h | 236 +++++++++++++++++++++--------------- 1 file changed, 141 insertions(+), 95 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index 26431e71bcd..2bcf737aa56 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -12,24 +12,24 @@ #include "exec/helper-proto-common.h" #include "exec/helper-gen-common.h" =20 -TCGv_i32 tcg_constant_i32(int32_t val); -TCGv_i64 tcg_constant_i64(int64_t val); -TCGv_vaddr tcg_constant_vaddr(uintptr_t val); -TCGv_vec tcg_constant_vec(TCGType type, unsigned vece, int64_t val); -TCGv_vec tcg_constant_vec_matching(TCGv_vec match, unsigned vece, int64_t = val); +QEMU_RET_NONNULL TCGv_i32 tcg_constant_i32(int32_t val); +QEMU_RET_NONNULL TCGv_i64 tcg_constant_i64(int64_t val); +QEMU_RET_NONNULL TCGv_vaddr tcg_constant_vaddr(uintptr_t val); +QEMU_RET_NONNULL TCGv_vec tcg_constant_vec(TCGType type, unsigned vece, in= t64_t val); +QEMU_RET_NONNULL TCGv_vec tcg_constant_vec_matching(TCGv_vec match, unsign= ed vece, int64_t val); =20 -TCGv_i128 tcg_zero_i128(void); +QEMU_RET_NONNULL TCGv_i128 tcg_zero_i128(void); =20 -TCGv_i32 tcg_temp_new_i32(void); -TCGv_i64 tcg_temp_new_i64(void); -TCGv_ptr tcg_temp_new_ptr(void); -TCGv_i128 tcg_temp_new_i128(void); -TCGv_vec tcg_temp_new_vec(TCGType type); -TCGv_vec tcg_temp_new_vec_matching(TCGv_vec match); +QEMU_RET_NONNULL TCGv_i32 tcg_temp_new_i32(void); +QEMU_RET_NONNULL TCGv_i64 tcg_temp_new_i64(void); +QEMU_RET_NONNULL TCGv_ptr tcg_temp_new_ptr(void); +QEMU_RET_NONNULL TCGv_i128 tcg_temp_new_i128(void); +QEMU_RET_NONNULL TCGv_vec tcg_temp_new_vec(TCGType type); +QEMU_RET_NONNULL TCGv_vec tcg_temp_new_vec_matching(TCGv_vec match); =20 -TCGv_i32 tcg_global_mem_new_i32(TCGv_ptr reg, intptr_t off, const char *na= me); -TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t off, const char *na= me); -TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t off, const char *na= me); +QEMU_RET_NONNULL TCGv_i32 tcg_global_mem_new_i32(TCGv_ptr reg, intptr_t of= f, const char *name); +QEMU_RET_NONNULL TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t of= f, const char *name); +QEMU_RET_NONNULL TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t of= f, const char *name); =20 /* Generic ops. */ static inline void tcg_gen_insn_start(uint64_t pc, uint64_t a1, @@ -41,8 +41,8 @@ static inline void tcg_gen_insn_start(uint64_t pc, uint64= _t a1, tcg_set_insn_start_param(op, 2, a2); } =20 -void gen_set_label(TCGLabel *l); -void tcg_gen_br(TCGLabel *l); +QEMU_ARG_NONNULL void gen_set_label(TCGLabel *l); +QEMU_ARG_NONNULL void tcg_gen_br(TCGLabel *l); void tcg_gen_mb(TCGBar); =20 /** @@ -86,7 +86,7 @@ void tcg_gen_goto_tb(unsigned idx); void tcg_gen_lookup_and_goto_ptr(void); =20 void tcg_gen_plugin_cb(unsigned from); -void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminfo); +QEMU_ARG_NONNULL void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned meminf= o); =20 /* * Construct operations from templates. @@ -132,23 +132,23 @@ void tcg_gen_plugin_mem_cb(TCGv_i64 addr, unsigned me= minfo); =20 /* 32 bit ops */ =20 -void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i32 arg1, TCGv_i32 = arg2); -void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); -void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); +QEMU_ARG_NONNULL void tcg_gen_mulsu2_i32(TCGv_i32 rl, TCGv_i32 rh, TCGv_i3= 2 arg1, TCGv_i32 arg2); +QEMU_ARG_NONNULL void tcg_gen_bswap32_i32(TCGv_i32 ret, TCGv_i32 arg); +QEMU_ARG_NONNULL void tcg_gen_hswap_i32(TCGv_i32 ret, TCGv_i32 arg); +QEMU_ARG_NONNULL void tcg_gen_revbit32_i32(TCGv_i32 ret, TCGv_i32 arg); =20 /* 64 bit ops */ =20 -void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TCGv_i64 *b); -void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i64 arg1, TCGv_i64 = arg2); -void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); -void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); -void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, unsigned flags); -void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_addN_i64(int n, TCGv_i64 *r, TCGv_i64 *a, TC= Gv_i64 *b); +QEMU_ARG_NONNULL void tcg_gen_mulsu2_i64(TCGv_i64 rl, TCGv_i64 rh, TCGv_i6= 4 arg1, TCGv_i64 arg2); +QEMU_ARG_NONNULL void tcg_gen_ext32s_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_ext32u_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_bswap32_i64(TCGv_i64 ret, TCGv_i64 arg, unsi= gned flags); +QEMU_ARG_NONNULL void tcg_gen_bswap64_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_hswap_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_wswap_i64(TCGv_i64 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_revbit32_i64(TCGv_i64 ret, TCGv_i64 arg, uns= igned flags); +QEMU_ARG_NONNULL void tcg_gen_revbit64_i64(TCGv_i64 ret, TCGv_i64 arg); =20 void tcg_gen_st32_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset= ); =20 @@ -157,185 +157,231 @@ void tcg_gen_ld32s_i64(TCGv_i64 ret, TCGv_ptr arg2,= tcg_target_long offset); =20 /* Size changing operations. */ =20 -void tcg_gen_extu_i32_i64(TCGv_i64 ret, TCGv_i32 arg); -void tcg_gen_ext_i32_i64(TCGv_i64 ret, TCGv_i32 arg); -void tcg_gen_concat_i32_i64(TCGv_i64 dest, TCGv_i32 low, TCGv_i32 high); -void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg); -void tcg_gen_extrh_i64_i32(TCGv_i32 ret, TCGv_i64 arg); -void tcg_gen_extr_i64_i32(TCGv_i32 lo, TCGv_i32 hi, TCGv_i64 arg); -void tcg_gen_extr32_i64(TCGv_i64 lo, TCGv_i64 hi, TCGv_i64 arg); -void tcg_gen_concat32_i64(TCGv_i64 ret, TCGv_i64 lo, TCGv_i64 hi); +QEMU_ARG_NONNULL void tcg_gen_extu_i32_i64(TCGv_i64 ret, TCGv_i32 arg); +QEMU_ARG_NONNULL void tcg_gen_ext_i32_i64(TCGv_i64 ret, TCGv_i32 arg); +QEMU_ARG_NONNULL void tcg_gen_concat_i32_i64(TCGv_i64 dest, TCGv_i32 low, = TCGv_i32 high); +QEMU_ARG_NONNULL void tcg_gen_extrl_i64_i32(TCGv_i32 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_extrh_i64_i32(TCGv_i32 ret, TCGv_i64 arg); +QEMU_ARG_NONNULL void tcg_gen_extr_i64_i32(TCGv_i32 lo, TCGv_i32 hi, TCGv_= i64 arg); +QEMU_ARG_NONNULL void tcg_gen_extr32_i64(TCGv_i64 lo, TCGv_i64 hi, TCGv_i6= 4 arg); +QEMU_ARG_NONNULL void tcg_gen_concat32_i64(TCGv_i64 ret, TCGv_i64 lo, TCGv= _i64 hi); =20 -void tcg_gen_extr_i128_i64(TCGv_i64 lo, TCGv_i64 hi, TCGv_i128 arg); -void tcg_gen_concat_i64_i128(TCGv_i128 ret, TCGv_i64 lo, TCGv_i64 hi); +QEMU_ARG_NONNULL void tcg_gen_extr_i128_i64(TCGv_i64 lo, TCGv_i64 hi, TCGv= _i128 arg); +QEMU_ARG_NONNULL void tcg_gen_concat_i64_i128(TCGv_i128 ret, TCGv_i64 lo, = TCGv_i64 hi); =20 /* 128 bit ops */ =20 -void tcg_gen_mov_i128(TCGv_i128 dst, TCGv_i128 src); -void tcg_gen_ld_i128(TCGv_i128 ret, TCGv_ptr base, tcg_target_long offset); -void tcg_gen_st_i128(TCGv_i128 val, TCGv_ptr base, tcg_target_long offset); +QEMU_ARG_NONNULL void tcg_gen_mov_i128(TCGv_i128 dst, TCGv_i128 src); +QEMU_ARG_NONNULL void tcg_gen_ld_i128(TCGv_i128 ret, TCGv_ptr base, tcg_ta= rget_long offset); +QEMU_ARG_NONNULL void tcg_gen_st_i128(TCGv_i128 val, TCGv_ptr base, tcg_ta= rget_long offset); =20 /* Local load/store bit ops */ =20 -void tcg_gen_qemu_ld_i32_chk(TCGv_i32, TCGTemp *, TCGArg, MemOp, TCGType); -void tcg_gen_qemu_st_i32_chk(TCGv_i32, TCGTemp *, TCGArg, MemOp, TCGType); -void tcg_gen_qemu_ld_i64_chk(TCGv_i64, TCGTemp *, TCGArg, MemOp, TCGType); -void tcg_gen_qemu_st_i64_chk(TCGv_i64, TCGTemp *, TCGArg, MemOp, TCGType); -void tcg_gen_qemu_ld_i128_chk(TCGv_i128, TCGTemp *, TCGArg, MemOp, TCGType= ); -void tcg_gen_qemu_st_i128_chk(TCGv_i128, TCGTemp *, TCGArg, MemOp, TCGType= ); +QEMU_ARG_NONNULL void tcg_gen_qemu_ld_i32_chk(TCGv_i32, TCGTemp *, TCGArg,= MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_qemu_st_i32_chk(TCGv_i32, TCGTemp *, TCGArg,= MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_qemu_ld_i64_chk(TCGv_i64, TCGTemp *, TCGArg,= MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_qemu_st_i64_chk(TCGv_i64, TCGTemp *, TCGArg,= MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_qemu_ld_i128_chk(TCGv_i128, TCGTemp *, TCGAr= g, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_qemu_st_i128_chk(TCGv_i128, TCGTemp *, TCGAr= g, MemOp, TCGType); =20 /* Atomic ops */ =20 +QEMU_ARG_NONNULL void tcg_gen_atomic_cmpxchg_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGv_i3= 2, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_cmpxchg_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGv_i6= 4, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_cmpxchg_i128_chk(TCGv_i128, TCGTemp *, TCGv_i128, TCGv_i128, TCGArg, MemOp, TCGType); =20 +QEMU_ARG_NONNULL void tcg_gen_nonatomic_cmpxchg_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGv= _i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_nonatomic_cmpxchg_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGv= _i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_nonatomic_cmpxchg_i128_chk(TCGv_i128, TCGTemp *, TCGv_i128, TCGv_i128, TCGArg, MemOp, TCGType); =20 +QEMU_ARG_NONNULL void tcg_gen_atomic_xchg_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_xchg_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_xchg_i128_chk(TCGv_i128, TCGTemp *, TCGv_i128, TCGArg, MemOp, TCGType); =20 +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_add_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_add_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_and_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_and_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_or_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_or_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_xor_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_xor_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_smin_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_smin_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_umin_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_umin_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_smax_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_smax_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_umax_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_umax_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); =20 +QEMU_ARG_NONNULL void tcg_gen_atomic_add_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_add_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_and_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_and_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_or_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_or_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_xor_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_xor_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_smin_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_smin_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_umin_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_umin_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_smax_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_smax_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_umax_fetch_i32_chk(TCGv_i32, TCGTemp *, TCGv_i32, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_umax_fetch_i64_chk(TCGv_i64, TCGTemp *, TCGv_i64, TCGArg, MemOp, TCGType); =20 +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_and_i128_chk(TCGv_i128, TCGTemp *, TCGv_i128, TCGArg, MemOp, TCGType); +QEMU_ARG_NONNULL void tcg_gen_atomic_fetch_or_i128_chk(TCGv_i128, TCGTemp *, TCGv_i128, TCGArg, MemOp, TCGType); =20 /* Vector ops */ =20 -void tcg_gen_mov_vec(TCGv_vec, TCGv_vec); -void tcg_gen_dup_i32_vec(unsigned vece, TCGv_vec, TCGv_i32); -void tcg_gen_dup_i64_vec(unsigned vece, TCGv_vec, TCGv_i64); -void tcg_gen_dup_mem_vec(unsigned vece, TCGv_vec, TCGv_ptr, tcg_target_lon= g); -void tcg_gen_dupi_vec(unsigned vece, TCGv_vec, uint64_t); -void tcg_gen_add_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_sub_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_mul_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_and_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_or_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_xor_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_andc_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_orc_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_nand_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_nor_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_eqv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_not_vec(unsigned vece, TCGv_vec r, TCGv_vec a); -void tcg_gen_neg_vec(unsigned vece, TCGv_vec r, TCGv_vec a); -void tcg_gen_abs_vec(unsigned vece, TCGv_vec r, TCGv_vec a); -void tcg_gen_ssadd_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_usadd_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_sssub_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_ussub_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_smin_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_umin_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_smax_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); -void tcg_gen_umax_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_mov_vec(TCGv_vec, TCGv_vec); +QEMU_ARG_NONNULL void tcg_gen_dup_i32_vec(unsigned vece, TCGv_vec, TCGv_i3= 2); +QEMU_ARG_NONNULL void tcg_gen_dup_i64_vec(unsigned vece, TCGv_vec, TCGv_i6= 4); +QEMU_ARG_NONNULL void tcg_gen_dup_mem_vec(unsigned vece, TCGv_vec, TCGv_pt= r, tcg_target_long); +QEMU_ARG_NONNULL void tcg_gen_dupi_vec(unsigned vece, TCGv_vec, uint64_t); +QEMU_ARG_NONNULL void tcg_gen_add_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_sub_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_mul_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_and_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_or_vec(unsigned vece, TCGv_vec r, TCGv_vec a= , TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_xor_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_andc_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_orc_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_nand_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_nor_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_eqv_vec(unsigned vece, TCGv_vec r, TCGv_vec = a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_not_vec(unsigned vece, TCGv_vec r, TCGv_vec = a); +QEMU_ARG_NONNULL void tcg_gen_neg_vec(unsigned vece, TCGv_vec r, TCGv_vec = a); +QEMU_ARG_NONNULL void tcg_gen_abs_vec(unsigned vece, TCGv_vec r, TCGv_vec = a); +QEMU_ARG_NONNULL void tcg_gen_ssadd_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_usadd_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_sssub_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_ussub_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_smin_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_umin_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_smax_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); +QEMU_ARG_NONNULL void tcg_gen_umax_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec b); =20 -void tcg_gen_shli_vec(unsigned vece, TCGv_vec r, TCGv_vec a, int64_t i); -void tcg_gen_shri_vec(unsigned vece, TCGv_vec r, TCGv_vec a, int64_t i); -void tcg_gen_sari_vec(unsigned vece, TCGv_vec r, TCGv_vec a, int64_t i); -void tcg_gen_rotli_vec(unsigned vece, TCGv_vec r, TCGv_vec a, int64_t i); -void tcg_gen_rotri_vec(unsigned vece, TCGv_vec r, TCGv_vec a, int64_t i); +QEMU_ARG_NONNULL void tcg_gen_shli_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, int64_t i); +QEMU_ARG_NONNULL void tcg_gen_shri_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, int64_t i); +QEMU_ARG_NONNULL void tcg_gen_sari_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, int64_t i); +QEMU_ARG_NONNULL void tcg_gen_rotli_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, int64_t i); +QEMU_ARG_NONNULL void tcg_gen_rotri_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, int64_t i); =20 -void tcg_gen_shls_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_i32 s); -void tcg_gen_shrs_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_i32 s); -void tcg_gen_sars_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_i32 s); -void tcg_gen_rotls_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_i32 s); +QEMU_ARG_NONNULL void tcg_gen_shls_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_i32 s); +QEMU_ARG_NONNULL void tcg_gen_shrs_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_i32 s); +QEMU_ARG_NONNULL void tcg_gen_sars_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_i32 s); +QEMU_ARG_NONNULL void tcg_gen_rotls_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_i32 s); =20 -void tcg_gen_shlv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec s); -void tcg_gen_shrv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec s); -void tcg_gen_sarv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec s); -void tcg_gen_rotlv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec s); -void tcg_gen_rotrv_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec s); +QEMU_ARG_NONNULL void tcg_gen_shlv_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec s); +QEMU_ARG_NONNULL void tcg_gen_shrv_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec s); +QEMU_ARG_NONNULL void tcg_gen_sarv_vec(unsigned vece, TCGv_vec r, TCGv_vec= a, TCGv_vec s); +QEMU_ARG_NONNULL void tcg_gen_rotlv_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec s); +QEMU_ARG_NONNULL void tcg_gen_rotrv_vec(unsigned vece, TCGv_vec r, TCGv_ve= c a, TCGv_vec s); =20 +QEMU_ARG_NONNULL void tcg_gen_cmp_vec(TCGCond cond, unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b); =20 +QEMU_ARG_NONNULL void tcg_gen_bitsel_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b, TCGv_vec c); +QEMU_ARG_NONNULL void tcg_gen_cmpsel_vec(TCGCond cond, unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b, TCGv_vec c, TCGv_vec d); =20 -void tcg_gen_ld_vec(TCGv_vec r, TCGv_ptr base, TCGArg offset); -void tcg_gen_st_vec(TCGv_vec r, TCGv_ptr base, TCGArg offset); -void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGArg offset, TCGType t); +QEMU_ARG_NONNULL void tcg_gen_ld_vec(TCGv_vec r, TCGv_ptr base, TCGArg off= set); +QEMU_ARG_NONNULL void tcg_gen_st_vec(TCGv_vec r, TCGv_ptr base, TCGArg off= set); +QEMU_ARG_NONNULL void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGArg of= fset, TCGType t); =20 /* Host pointer ops */ =20 --=20 2.53.0