From patchwork Sun Feb 16 00:00:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865520 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519245wri; Sat, 15 Feb 2025 16:02:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXMTEjOrqibn3ccyA4S/H5q09nT92t85OyP2iFhHpYeBtc8UrP84q+IgEGIvkOPdS65P84A9Q==@linaro.org X-Google-Smtp-Source: AGHT+IE4a8Nm1Yd1MxwYgDQoaHsoemSc9PBgypFGZmJvphtCulonKsWHaGRqnNhn4MdtyW70K0/f X-Received: by 2002:a05:622a:60b:b0:471:c73e:8eb5 with SMTP id d75a77b69052e-471dbd1a1a9mr71677741cf.20.1739664140762; Sat, 15 Feb 2025 16:02:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664140; cv=none; d=google.com; s=arc-20240605; b=K/v4Tu37pIiedoC2T/QjQJhL1CTYUPw8P1uiP8JUjWzShl0aSqjcuPpUuxtTWndMXs dfts99cWynHnxMXx0OvddnUCz0DVbL65oZc6pot/aS5pYUS9QQWJm3CQUYYHsW1+dGaw /NK7FfwarNFxiXM6Zp7rbztVN+zjpKGpxRW+HEQsVYup3ZPTwW8V73fpHt2O5SYLUw7D yBT/WuXo1Q3Unf2BLB69wH8mmbsGuv9Mv6JQZcgqhtaSr94d0NWQvex47SzrbTONXkAw 0bgBdGuAyYzwjHOezNw4fpisIDt16Ver0hj2n1E7CnrsuITJ313Mm3SJplnfJyH/YZs2 RbXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=g+RwK6s98JtgiT+jYpVwQhAcmDtv3UP3CqG+jw/cwXc=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=kVKcMGaO5J5KPwJw5ik8+Qi7k+ZQThWJeQzcaCP91zKdvGsOrct0TVxTMzFbOHbCKy zlxJ5+JZrv4UImA/E5HdPIo2SfauywlPbF5khN5hYXD40KbEVSDc9VZ27tmds9TaT3TK 3SDv40Aggbd6D646Dx1+9qZUtYduH9NsQvo0jXxQC/YH/8kIESDYRTzqRPGBCMqjr5Zr H9TT7s6yzEFyw5Hm78791ANZk3bW0Rehihgl8H+XxjG+rEdKAMgwmP1Jd53yebJncolT AJllo4BkLGGt+H7h2ZTze3VyOUS9BssLs8U+S+IQN7pjh66Mq/KhFma8fKnA0bgjDUxP o87w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OYHIenYc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471cac7c82fsi51240561cf.103.2025.02.15.16.02.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:02:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OYHIenYc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS62-0007ay-6k; Sat, 15 Feb 2025 19:01:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS5z-0007aL-3i for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:15 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS5x-0006F8-BG for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:14 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-220c665ef4cso48860015ad.3 for ; Sat, 15 Feb 2025 16:01:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664071; x=1740268871; 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; bh=g+RwK6s98JtgiT+jYpVwQhAcmDtv3UP3CqG+jw/cwXc=; b=OYHIenYciuAPpO8HP2wHj76+a9JaLoCUanZioT6uEZ6ivpINs+Q5COKbrkEWXK79MZ 5NLeff4nhsvRXCtHQ3rAmk8+MIWc1nq+/RpCFDjbZ46c7hG2+Q1NjgZDnCgB6vgkPgM8 d5B0xSfI4Jvu10Ny7l94lRe7tYK8r1xISS/vIDhphRCiy8Xil2kL6Umr2HoMwkY0GS1b 60dshofwjpD5dn8Kv/ozse5Izlm4Fl5IuQTHWhayFgj8eroBHq1Vy2S9GCjhASKKUQ7f 6u5+2OsjwFXgOvnyqyA1A4zXk7LxxLsD1CfLKuB0yug4c9gmsrZF0nh+QZQ0WyiPRnhs GPjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664071; x=1740268871; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g+RwK6s98JtgiT+jYpVwQhAcmDtv3UP3CqG+jw/cwXc=; b=LSCLs83fe71tCFxSNX3cnNe9eaiW9OxD6EeKYmnagiMNahq/D88A2aCxWxeBLnmEeU Gmdr0rlwMOoSVZprtx7WZ2Vq6pMDA7853ThQcgMFe7ievHmFO0vH+/Z6xGtFzxrTJDJp RJJOAQa9Wjz0LGGSCHV6JMHQHakWXDFj5QVUliJyCaeT/B0Y20zlAC5Y+1Lj3UxQJEF8 9qRSTVJOPJLsHTvPwmT5hhxEw5SztlCRBx4tnivM2/OApKUZsL3PwKVyUkBLQd2cDkx1 D4MDSIWYk+8hZ9mwFLiNum5DoYRcqPxplVvCTQn6UxfrqtzAK5wpTceabe8t85b/Us1K /h3Q== X-Gm-Message-State: AOJu0YzsxiX8mrpcBGNpe+bOB5HsSgwOXd1AFQvmQiHYzBTj+Mj0fxEQ K/s1oWOlcfAqZGzl54RQscv8Wl9m/Vukbllk1NNVkAXzaG0CrN/FaVV96vv/biY7bIAyMC51iWM 4 X-Gm-Gg: ASbGncvR/CMxGNtFnrIbWrWDT7iiEXADGwv+0ubaYOYRtz49yItFezDqzsUBLzO1d2d 8/vmcaPiNZ4cPz9Zo18F+ule84xvH6MrBh2Ae9KpjDem4idg2QOS4yKHU8rG1NdtV8Ecc0VJtxY o3VNlRn4cqfcg247hf9xHvryIWAXvf7vEeZmoA7DgWsZSx60qGPNYRZyxkn8VasbZY6zFcoxa0M ZTVNPltI1QDn4erm8DJxIkT+6/mDjeg8mQRK4JzJB4n/vLOSbgOfPVJrcvdg79xpqbBZzNhGoxj 60tFLSJKNq9qdrtpex4czWq5eGyaPifTITn2fTQICVohGoA= X-Received: by 2002:a17:902:e5d0:b0:215:89a0:416f with SMTP id d9443c01a7336-22104058b35mr56082755ad.30.1739664071398; Sat, 15 Feb 2025 16:01:11 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:10 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 01/24] tcg: Remove last traces of TCG_TARGET_NEED_POOL_LABELS Date: Sat, 15 Feb 2025 16:00:45 -0800 Message-ID: <20250216000109.2606518-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org These should have been removed with the rest. There are a couple of hosts which can emit guest_base into the constant pool: aarch64, mips64, ppc64, riscv64. Fixes: a417ef835058 ("tcg: Remove TCG_TARGET_NEED_LDST_LABELS and TCG_TARGET_NEED_POOL_LABELS") Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- tcg/tci/tcg-target.h | 1 - tcg/tcg.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/tcg/tci/tcg-target.h b/tcg/tci/tcg-target.h index a9ca493d20..bd03aa1bc4 100644 --- a/tcg/tci/tcg-target.h +++ b/tcg/tci/tcg-target.h @@ -72,6 +72,5 @@ typedef enum { } TCGReg; #define HAVE_TCG_QEMU_TB_EXEC -#define TCG_TARGET_NEED_POOL_LABELS #endif /* TCG_TARGET_H */ diff --git a/tcg/tcg.c b/tcg/tcg.c index 43b6712286..53de13df71 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -1598,21 +1598,17 @@ void tcg_prologue_init(void) tcg_qemu_tb_exec = (tcg_prologue_fn *)tcg_splitwx_to_rx(s->code_ptr); #endif -#ifdef TCG_TARGET_NEED_POOL_LABELS s->pool_labels = NULL; -#endif qemu_thread_jit_write(); /* Generate the prologue. */ tcg_target_qemu_prologue(s); -#ifdef TCG_TARGET_NEED_POOL_LABELS /* Allow the prologue to put e.g. guest_base into a pool entry. */ { int result = tcg_out_pool_finalize(s); tcg_debug_assert(result == 0); } -#endif prologue_size = tcg_current_code_size(s); perf_report_prologue(s->code_gen_ptr, prologue_size); From patchwork Sun Feb 16 00:00:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865531 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519946wri; Sat, 15 Feb 2025 16:04:43 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUI2xB1/Iek6J/IH/iZ43y6kXqk1bQSX8WRoP3E8x4vlJ7v9wIi5nrv6hhqt9GCmdyofLcjUA==@linaro.org X-Google-Smtp-Source: AGHT+IGPtifuHYNt3BhAgI2MB9rmekQVEl5O6ftfp65sYCSOuk7UjXPvW9n6W7A8/AmCtQxwLeQU X-Received: by 2002:a05:620a:4010:b0:7bf:fffb:5818 with SMTP id af79cd13be357-7c08aaa2cc8mr749794785a.57.1739664283083; Sat, 15 Feb 2025 16:04:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664283; cv=none; d=google.com; s=arc-20240605; b=eXNjoLIe6moSBhZ1H5stJ4oaadq/ZA7dkFc4YcZYY3OVC00appOKzcrkkF/qp3/DiE x6LAJ+InAOWzsv+GD2PP6DQpKXgBruYG/bmcmsZsh3aJDuKwmihEgPU7BUEN5/ja2AHA GnPW3PN/PylnkwinC+fl3wxPCboxVk8zym7FOeK7naqo4IoLb3/rXTALvvS3k9njVAgT FGZ+372F8h+NbMj/AKvyOllbP9MuO34YamZiG5W3MZXYdp6gkUlSc4NhaDKzz6xMmMYP JiLy7PSSqd8ZREKLKxTl/FaIOz+AM7Pqgs/r+S1MB3oDiWL7Di73eLe4pacC3Mdu4S0T eGxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0D+qkdUAnGyLEvzj5WsailDQ6IwrMLobTEZGdeMA0tw=; fh=eu2DY09p+eeddYDiV+DalJS3Vr0kxK5BujclYkgWvDw=; b=ZtP/OhhzmufDgbLy2A95h9Rbh+KEnqMXcxwyL4ntgdxhUwDPDUIb/MbJecctUKH7zl p7ttkrTQofyImNkYIBdEmJv2UOXWkIZPxCZr48eENwkkT4TNve95c8KoGZSe6LKavebC eoTIrLEgoGNGEeW32DyanHTLCzrqu26AHjxBxsfLG5fcRke0a6kT4d279L73vhVXGl// 8dy09V66j7jq/pzBYkLh5wRb7761a52umbR3AoBelu2uYkqMDDFG7ZX0N0akzdfxSjfV D+v3kzyaLmH9ygnoVaHObPOljsYckSQno8oRhzZunzY7F9wXY8b0r13c3X+QkJ0Vz660 nhgQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=b6wjgN54; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c622b40si625413585a.16.2025.02.15.16.04.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:04:43 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=b6wjgN54; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6K-0007do-1c; Sat, 15 Feb 2025 19:01:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS63-0007bP-1t for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:20 -0500 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 1tjS5z-0006FP-BM for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:17 -0500 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-2fc1c80cdc8so4296465a91.2 for ; Sat, 15 Feb 2025 16:01:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664074; x=1740268874; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0D+qkdUAnGyLEvzj5WsailDQ6IwrMLobTEZGdeMA0tw=; b=b6wjgN54bsOMXR9iLr/J4McJbJa0RnBWXNdycqJedf/bHKZRfACsfNYDtASvVog/Ii U5MGT/MwfoCvvGGwynI2qVhYP4e2vBDujFdYbuFBj0+zmKvnbrQlxhuXMpnU9nwHGGLn iCPHv3N8zOO8x+ET1mJDoM7dBW+x1X0ynV4bY5q4uSMvxF0Jm8W366lfmtTS/BMuirQW 0uL/9De4iFe6fQ1OvZG/NgeEZW6JPMX3EwHMHEv3GwyjYLJz0GYXmQAUJmjU0nwU/bKc fkLc8cDwu0eJEjrZ2rCKju1w8z1N8AyeRwysLyAyKWw1B2MSX4Rpio2/a2JUjB7jiqtE NW4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664074; x=1740268874; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0D+qkdUAnGyLEvzj5WsailDQ6IwrMLobTEZGdeMA0tw=; b=vx+sI0DP8rQOe4iM26EuubnDRdnQ7iPhYQlOjcedXsaYiH99GH5IHhvcpnKSHQWIBQ C3D0pmheban4QIzx59N3nWo+NgTJHql+F3PVObByGnd31F5f5x2V+dWH9GeMhc1VghUB NCm/fm4+EVzFyCG9QSlFU3ke8M0S0LA3+yskvk59SsKfk5W0hvftP4Wt2wzTazRJx7Gu F6BB4DFKpOYlLUQDek1c+GRkFb1awHGJrME5r07oJ6T/g9IohuqDpenju5QH9Z4AmMht gXnRTEiQBHDf+Q9yJW5jdaa0HFZzVhd3IXCYh2+/RJEzsQAH9iUOJbiR0AGIxx1fy28T rnZg== X-Gm-Message-State: AOJu0Yx7z3LpncG2iuEptSbi9Nr+Xt868xQ+pCDdmmb/ihHYEJ4C4NgS 8pUx0GMtqeerI9I+WSFlbJBVM+nYFgTHa+7pVEEg4C8QyLU8AOt7dNvfQxodPOn+UmMTVyAoIZU m X-Gm-Gg: ASbGnctiaAajiV+X5W3iutb05YBel/ky4F3Bf2QTBuugYGLLGiaurxwbUHvRhZ3UeDk 0Nk06S5q5VBmAn15rxRaDUCYkdstIv4A9ukIbSuSGk0PnJT4vu5FCgiz98S95D8Y/G32emMwesS IJi2imRmiav1PgQ07x8MRz/FkaboJ7eqLLSi1zMeST0MsNDvHmoA19XMmVxmnyVpsXrSaxycI+p frs9cCDuLAYUEJlPtKMXFQatRsjAbfJ+oZWbI2PsjxEdgbqeTkN5mxjPmJyoS7jmkXjw844puD3 vM/sUHuGXfCx4ZoxtSBt7JpeHnxkYB88W/P4WjVoqHloaxo= X-Received: by 2002:a17:90b:2243:b0:2fa:1a8a:cff8 with SMTP id 98e67ed59e1d1-2fc41150925mr7273663a91.29.1739664072178; Sat, 15 Feb 2025 16:01:12 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:11 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= Subject: [PULL 02/24] tcg: Remove TCG_OVERSIZED_GUEST Date: Sat, 15 Feb 2025 16:00:46 -0800 Message-ID: <20250216000109.2606518-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This is now prohibited in configuration. Reviewed-by: Alex Bennée Signed-off-by: Richard Henderson --- include/qemu/atomic.h | 18 +++-------------- include/tcg/oversized-guest.h | 23 ---------------------- accel/tcg/cputlb.c | 7 ------- accel/tcg/tcg-all.c | 9 ++++----- target/arm/ptw.c | 34 --------------------------------- target/riscv/cpu_helper.c | 13 +------------ docs/devel/multi-thread-tcg.rst | 1 - 7 files changed, 8 insertions(+), 97 deletions(-) delete mode 100644 include/tcg/oversized-guest.h diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h index 7a3f2e6576..f80cba24cf 100644 --- a/include/qemu/atomic.h +++ b/include/qemu/atomic.h @@ -56,25 +56,13 @@ */ #define signal_barrier() __atomic_signal_fence(__ATOMIC_SEQ_CST) -/* Sanity check that the size of an atomic operation isn't "overly large". +/* + * Sanity check that the size of an atomic operation isn't "overly large". * Despite the fact that e.g. i686 has 64-bit atomic operations, we do not * want to use them because we ought not need them, and this lets us do a * bit of sanity checking that other 32-bit hosts might build. - * - * That said, we have a problem on 64-bit ILP32 hosts in that in order to - * sync with TCG_OVERSIZED_GUEST, this must match TCG_TARGET_REG_BITS. - * We'd prefer not want to pull in everything else TCG related, so handle - * those few cases by hand. - * - * Note that x32 is fully detected with __x86_64__ + _ILP32, and that for - * Sparc we always force the use of sparcv9 in configure. MIPS n32 (ILP32) & - * n64 (LP64) ABIs are both detected using __mips64. */ -#if defined(__x86_64__) || defined(__sparc__) || defined(__mips64) -# define ATOMIC_REG_SIZE 8 -#else -# define ATOMIC_REG_SIZE sizeof(void *) -#endif +#define ATOMIC_REG_SIZE sizeof(void *) /* Weak atomic operations prevent the compiler moving other * loads/stores past the atomic operation load/store. However there is diff --git a/include/tcg/oversized-guest.h b/include/tcg/oversized-guest.h deleted file mode 100644 index 641b9749ff..0000000000 --- a/include/tcg/oversized-guest.h +++ /dev/null @@ -1,23 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Define TCG_OVERSIZED_GUEST - * Copyright (c) 2008 Fabrice Bellard - */ - -#ifndef EXEC_TCG_OVERSIZED_GUEST_H -#define EXEC_TCG_OVERSIZED_GUEST_H - -#include "tcg-target-reg-bits.h" -#include "cpu-param.h" - -/* - * Oversized TCG guests make things like MTTCG hard - * as we can't use atomics for cputlb updates. - */ -#if TARGET_LONG_BITS > TCG_TARGET_REG_BITS -#define TCG_OVERSIZED_GUEST 1 -#else -#define TCG_OVERSIZED_GUEST 0 -#endif - -#endif diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index b4ccf0cdcb..17e2251695 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -47,7 +47,6 @@ #include "qemu/plugin-memory.h" #endif #include "tcg/tcg-ldst.h" -#include "tcg/oversized-guest.h" /* DEBUG defines, enable DEBUG_TLB_LOG to log to the CPU_LOG_MMU target */ /* #define DEBUG_TLB */ @@ -118,12 +117,8 @@ static inline uint64_t tlb_read_idx(const CPUTLBEntry *entry, return qatomic_read(ptr); #else const uint64_t *ptr = &entry->addr_idx[access_type]; -# if TCG_OVERSIZED_GUEST - return *ptr; -# else /* ofs might correspond to .addr_write, so use qatomic_read */ return qatomic_read(ptr); -# endif #endif } @@ -908,8 +903,6 @@ static void tlb_reset_dirty_range_locked(CPUTLBEntry *tlb_entry, uint32_t *ptr_write = (uint32_t *)&tlb_entry->addr_write; ptr_write += HOST_BIG_ENDIAN; qatomic_set(ptr_write, *ptr_write | TLB_NOTDIRTY); -#elif TCG_OVERSIZED_GUEST - tlb_entry->addr_write |= TLB_NOTDIRTY; #else qatomic_set(&tlb_entry->addr_write, tlb_entry->addr_write | TLB_NOTDIRTY); diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 95adaacee8..c1a30b0121 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -28,7 +28,6 @@ #include "exec/replay-core.h" #include "system/cpu-timers.h" #include "tcg/startup.h" -#include "tcg/oversized-guest.h" #include "qapi/error.h" #include "qemu/error-report.h" #include "qemu/accel.h" @@ -41,6 +40,8 @@ #include "hw/boards.h" #endif #include "internal-common.h" +#include "cpu-param.h" + struct TCGState { AccelState parent_obj; @@ -72,7 +73,7 @@ DECLARE_INSTANCE_CHECKER(TCGState, TCG_STATE, static bool default_mttcg_enabled(void) { - if (icount_enabled() || TCG_OVERSIZED_GUEST) { + if (icount_enabled()) { return false; } #ifdef TARGET_SUPPORTS_MTTCG @@ -145,9 +146,7 @@ static void tcg_set_thread(Object *obj, const char *value, Error **errp) TCGState *s = TCG_STATE(obj); if (strcmp(value, "multi") == 0) { - if (TCG_OVERSIZED_GUEST) { - error_setg(errp, "No MTTCG when guest word size > hosts"); - } else if (icount_enabled()) { + if (icount_enabled()) { error_setg(errp, "No MTTCG when icount is enabled"); } else { #ifndef TARGET_SUPPORTS_MTTCG diff --git a/target/arm/ptw.c b/target/arm/ptw.c index 64bb6878a4..4330900348 100644 --- a/target/arm/ptw.c +++ b/target/arm/ptw.c @@ -16,9 +16,6 @@ #include "internals.h" #include "cpu-features.h" #include "idau.h" -#ifdef CONFIG_TCG -# include "tcg/oversized-guest.h" -#endif typedef struct S1Translate { /* @@ -840,7 +837,6 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val, ptw->out_rw = true; } -#ifdef CONFIG_ATOMIC64 if (ptw->out_be) { old_val = cpu_to_be64(old_val); new_val = cpu_to_be64(new_val); @@ -852,36 +848,6 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val, cur_val = qatomic_cmpxchg__nocheck((uint64_t *)host, old_val, new_val); cur_val = le64_to_cpu(cur_val); } -#else - /* - * We can't support the full 64-bit atomic cmpxchg on the host. - * Because this is only used for FEAT_HAFDBS, which is only for AA64, - * we know that TCG_OVERSIZED_GUEST is set, which means that we are - * running in round-robin mode and could only race with dma i/o. - */ -#if !TCG_OVERSIZED_GUEST -# error "Unexpected configuration" -#endif - bool locked = bql_locked(); - if (!locked) { - bql_lock(); - } - if (ptw->out_be) { - cur_val = ldq_be_p(host); - if (cur_val == old_val) { - stq_be_p(host, new_val); - } - } else { - cur_val = ldq_le_p(host); - if (cur_val == old_val) { - stq_le_p(host, new_val); - } - } - if (!locked) { - bql_unlock(); - } -#endif - return cur_val; #else /* AArch32 does not have FEAT_HADFS; non-TCG guests only use debug-mode. */ diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index e1dfc4ecbf..8ff6d900f2 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -32,7 +32,6 @@ #include "system/cpu-timers.h" #include "cpu_bits.h" #include "debug.h" -#include "tcg/oversized-guest.h" #include "pmp.h" int riscv_env_mmu_index(CPURISCVState *env, bool ifetch) @@ -1167,9 +1166,7 @@ static int get_physical_address(CPURISCVState *env, hwaddr *physical, hwaddr pte_addr; int i; -#if !TCG_OVERSIZED_GUEST -restart: -#endif + restart: for (i = 0; i < levels; i++, ptshift -= ptidxbits) { target_ulong idx; if (i == 0) { @@ -1388,13 +1385,6 @@ restart: false, MEMTXATTRS_UNSPECIFIED); if (memory_region_is_ram(mr)) { target_ulong *pte_pa = qemu_map_ram_ptr(mr->ram_block, addr1); -#if TCG_OVERSIZED_GUEST - /* - * MTTCG is not enabled on oversized TCG guests so - * page table updates do not need to be atomic - */ - *pte_pa = pte = updated_pte; -#else target_ulong old_pte; if (riscv_cpu_sxl(env) == MXL_RV32) { old_pte = qatomic_cmpxchg((uint32_t *)pte_pa, pte, updated_pte); @@ -1405,7 +1395,6 @@ restart: goto restart; } pte = updated_pte; -#endif } else { /* * Misconfigured PTE in ROM (AD bits are not preset) or diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.rst index 7fd0a07633..b0f473961d 100644 --- a/docs/devel/multi-thread-tcg.rst +++ b/docs/devel/multi-thread-tcg.rst @@ -37,7 +37,6 @@ if: * forced by --accel tcg,thread=single * enabling --icount mode -* 64 bit guests on 32 bit hosts (TCG_OVERSIZED_GUEST) In the general case of running translated code there should be no inter-vCPU dependencies and all vCPUs should be able to run at full From patchwork Sun Feb 16 00:00:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865513 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519237wri; Sat, 15 Feb 2025 16:02:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCW30beUWd8kJ9yZmiY8LYUvuZ5u5HXlK0V2mZvFIjAH4ClE3KhSFkaOcVQcgct3M1eAgdjkeg==@linaro.org X-Google-Smtp-Source: AGHT+IHJmOjQeHNIlU59Q3SBSFjWyTSw0FgzyF+259zx+4OZdTbQAT5s8oaG/S5OhDLagJsoktcm X-Received: by 2002:a05:6214:c22:b0:6e6:6520:1913 with SMTP id 6a1803df08f44-6e66ccc36d3mr74033236d6.19.1739664140130; Sat, 15 Feb 2025 16:02:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664140; cv=none; d=google.com; s=arc-20240605; b=airoQ7c6SrC3O6WK4yiWIWVbr1YfS8XWlpqv8NBP3DWx1gIbeFr34/iYoDZNbfJja6 fCJ4CACTH0ngQuQRSUtv5CFBGENt5cPVYFzxt2ZbYb6FfrcwnbcBtj37zKeo+TYT59iZ vO49jy9DUKTmm3nnS/tISMKMVxPof331NtiJvvZ8GvxT1jpdZX7Th8gEcA391fglGUf2 aTNi6AwyQtlx6jDP0ui8QBoKFc83JXXEM1b90k9waqUj+cclFJzJ2aFfw42gLGXIBtg5 J/HGI3+FkYf9x5lvQmoKBtd7Xi+jLDfifJTlB+BRGZKjlhOPvWS35Ig6HYwhKTVzGBpG s8zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CoSz+0yLhVK3dbyvfDxsdAZSwsgZvLHw47U3xK2XgEE=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=SuX96FDIaO1eHRcJf42LBhrVE1OC+nenqgrYGzvidvdWaiaEyQS/tLSssyQySDY+ts isgkgigHVCEZgL4OQjxIikk4kaMpl0UIOM3bLc2OoqEfqr1oLCz8IIR+AMiTGPWbtiNN eMl4emItz18OdqdWQ3IjBCDLvlJFQbrC0W2Q+4Gu6bauMfGiNnJrNHG+kGoRbYhYDPqN W64VZ4T0cJ/qBSPkfrdK4rEVQlaESSdj6+n8fROiAvcWR/DTPefAtyx3bx6eoGP7fWeZ 3RHIFxJGNyDUnnMZ8BhaEZlHg3y0Jw411O56ihmjhDqhS3dGu0NIMJryxvVBAX/NEp3Z hF+w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jQvVwGeE; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d7345d2si62448876d6.81.2025.02.15.16.02.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:02:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jQvVwGeE; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6A-0007cL-F4; Sat, 15 Feb 2025 19:01:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS60-0007aa-BZ for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:16 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS5y-0006FJ-JB for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:15 -0500 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-220f048c038so32686035ad.2 for ; Sat, 15 Feb 2025 16:01:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664073; x=1740268873; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CoSz+0yLhVK3dbyvfDxsdAZSwsgZvLHw47U3xK2XgEE=; b=jQvVwGeE9y3NIJIEAc2bw3U0alVGZYXpVRT7IgRcbuuRoJF0Eo72LYm4FKDUoRI1kn 5oyP6CAVieukrL28vkFhXGyr+a8eUJtzuTpNzJWCLzI0JMA0nw7cxvVENffeTgfpyDlO pgl1B+hYPX2l7TXuVKU2Qhc1cKTxvS0E5HtvFgR6OrNamSqXY8rf9oWtfF4w17hJmZ/L nLXZFkwtw0D/Ps5b0JX0OA/NQnoolb7+EfDfmdHty3VLhyFGPiJrn15CGtHw9PfMllrm vda2VFMAW+Ae+WceVEMQ2tXzV8Z9+pFmgI4qaG/+KoaruI4GEaCAkMwZovHmP6+je45j kDiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664073; x=1740268873; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CoSz+0yLhVK3dbyvfDxsdAZSwsgZvLHw47U3xK2XgEE=; b=q8/SQI6FunbCPRxSeWrAKI3JEHXMllhjBhjFDh47MGaT4Gy421K7vjLi3kNqMFKJqK Xt/2l+N1rcTH0QU+C0xwZIXZTZI1nniXjg2WXHQjsuMs4eOnAtPpN8hOg4uChY3tIUKI 7jAcSy0Vvk5zTli9tkCmmAxrR/RMgI/s+wrHGa8DRqoFCXAd2upJkQ0bJq7CbhPIf0zp b/EgHUl4LUIiGOzw2sdQdll2CdJnqdlg6lSeJfaRhd9DiozzIGlvjXCywy81fdMzuapk A5u0erIhE47cDKOAi7584J7tp3N1vnUYeq9HeNdFgQvPH6XDgNMYEv5WyjHoo6u8eN7K bk7A== X-Gm-Message-State: AOJu0Yy0wa/0V6h25ZkI/UUOAnwv+OtW+CIOLVllFVl+LGyrrCa8/kVm uvwjY3qC5P+fVbUdRR5Omeo5OXjqC31ef0l/DydR7y4hL1UhmgixcftQQHgHgLqKsB8oYoYBI8L i X-Gm-Gg: ASbGnctWFnH4TlAttvkR5QcqOih1XtR34cTB9mlQ8rGjFafRzX3uCTwGyiq5/Q1BU34 PAa08E/8kkx6TTU2PtM7HetN9mbVaCT8xxfNdk7nqpeDla1ttuqiCODa3I/HlrydIidqTYUN8Xi JAvGMJ0oXrHhJ397UhxnTgk439o8IZbBSri+plTwsL0cg263LDO29Y4A1eep+r40S0ohTCyqSBh nCUEiwEsrleKurIMIH6ZB9dCF5qu2onZEU+4n5u1vUpcvYNQHsXvxbWgyXdaQKm/0oeBh1J99g4 yYzdkRaEYXG7uzx5+mEM8AY3PBkbG1ZFWstBYM+N5LPDgq8= X-Received: by 2002:a17:902:ea04:b0:220:e023:8fa6 with SMTP id d9443c01a7336-221040c0c0emr65671705ad.50.1739664072967; Sat, 15 Feb 2025 16:01:12 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:12 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 03/24] tcg: Drop support for two address registers in gen_ldst Date: Sat, 15 Feb 2025 16:00:47 -0800 Message-ID: <20250216000109.2606518-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/tcg-op-ldst.c | 21 +++------------------ tcg/tcg.c | 4 +--- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/tcg/tcg-op-ldst.c b/tcg/tcg-op-ldst.c index 77271e0193..7ba9a3ef7e 100644 --- a/tcg/tcg-op-ldst.c +++ b/tcg/tcg-op-ldst.c @@ -91,25 +91,10 @@ static MemOp tcg_canonicalize_memop(MemOp op, bool is64, bool st) static void gen_ldst(TCGOpcode opc, TCGType type, TCGTemp *vl, TCGTemp *vh, TCGTemp *addr, MemOpIdx oi) { - if (TCG_TARGET_REG_BITS == 64 || tcg_ctx->addr_type == TCG_TYPE_I32) { - if (vh) { - tcg_gen_op4(opc, type, temp_arg(vl), temp_arg(vh), - temp_arg(addr), oi); - } else { - tcg_gen_op3(opc, type, temp_arg(vl), temp_arg(addr), oi); - } + if (vh) { + tcg_gen_op4(opc, type, temp_arg(vl), temp_arg(vh), temp_arg(addr), oi); } else { - /* See TCGV_LOW/HIGH. */ - TCGTemp *al = addr + HOST_BIG_ENDIAN; - TCGTemp *ah = addr + !HOST_BIG_ENDIAN; - - if (vh) { - tcg_gen_op5(opc, type, temp_arg(vl), temp_arg(vh), - temp_arg(al), temp_arg(ah), oi); - } else { - tcg_gen_op4(opc, type, temp_arg(vl), - temp_arg(al), temp_arg(ah), oi); - } + tcg_gen_op3(opc, type, temp_arg(vl), temp_arg(addr), oi); } } diff --git a/tcg/tcg.c b/tcg/tcg.c index 53de13df71..14c2d38160 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -1690,9 +1690,7 @@ void tcg_func_start(TCGContext *s) s->emit_before_op = NULL; QSIMPLEQ_INIT(&s->labels); - tcg_debug_assert(s->addr_type == TCG_TYPE_I32 || - s->addr_type == TCG_TYPE_I64); - + tcg_debug_assert(s->addr_type <= TCG_TYPE_REG); tcg_debug_assert(s->insn_start_words > 0); } From patchwork Sun Feb 16 00:00:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865527 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519694wri; Sat, 15 Feb 2025 16:03:50 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWP2FcDDGSBvwcVeZJR9k+fezFBDc6KUHHM4/vmAj/bbKMi8i6H4xKhS6Bw2+DhIO/z3UkzWA==@linaro.org X-Google-Smtp-Source: AGHT+IHypU86e0VKS0quEsew4hIOFeogxZhhSi7FFEd5JBimtodx5v6UF7EZ3WONXa1k9PP0gYCp X-Received: by 2002:ad4:5c62:0:b0:6e5:a0fc:f65d with SMTP id 6a1803df08f44-6e65c8ccdd3mr179511116d6.10.1739664230601; Sat, 15 Feb 2025 16:03:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664230; cv=none; d=google.com; s=arc-20240605; b=EaUANSmixT4hJXVQnmOF5idtBjPYOM8kexhwfVk/jR5YvL1gS4NxAqs2rnry19t++8 NU3pPzbkjdKiI6CvpR2A5gqjj+FkenKQ5utKa71JpIBqSZRHaXu/SS0RzeuYmdoQND2D B8nZmWHhe+Una4nPmKd68o8VejPyvkEOTTKAGUOZYHbBKtjG6iSQdgkhqmRSWWaKaTYR 43fyNthhkcZ0+ca8nKeQa63kgEE6vqfHj9QJWlUPRPmaHjeUUvz6q4KrGfXAvPyb7tf8 LevPG5cAjWTkjQG7ROpqriI0AM3oYMm5vv37y6VJDy4FjAAI/9xN7qm4qXztYcGJ3+ag cyxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=9h4h/F2ApY245CurTqcISpF3IqQ73ar7nOUMwrlXXuA=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=OsGfeRAubq/ofpG1Jr90d6i6mRGRcjWimKs4oA63v9gW0LmdZqmGp6wSfckfqtsCMD sLVe+J0G0Jek/clncMT9BLuiMwtlN57CFFFYtQHPw8w6G+H/QOcT/gxhzk9l/cVF9VPr 2jQ/9d4fJrm9xlD87BAI+H+/xaTGo8TRNUxwoTbSly09lPtnVnQ7kb2TKvLL/BfHBqh8 C9dPIo4lqPISeP8ZrdNljhGtVqOPrX24bayZu6s415IC8LMJPIlkrCU4ocPuAoXmG6iD nqJpF0A80TIiO/E0JPBWfJ8RgAs9GD9hP2Pra3EgPn4aDMJfiZ9H++xg8ot8CKrMxle5 kHLw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=S0Il9gw+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b470a1si60732091cf.369.2025.02.15.16.03.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:50 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=S0Il9gw+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6P-0007gY-Lx; Sat, 15 Feb 2025 19:01:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS64-0007bg-TR for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:23 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS60-0006Fg-3X for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:20 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-220c92c857aso51555145ad.0 for ; Sat, 15 Feb 2025 16:01:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664075; x=1740268875; 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; bh=9h4h/F2ApY245CurTqcISpF3IqQ73ar7nOUMwrlXXuA=; b=S0Il9gw+Kl3fFTMioS9G9mu1TflA1/XNKPkiaTeIpCgoYmhF99hNFgjp1dF+DmIWT5 RApXXqSu6LO08zwbQ0Gyw+siSAyJWUt85ttPbg9Gqon0IYufG8xy8zTdd0ZhjrRStba0 dJDepj4o4O+L4chHi99yjCWxsrEFfbeIwoCzwEF8+2XwNVP+UqboijHUjGT5m+UqpolA o0SJharWfiotPzPFzB5AQ/WssxZdOu4tVzJ64xQvw79DbE/GaelJY39nmwVDl0xq9pGT goqj0ysyQwc9s4PPQQw5A8zV8Dui9/eA9C2Xl8kzPmAWulskzSNfInwQlnWy+RmKm2mo fbQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664075; x=1740268875; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9h4h/F2ApY245CurTqcISpF3IqQ73ar7nOUMwrlXXuA=; b=axuAsvMd3DCfxVJ6mJBbLL3ZLzXHI7+FzuTrRlkItQZzbMI720wYojZRDlaIrn8L9s 29Jg3toYjlG5Ck8cxayHtoNM9qrFAcPwbswOm7YDqtL231GI2i1zjw5MWkEnTBYbBHk1 /Jjo3yKr1gwNqc74cmAI8PS7DA9xrTcC6F4xl2nZhcWe3319jLmDr3K1GYqRLr5CL4S4 EQXcShFZPGptLBe8LQnutTtyFWXUbJOPc22llfs4G6/30lS1BYy006vA4GMhcUB7yOOx jq9BjjpkvaS2Q1UyiqbYfeUkSTHj4zpwjd7ycr/kO5nLLc77UqevEa2bGAVn7aSdrIFc AKPg== X-Gm-Message-State: AOJu0Yx55hlof2S88O9hr/CAT58drZRzXdhhCK76MWXBv5JOD4PgUBYs HiRiwF6FENj1DcjY8Tuwc4hH9jmcfpVnj3FvPEoQK7hDquOkd8MjT6ze5fmKRSsIWfpL9hlevkx U X-Gm-Gg: ASbGncvk9dwpLQNRQbG+b5D2ggJRH7liWQqIPHaxMHU7xGOSod6VDfGAge78tYlUFXI rU/yERzyqCXJYMKxGsE2nXzrdq79kCK3L89Bwmtk4x1RMD4k2ATp7Zdd9WdfB9RHbuzNoJ2x3/O vyi27MiVCbtMb4O5jeoZO7iFSUsu/MM+2lpCiCfU9fXhPsuW2SWPGWpI5K8peMNloQb+2Y/kp4t klQiInAfN+y6wjxrs9lMhFRaZeWSSGn/tb2pMC0VugwvgUxOwQxJjxSuMKck3LZkLUotnxloLvC 2TUxgjU2FxigwEV4cbIU0Z4+w1+D1d3dI7XVp3RcVuhb28M= X-Received: by 2002:a17:902:d482:b0:220:c813:dfbe with SMTP id d9443c01a7336-220d357aa30mr181020255ad.17.1739664074422; Sat, 15 Feb 2025 16:01:14 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:13 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 04/24] tcg: Merge INDEX_op_qemu_*_{a32,a64}_* Date: Sat, 15 Feb 2025 16:00:48 -0800 Message-ID: <20250216000109.2606518-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Since 64-on-32 is now unsupported, guest addresses always fit in one host register. Drop the replication of opcodes. Signed-off-by: Richard Henderson --- include/tcg/tcg-opc.h | 28 ++------ tcg/optimize.c | 21 ++---- tcg/tcg-op-ldst.c | 82 +++++---------------- tcg/tcg.c | 42 ++++------- tcg/tci.c | 119 ++++++------------------------- tcg/aarch64/tcg-target.c.inc | 36 ++++------ tcg/arm/tcg-target.c.inc | 40 +++-------- tcg/i386/tcg-target.c.inc | 69 ++++-------------- tcg/loongarch64/tcg-target.c.inc | 36 ++++------ tcg/mips/tcg-target.c.inc | 51 +++---------- tcg/ppc/tcg-target.c.inc | 68 ++++-------------- tcg/riscv/tcg-target.c.inc | 24 +++---- tcg/s390x/tcg-target.c.inc | 36 ++++------ tcg/sparc64/tcg-target.c.inc | 24 +++---- tcg/tci/tcg-target.c.inc | 60 ++++------------ 15 files changed, 177 insertions(+), 559 deletions(-) diff --git a/include/tcg/tcg-opc.h b/include/tcg/tcg-opc.h index 9383e295f4..5bf78b0764 100644 --- a/include/tcg/tcg-opc.h +++ b/include/tcg/tcg-opc.h @@ -188,36 +188,22 @@ DEF(goto_ptr, 0, 1, 0, TCG_OPF_BB_EXIT | TCG_OPF_BB_END) DEF(plugin_cb, 0, 0, 1, TCG_OPF_NOT_PRESENT) DEF(plugin_mem_cb, 0, 1, 1, TCG_OPF_NOT_PRESENT) -/* Replicate ld/st ops for 32 and 64-bit guest addresses. */ -DEF(qemu_ld_a32_i32, 1, 1, 1, +DEF(qemu_ld_i32, 1, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a32_i32, 0, 1 + 1, 1, +DEF(qemu_st_i32, 0, 1 + 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_ld_a32_i64, DATA64_ARGS, 1, 1, +DEF(qemu_ld_i64, DATA64_ARGS, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a32_i64, 0, DATA64_ARGS + 1, 1, - TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) - -DEF(qemu_ld_a64_i32, 1, DATA64_ARGS, 1, - TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a64_i32, 0, 1 + DATA64_ARGS, 1, - TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_ld_a64_i64, DATA64_ARGS, DATA64_ARGS, 1, - TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a64_i64, 0, DATA64_ARGS + DATA64_ARGS, 1, +DEF(qemu_st_i64, 0, DATA64_ARGS + 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) /* Only used by i386 to cope with stupid register constraints. */ -DEF(qemu_st8_a32_i32, 0, 1 + 1, 1, - TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st8_a64_i32, 0, 1 + DATA64_ARGS, 1, +DEF(qemu_st8_i32, 0, 1 + 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) /* Only for 64-bit hosts at the moment. */ -DEF(qemu_ld_a32_i128, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_ld_a64_i128, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a32_i128, 0, 3, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) -DEF(qemu_st_a64_i128, 0, 3, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) +DEF(qemu_ld_i128, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) +DEF(qemu_st_i128, 0, 3, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS) /* Host vector support. */ diff --git a/tcg/optimize.c b/tcg/optimize.c index bca11cc427..f922f86a1d 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -3011,29 +3011,22 @@ void tcg_optimize(TCGContext *s) CASE_OP_32_64_VEC(orc): done = fold_orc(&ctx, op); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: + case INDEX_op_qemu_ld_i32: done = fold_qemu_ld_1reg(&ctx, op); break; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { done = fold_qemu_ld_1reg(&ctx, op); break; } QEMU_FALLTHROUGH; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: done = fold_qemu_ld_2reg(&ctx, op); break; - case INDEX_op_qemu_st8_a32_i32: - case INDEX_op_qemu_st8_a64_i32: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st8_i32: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: + case INDEX_op_qemu_st_i128: done = fold_qemu_st(&ctx, op); break; CASE_OP_32_64(rem): diff --git a/tcg/tcg-op-ldst.c b/tcg/tcg-op-ldst.c index 7ba9a3ef7e..73838e2701 100644 --- a/tcg/tcg-op-ldst.c +++ b/tcg/tcg-op-ldst.c @@ -217,7 +217,6 @@ static void tcg_gen_qemu_ld_i32_int(TCGv_i32 val, TCGTemp *addr, MemOp orig_memop; MemOpIdx orig_oi, oi; TCGv_i64 copy_addr; - TCGOpcode opc; tcg_gen_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); orig_memop = memop = tcg_canonicalize_memop(memop, 0, 0); @@ -233,12 +232,8 @@ static void tcg_gen_qemu_ld_i32_int(TCGv_i32 val, TCGTemp *addr, } copy_addr = plugin_maybe_preserve_addr(addr); - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_ld_a32_i32; - } else { - opc = INDEX_op_qemu_ld_a64_i32; - } - gen_ldst(opc, TCG_TYPE_I32, tcgv_i32_temp(val), NULL, addr, oi); + gen_ldst(INDEX_op_qemu_ld_i32, TCG_TYPE_I32, + tcgv_i32_temp(val), NULL, addr, oi); plugin_gen_mem_callbacks_i32(val, copy_addr, addr, orig_oi, QEMU_PLUGIN_MEM_R); @@ -295,17 +290,9 @@ static void tcg_gen_qemu_st_i32_int(TCGv_i32 val, TCGTemp *addr, } if (TCG_TARGET_HAS_qemu_st8_i32 && (memop & MO_SIZE) == MO_8) { - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_st8_a32_i32; - } else { - opc = INDEX_op_qemu_st8_a64_i32; - } + opc = INDEX_op_qemu_st8_i32; } else { - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_st_a32_i32; - } else { - opc = INDEX_op_qemu_st_a64_i32; - } + opc = INDEX_op_qemu_st_i32; } gen_ldst(opc, TCG_TYPE_I32, tcgv_i32_temp(val), NULL, addr, oi); plugin_gen_mem_callbacks_i32(val, NULL, addr, orig_oi, QEMU_PLUGIN_MEM_W); @@ -329,7 +316,6 @@ static void tcg_gen_qemu_ld_i64_int(TCGv_i64 val, TCGTemp *addr, MemOp orig_memop; MemOpIdx orig_oi, oi; TCGv_i64 copy_addr; - TCGOpcode opc; if (TCG_TARGET_REG_BITS == 32 && (memop & MO_SIZE) < MO_64) { tcg_gen_qemu_ld_i32_int(TCGV_LOW(val), addr, idx, memop); @@ -355,12 +341,7 @@ static void tcg_gen_qemu_ld_i64_int(TCGv_i64 val, TCGTemp *addr, } copy_addr = plugin_maybe_preserve_addr(addr); - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_ld_a32_i64; - } else { - opc = INDEX_op_qemu_ld_a64_i64; - } - gen_ldst_i64(opc, val, addr, oi); + gen_ldst_i64(INDEX_op_qemu_ld_i64, val, addr, oi); plugin_gen_mem_callbacks_i64(val, copy_addr, addr, orig_oi, QEMU_PLUGIN_MEM_R); @@ -397,7 +378,6 @@ static void tcg_gen_qemu_st_i64_int(TCGv_i64 val, TCGTemp *addr, { TCGv_i64 swap = NULL; MemOpIdx orig_oi, oi; - TCGOpcode opc; if (TCG_TARGET_REG_BITS == 32 && (memop & MO_SIZE) < MO_64) { tcg_gen_qemu_st_i32_int(TCGV_LOW(val), addr, idx, memop); @@ -428,12 +408,7 @@ static void tcg_gen_qemu_st_i64_int(TCGv_i64 val, TCGTemp *addr, oi = make_memop_idx(memop, idx); } - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_st_a32_i64; - } else { - opc = INDEX_op_qemu_st_a64_i64; - } - gen_ldst_i64(opc, val, addr, oi); + gen_ldst_i64(INDEX_op_qemu_st_i64, val, addr, oi); plugin_gen_mem_callbacks_i64(val, NULL, addr, orig_oi, QEMU_PLUGIN_MEM_W); if (swap) { @@ -545,7 +520,6 @@ static void tcg_gen_qemu_ld_i128_int(TCGv_i128 val, TCGTemp *addr, { MemOpIdx orig_oi; TCGv_i64 ext_addr = NULL; - TCGOpcode opc; check_max_alignment(memop_alignment_bits(memop)); tcg_gen_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); @@ -573,12 +547,7 @@ static void tcg_gen_qemu_ld_i128_int(TCGv_i128 val, TCGTemp *addr, hi = TCGV128_HIGH(val); } - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_ld_a32_i128; - } else { - opc = INDEX_op_qemu_ld_a64_i128; - } - gen_ldst(opc, TCG_TYPE_I128, tcgv_i64_temp(lo), + gen_ldst(INDEX_op_qemu_ld_i128, TCG_TYPE_I128, tcgv_i64_temp(lo), tcgv_i64_temp(hi), addr, oi); if (need_bswap) { @@ -594,12 +563,6 @@ static void tcg_gen_qemu_ld_i128_int(TCGv_i128 val, TCGTemp *addr, canonicalize_memop_i128_as_i64(mop, memop); need_bswap = (mop[0] ^ memop) & MO_BSWAP; - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_ld_a32_i64; - } else { - opc = INDEX_op_qemu_ld_a64_i64; - } - /* * Since there are no global TCGv_i128, there is no visible state * changed if the second load faults. Load directly into the two @@ -613,7 +576,8 @@ static void tcg_gen_qemu_ld_i128_int(TCGv_i128 val, TCGTemp *addr, y = TCGV128_LOW(val); } - gen_ldst_i64(opc, x, addr, make_memop_idx(mop[0], idx)); + gen_ldst_i64(INDEX_op_qemu_ld_i64, x, addr, + make_memop_idx(mop[0], idx)); if (need_bswap) { tcg_gen_bswap64_i64(x, x); @@ -629,7 +593,8 @@ static void tcg_gen_qemu_ld_i128_int(TCGv_i128 val, TCGTemp *addr, addr_p8 = tcgv_i64_temp(t); } - gen_ldst_i64(opc, y, addr_p8, make_memop_idx(mop[1], idx)); + gen_ldst_i64(INDEX_op_qemu_ld_i64, y, addr_p8, + make_memop_idx(mop[1], idx)); tcg_temp_free_internal(addr_p8); if (need_bswap) { @@ -663,7 +628,6 @@ static void tcg_gen_qemu_st_i128_int(TCGv_i128 val, TCGTemp *addr, { MemOpIdx orig_oi; TCGv_i64 ext_addr = NULL; - TCGOpcode opc; check_max_alignment(memop_alignment_bits(memop)); tcg_gen_req_mo(TCG_MO_ST_LD | TCG_MO_ST_ST); @@ -694,13 +658,8 @@ static void tcg_gen_qemu_st_i128_int(TCGv_i128 val, TCGTemp *addr, hi = TCGV128_HIGH(val); } - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_st_a32_i128; - } else { - opc = INDEX_op_qemu_st_a64_i128; - } - gen_ldst(opc, TCG_TYPE_I128, tcgv_i64_temp(lo), - tcgv_i64_temp(hi), addr, oi); + gen_ldst(INDEX_op_qemu_st_i128, TCG_TYPE_I128, + tcgv_i64_temp(lo), tcgv_i64_temp(hi), addr, oi); if (need_bswap) { tcg_temp_free_i64(lo); @@ -713,12 +672,6 @@ static void tcg_gen_qemu_st_i128_int(TCGv_i128 val, TCGTemp *addr, canonicalize_memop_i128_as_i64(mop, memop); - if (tcg_ctx->addr_type == TCG_TYPE_I32) { - opc = INDEX_op_qemu_st_a32_i64; - } else { - opc = INDEX_op_qemu_st_a64_i64; - } - if ((memop & MO_BSWAP) == MO_LE) { x = TCGV128_LOW(val); y = TCGV128_HIGH(val); @@ -733,7 +686,8 @@ static void tcg_gen_qemu_st_i128_int(TCGv_i128 val, TCGTemp *addr, x = b; } - gen_ldst_i64(opc, x, addr, make_memop_idx(mop[0], idx)); + gen_ldst_i64(INDEX_op_qemu_st_i64, x, addr, + make_memop_idx(mop[0], idx)); if (tcg_ctx->addr_type == TCG_TYPE_I32) { TCGv_i32 t = tcg_temp_ebb_new_i32(); @@ -747,10 +701,12 @@ static void tcg_gen_qemu_st_i128_int(TCGv_i128 val, TCGTemp *addr, if (b) { tcg_gen_bswap64_i64(b, y); - gen_ldst_i64(opc, b, addr_p8, make_memop_idx(mop[1], idx)); + gen_ldst_i64(INDEX_op_qemu_st_i64, b, addr_p8, + make_memop_idx(mop[1], idx)); tcg_temp_free_i64(b); } else { - gen_ldst_i64(opc, y, addr_p8, make_memop_idx(mop[1], idx)); + gen_ldst_i64(INDEX_op_qemu_st_i64, y, addr_p8, + make_memop_idx(mop[1], idx)); } tcg_temp_free_internal(addr_p8); } else { diff --git a/tcg/tcg.c b/tcg/tcg.c index 14c2d38160..fef93b25ff 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -2147,24 +2147,17 @@ bool tcg_op_supported(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_exit_tb: case INDEX_op_goto_tb: case INDEX_op_goto_ptr: - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_ld_i64: + case INDEX_op_qemu_st_i64: return true; - case INDEX_op_qemu_st8_a32_i32: - case INDEX_op_qemu_st8_a64_i32: + case INDEX_op_qemu_st8_i32: return TCG_TARGET_HAS_qemu_st8_i32; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_ld_i128: + case INDEX_op_qemu_st_i128: return TCG_TARGET_HAS_qemu_ldst_i128; case INDEX_op_mov_i32: @@ -2862,20 +2855,13 @@ void tcg_dump_ops(TCGContext *s, FILE *f, bool have_prefs) } i = 1; break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st8_a32_i32: - case INDEX_op_qemu_st8_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st8_i32: + case INDEX_op_qemu_ld_i64: + case INDEX_op_qemu_st_i64: + case INDEX_op_qemu_ld_i128: + case INDEX_op_qemu_st_i128: { const char *s_al, *s_op, *s_at; MemOpIdx oi = op->args[k++]; diff --git a/tcg/tci.c b/tcg/tci.c index 8c1c53424d..d223258efe 100644 --- a/tcg/tci.c +++ b/tcg/tci.c @@ -154,16 +154,6 @@ static void tci_args_rrrbb(uint32_t insn, TCGReg *r0, TCGReg *r1, *i4 = extract32(insn, 26, 6); } -static void tci_args_rrrrr(uint32_t insn, TCGReg *r0, TCGReg *r1, - TCGReg *r2, TCGReg *r3, TCGReg *r4) -{ - *r0 = extract32(insn, 8, 4); - *r1 = extract32(insn, 12, 4); - *r2 = extract32(insn, 16, 4); - *r3 = extract32(insn, 20, 4); - *r4 = extract32(insn, 24, 4); -} - static void tci_args_rrrr(uint32_t insn, TCGReg *r0, TCGReg *r1, TCGReg *r2, TCGReg *r3) { @@ -912,43 +902,21 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, tb_ptr = ptr; break; - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: tci_args_rrm(insn, &r0, &r1, &oi); - taddr = (uint32_t)regs[r1]; - goto do_ld_i32; - case INDEX_op_qemu_ld_a64_i32: - if (TCG_TARGET_REG_BITS == 64) { - tci_args_rrm(insn, &r0, &r1, &oi); - taddr = regs[r1]; - } else { - tci_args_rrrr(insn, &r0, &r1, &r2, &r3); - taddr = tci_uint64(regs[r2], regs[r1]); - oi = regs[r3]; - } - do_ld_i32: + taddr = regs[r1]; regs[r0] = tci_qemu_ld(env, taddr, oi, tb_ptr); break; - case INDEX_op_qemu_ld_a32_i64: - if (TCG_TARGET_REG_BITS == 64) { - tci_args_rrm(insn, &r0, &r1, &oi); - taddr = (uint32_t)regs[r1]; - } else { - tci_args_rrrr(insn, &r0, &r1, &r2, &r3); - taddr = (uint32_t)regs[r2]; - oi = regs[r3]; - } - goto do_ld_i64; - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { tci_args_rrm(insn, &r0, &r1, &oi); taddr = regs[r1]; } else { - tci_args_rrrrr(insn, &r0, &r1, &r2, &r3, &r4); - taddr = tci_uint64(regs[r3], regs[r2]); - oi = regs[r4]; + tci_args_rrrr(insn, &r0, &r1, &r2, &r3); + taddr = regs[r2]; + oi = regs[r3]; } - do_ld_i64: tmp64 = tci_qemu_ld(env, taddr, oi, tb_ptr); if (TCG_TARGET_REG_BITS == 32) { tci_write_reg64(regs, r1, r0, tmp64); @@ -957,47 +925,23 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, } break; - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: tci_args_rrm(insn, &r0, &r1, &oi); - taddr = (uint32_t)regs[r1]; - goto do_st_i32; - case INDEX_op_qemu_st_a64_i32: - if (TCG_TARGET_REG_BITS == 64) { - tci_args_rrm(insn, &r0, &r1, &oi); - taddr = regs[r1]; - } else { - tci_args_rrrr(insn, &r0, &r1, &r2, &r3); - taddr = tci_uint64(regs[r2], regs[r1]); - oi = regs[r3]; - } - do_st_i32: + taddr = regs[r1]; tci_qemu_st(env, taddr, regs[r0], oi, tb_ptr); break; - case INDEX_op_qemu_st_a32_i64: - if (TCG_TARGET_REG_BITS == 64) { - tci_args_rrm(insn, &r0, &r1, &oi); - tmp64 = regs[r0]; - taddr = (uint32_t)regs[r1]; - } else { - tci_args_rrrr(insn, &r0, &r1, &r2, &r3); - tmp64 = tci_uint64(regs[r1], regs[r0]); - taddr = (uint32_t)regs[r2]; - oi = regs[r3]; - } - goto do_st_i64; - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { tci_args_rrm(insn, &r0, &r1, &oi); tmp64 = regs[r0]; taddr = regs[r1]; } else { - tci_args_rrrrr(insn, &r0, &r1, &r2, &r3, &r4); + tci_args_rrrr(insn, &r0, &r1, &r2, &r3); tmp64 = tci_uint64(regs[r1], regs[r0]); - taddr = tci_uint64(regs[r3], regs[r2]); - oi = regs[r4]; + taddr = regs[r2]; + oi = regs[r3]; } - do_st_i64: tci_qemu_st(env, taddr, tmp64, oi, tb_ptr); break; @@ -1269,42 +1213,21 @@ int print_insn_tci(bfd_vma addr, disassemble_info *info) str_r(r3), str_r(r4), str_r(r5)); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_st_a32_i32: - len = 1 + 1; - goto do_qemu_ldst; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_st_a64_i32: - len = 1 + DIV_ROUND_UP(64, TCG_TARGET_REG_BITS); - goto do_qemu_ldst; - case INDEX_op_qemu_ld_a64_i64: - case INDEX_op_qemu_st_a64_i64: - len = 2 * DIV_ROUND_UP(64, TCG_TARGET_REG_BITS); - goto do_qemu_ldst; - do_qemu_ldst: - switch (len) { - case 2: - tci_args_rrm(insn, &r0, &r1, &oi); - info->fprintf_func(info->stream, "%-12s %s, %s, %x", - op_name, str_r(r0), str_r(r1), oi); - break; - case 3: + case INDEX_op_qemu_ld_i64: + case INDEX_op_qemu_st_i64: + if (TCG_TARGET_REG_BITS == 32) { tci_args_rrrr(insn, &r0, &r1, &r2, &r3); info->fprintf_func(info->stream, "%-12s %s, %s, %s, %s", op_name, str_r(r0), str_r(r1), str_r(r2), str_r(r3)); break; - case 4: - tci_args_rrrrr(insn, &r0, &r1, &r2, &r3, &r4); - info->fprintf_func(info->stream, "%-12s %s, %s, %s, %s, %s", - op_name, str_r(r0), str_r(r1), - str_r(r2), str_r(r3), str_r(r4)); - break; - default: - g_assert_not_reached(); } + /* fall through */ + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_st_i32: + tci_args_rrm(insn, &r0, &r1, &oi); + info->fprintf_func(info->stream, "%-12s %s, %s, %x", + op_name, str_r(r0), str_r(r1), oi); break; case 0: diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc index 66eb4b73b5..45dc2c649b 100644 --- a/tcg/aarch64/tcg-target.c.inc +++ b/tcg/aarch64/tcg-target.c.inc @@ -2398,24 +2398,18 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, tcg_out_insn(s, 3506, CSEL, ext, a0, REG0(3), REG0(4), args[5]); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, a0, a1, a2, ext); break; - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, REG0(0), a1, a2, ext); break; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_out_qemu_ldst_i128(s, a0, a1, a2, args[3], true); break; - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_out_qemu_ldst_i128(s, REG0(0), REG0(1), a2, args[3], false); break; @@ -3084,21 +3078,15 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_movcond_i64: return C_O1_I4(r, r, rC, rZ, rZ); - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: return C_O2_I1(r, r, r); - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: return C_O0_I2(rZ, r); - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: return C_O0_I3(rZ, rZ, r); case INDEX_op_deposit_i32: diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 12dad7307f..05bb367a39 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -2071,37 +2071,21 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, ARITH_MOV, args[0], 0, 0); break; - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a64_i32: - tcg_out_qemu_ld(s, args[0], -1, args[1], args[2], - args[3], TCG_TYPE_I32); - break; - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, args[0], args[1], args[2], -1, args[3], TCG_TYPE_I64); break; - case INDEX_op_qemu_ld_a64_i64: - tcg_out_qemu_ld(s, args[0], args[1], args[2], args[3], - args[4], TCG_TYPE_I64); - break; - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a64_i32: - tcg_out_qemu_st(s, args[0], -1, args[1], args[2], - args[3], TCG_TYPE_I32); - break; - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, args[0], args[1], args[2], -1, args[3], TCG_TYPE_I64); break; - case INDEX_op_qemu_st_a64_i64: - tcg_out_qemu_st(s, args[0], args[1], args[2], args[3], - args[4], TCG_TYPE_I64); - break; case INDEX_op_bswap16_i32: tcg_out_bswap16(s, COND_AL, args[0], args[1], args[2]); @@ -2243,22 +2227,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_setcond2_i32: return C_O1_I4(r, r, r, rI, rI); - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: return C_O1_I1(r, q); - case INDEX_op_qemu_ld_a64_i32: - return C_O1_I2(r, q, q); - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: return C_O2_I1(e, p, q); - case INDEX_op_qemu_ld_a64_i64: - return C_O2_I2(e, p, q, q); - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: return C_O0_I2(q, q); - case INDEX_op_qemu_st_a64_i32: - return C_O0_I3(q, q, q); - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: return C_O0_I3(Q, p, q); - case INDEX_op_qemu_st_a64_i64: - return C_O0_I4(Q, p, q, q); case INDEX_op_st_vec: return C_O0_I2(w, r); diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index 2cac151331..ca6e8abc57 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -2879,62 +2879,33 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out_modrm(s, OPC_GRP3_Ev + rexw, EXT3_NOT, a0); break; - case INDEX_op_qemu_ld_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_ld(s, a0, -1, a1, a2, args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, a0, -1, a1, -1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_ld(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); } else { tcg_out_qemu_ld(s, a0, a1, a2, -1, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_ld_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); - } else { - tcg_out_qemu_ld(s, a0, a1, a2, args[3], args[4], TCG_TYPE_I64); - } - break; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); tcg_out_qemu_ld(s, a0, a1, a2, -1, args[3], TCG_TYPE_I128); break; - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st8_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_st(s, a0, -1, a1, a2, args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st8_a32_i32: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st8_i32: tcg_out_qemu_st(s, a0, -1, a1, -1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_st(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); } else { tcg_out_qemu_st(s, a0, a1, a2, -1, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_st_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); - } else { - tcg_out_qemu_st(s, a0, a1, a2, args[3], args[4], TCG_TYPE_I64); - } - break; - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); tcg_out_qemu_st(s, a0, a1, a2, -1, args[3], TCG_TYPE_I128); break; @@ -3824,36 +3795,24 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_clz_i64: return have_lzcnt ? C_N1_I2(r, r, rW) : C_N1_I2(r, r, r); - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: return C_O1_I1(r, L); - case INDEX_op_qemu_ld_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, L) : C_O1_I2(r, L, L); - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: return C_O0_I2(L, L); - case INDEX_op_qemu_st_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(L, L) : C_O0_I3(L, L, L); - case INDEX_op_qemu_st8_a32_i32: + case INDEX_op_qemu_st8_i32: return C_O0_I2(s, L); - case INDEX_op_qemu_st8_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(s, L) : C_O0_I3(s, L, L); - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, L) : C_O2_I1(r, r, L); - case INDEX_op_qemu_ld_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, L) : C_O2_I2(r, r, L, L); - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(L, L) : C_O0_I3(L, L, L); - case INDEX_op_qemu_st_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(L, L) : C_O0_I4(L, L, L, L); - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); return C_O2_I1(r, r, L); - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); return C_O0_I3(L, L, L); diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc index cebe8dd354..4f32bf3e97 100644 --- a/tcg/loongarch64/tcg-target.c.inc +++ b/tcg/loongarch64/tcg-target.c.inc @@ -1675,28 +1675,22 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out_ldst(s, OPC_ST_D, a0, a1, a2); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I64); break; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_out_qemu_ldst_i128(s, a0, a1, a2, a3, true); break; - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I64); break; - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_out_qemu_ldst_i128(s, a0, a1, a2, a3, false); break; @@ -2233,18 +2227,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st32_i64: case INDEX_op_st_i32: case INDEX_op_st_i64: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: return C_O0_I2(rZ, r); - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: return C_N2_I1(r, r, r); - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: return C_O0_I3(r, r, r); case INDEX_op_brcond_i32: @@ -2290,10 +2280,8 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_ld32u_i64: case INDEX_op_ld_i32: case INDEX_op_ld_i64: - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); case INDEX_op_andc_i32: diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index 99f6ef6c76..b1d512ca2a 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -2095,53 +2095,27 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out_setcond2(s, args[5], a0, a1, a2, args[3], args[4]); break; - case INDEX_op_qemu_ld_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_ld(s, a0, 0, a1, a2, args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, a0, 0, a1, 0, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_ld(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); } else { tcg_out_qemu_ld(s, a0, a1, a2, 0, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_ld_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); - } else { - tcg_out_qemu_ld(s, a0, a1, a2, args[3], args[4], TCG_TYPE_I64); - } - break; - case INDEX_op_qemu_st_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_st(s, a0, 0, a1, a2, args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, a0, 0, a1, 0, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_st(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); } else { tcg_out_qemu_st(s, a0, a1, a2, 0, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_st_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); - } else { - tcg_out_qemu_st(s, a0, a1, a2, args[3], args[4], TCG_TYPE_I64); - } - break; case INDEX_op_add2_i32: tcg_out_addsub2(s, a0, a1, a2, args[3], args[4], args[5], @@ -2301,23 +2275,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_brcond2_i32: return C_O0_I4(rZ, rZ, rZ, rZ); - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: return C_O1_I1(r, r); - case INDEX_op_qemu_ld_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O1_I2(r, r, r); - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: return C_O0_I2(rZ, r); - case INDEX_op_qemu_st_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(rZ, r) : C_O0_I3(rZ, r, r); - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I1(r, r, r); - case INDEX_op_qemu_ld_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I2(r, r, r, r); - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(rZ, r) : C_O0_I3(rZ, rZ, r); - case INDEX_op_qemu_st_a64_i64: - return (TCG_TARGET_REG_BITS == 64 ? C_O0_I2(rZ, r) - : C_O0_I4(rZ, rZ, r, r)); default: return C_NotImplemented; diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 6e711cd53f..801cb6f3cb 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -3308,17 +3308,10 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out32(s, MODUD | TAB(args[0], args[1], args[2])); break; - case INDEX_op_qemu_ld_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_ld(s, args[0], -1, args[1], args[2], - args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_ld(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I64); @@ -3327,32 +3320,15 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_ld_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, args[0], -1, args[1], -1, - args[2], TCG_TYPE_I64); - } else { - tcg_out_qemu_ld(s, args[0], args[1], args[2], args[3], - args[4], TCG_TYPE_I64); - } - break; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); tcg_out_qemu_ldst_i128(s, args[0], args[1], args[2], args[3], true); break; - case INDEX_op_qemu_st_a64_i32: - if (TCG_TARGET_REG_BITS == 32) { - tcg_out_qemu_st(s, args[0], -1, args[1], args[2], - args[3], TCG_TYPE_I32); - break; - } - /* fall through */ - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: + case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { tcg_out_qemu_st(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I64); @@ -3361,17 +3337,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, args[3], TCG_TYPE_I64); } break; - case INDEX_op_qemu_st_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, args[0], -1, args[1], -1, - args[2], TCG_TYPE_I64); - } else { - tcg_out_qemu_st(s, args[0], args[1], args[2], args[3], - args[4], TCG_TYPE_I64); - } - break; - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); tcg_out_qemu_ldst_i128(s, args[0], args[1], args[2], args[3], false); break; @@ -4306,29 +4272,19 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_sub2_i32: return C_O2_I4(r, r, rI, rZM, r, r); - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: return C_O1_I1(r, r); - case INDEX_op_qemu_ld_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O1_I2(r, r, r); - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I1(r, r, r); - case INDEX_op_qemu_ld_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I2(r, r, r, r); - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: return C_O0_I2(r, r); - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i64: return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I3(r, r, r); - case INDEX_op_qemu_st_a32_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I3(r, r, r); - case INDEX_op_qemu_st_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I4(r, r, r, r); - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: return C_N1O1_I1(o, m, r); - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: return C_O0_I3(o, m, r); case INDEX_op_add_vec: diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 61dc310c1a..55a3398712 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -2309,20 +2309,16 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, args[3], const_args[3], args[4], const_args[4]); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I64); break; - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I64); break; @@ -2761,15 +2757,11 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_sub2_i64: return C_O2_I4(r, r, rZ, rZ, rM, rM); - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: return C_O0_I2(rZ, r); case INDEX_op_st_vec: diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc index dc7722dc31..6786e7b316 100644 --- a/tcg/s390x/tcg-target.c.inc +++ b/tcg/s390x/tcg-target.c.inc @@ -2455,28 +2455,22 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, args[2], const_args[2], args[3], const_args[3], args[4]); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, args[0], args[1], args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, args[0], args[1], args[2], TCG_TYPE_I64); break; - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, args[0], args[1], args[2], TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, args[0], args[1], args[2], TCG_TYPE_I64); break; - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: tcg_out_qemu_ldst_i128(s, args[0], args[1], args[2], args[3], true); break; - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: tcg_out_qemu_ldst_i128(s, args[0], args[1], args[2], args[3], false); break; @@ -3366,21 +3360,15 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_ctpop_i64: return C_O1_I1(r, r); - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i64: + case INDEX_op_qemu_st_i32: return C_O0_I2(r, r); - case INDEX_op_qemu_ld_a32_i128: - case INDEX_op_qemu_ld_a64_i128: + case INDEX_op_qemu_ld_i128: return C_O2_I1(o, m, r); - case INDEX_op_qemu_st_a32_i128: - case INDEX_op_qemu_st_a64_i128: + case INDEX_op_qemu_st_i128: return C_O0_I3(o, m, r); case INDEX_op_deposit_i32: diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc index 733cb51651..ea0a3b8692 100644 --- a/tcg/sparc64/tcg-target.c.inc +++ b/tcg/sparc64/tcg-target.c.inc @@ -1426,20 +1426,16 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out_arithi(s, a1, a0, 32, SHIFT_SRLX); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: + case INDEX_op_qemu_ld_i32: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i64: tcg_out_qemu_ld(s, a0, a1, a2, TCG_TYPE_I64); break; - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i32: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I32); break; - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i64: tcg_out_qemu_st(s, a0, a1, a2, TCG_TYPE_I64); break; @@ -1570,10 +1566,8 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_extu_i32_i64: case INDEX_op_extract_i64: case INDEX_op_sextract_i64: - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_ld_a64_i64: + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); case INDEX_op_st8_i32: @@ -1583,10 +1577,8 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st_i32: case INDEX_op_st32_i64: case INDEX_op_st_i64: - case INDEX_op_qemu_st_a32_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_st_a32_i64: - case INDEX_op_qemu_st_a64_i64: + case INDEX_op_qemu_st_i32: + case INDEX_op_qemu_st_i64: return C_O0_I2(rZ, r); case INDEX_op_add_i32: diff --git a/tcg/tci/tcg-target.c.inc b/tcg/tci/tcg-target.c.inc index d6c77325a3..36e018dd19 100644 --- a/tcg/tci/tcg-target.c.inc +++ b/tcg/tci/tcg-target.c.inc @@ -169,22 +169,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_setcond2_i32: return C_O1_I4(r, r, r, r, r); - case INDEX_op_qemu_ld_a32_i32: + case INDEX_op_qemu_ld_i32: return C_O1_I1(r, r); - case INDEX_op_qemu_ld_a64_i32: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O1_I2(r, r, r); - case INDEX_op_qemu_ld_a32_i64: + case INDEX_op_qemu_ld_i64: return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I1(r, r, r); - case INDEX_op_qemu_ld_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I2(r, r, r, r); - case INDEX_op_qemu_st_a32_i32: + case INDEX_op_qemu_st_i32: return C_O0_I2(r, r); - case INDEX_op_qemu_st_a64_i32: + case INDEX_op_qemu_st_i64: return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I3(r, r, r); - case INDEX_op_qemu_st_a32_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I3(r, r, r); - case INDEX_op_qemu_st_a64_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(r, r) : C_O0_I4(r, r, r, r); default: return C_NotImplemented; @@ -422,20 +414,6 @@ static void tcg_out_op_rrrbb(TCGContext *s, TCGOpcode op, TCGReg r0, tcg_out32(s, insn); } -static void tcg_out_op_rrrrr(TCGContext *s, TCGOpcode op, TCGReg r0, - TCGReg r1, TCGReg r2, TCGReg r3, TCGReg r4) -{ - tcg_insn_unit insn = 0; - - insn = deposit32(insn, 0, 8, op); - insn = deposit32(insn, 8, 4, r0); - insn = deposit32(insn, 12, 4, r1); - insn = deposit32(insn, 16, 4, r2); - insn = deposit32(insn, 20, 4, r3); - insn = deposit32(insn, 24, 4, r4); - tcg_out32(s, insn); -} - static void tcg_out_op_rrrr(TCGContext *s, TCGOpcode op, TCGReg r0, TCGReg r1, TCGReg r2, TCGReg r3) { @@ -833,29 +811,21 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, tcg_out_op_rrrr(s, opc, args[0], args[1], args[2], args[3]); break; - case INDEX_op_qemu_ld_a32_i32: - case INDEX_op_qemu_st_a32_i32: - tcg_out_op_rrm(s, opc, args[0], args[1], args[2]); - break; - case INDEX_op_qemu_ld_a64_i32: - case INDEX_op_qemu_st_a64_i32: - case INDEX_op_qemu_ld_a32_i64: - case INDEX_op_qemu_st_a32_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_op_rrm(s, opc, args[0], args[1], args[2]); - } else { + case INDEX_op_qemu_ld_i64: + case INDEX_op_qemu_st_i64: + if (TCG_TARGET_REG_BITS == 32) { tcg_out_movi(s, TCG_TYPE_I32, TCG_REG_TMP, args[3]); tcg_out_op_rrrr(s, opc, args[0], args[1], args[2], TCG_REG_TMP); + break; } - break; - case INDEX_op_qemu_ld_a64_i64: - case INDEX_op_qemu_st_a64_i64: - if (TCG_TARGET_REG_BITS == 64) { - tcg_out_op_rrm(s, opc, args[0], args[1], args[2]); + /* fall through */ + case INDEX_op_qemu_ld_i32: + case INDEX_op_qemu_st_i32: + if (TCG_TARGET_REG_BITS == 64 && s->addr_type == TCG_TYPE_I32) { + tcg_out_ext32u(s, TCG_REG_TMP, args[1]); + tcg_out_op_rrm(s, opc, args[0], TCG_REG_TMP, args[2]); } else { - tcg_out_movi(s, TCG_TYPE_I32, TCG_REG_TMP, args[4]); - tcg_out_op_rrrrr(s, opc, args[0], args[1], - args[2], args[3], TCG_REG_TMP); + tcg_out_op_rrm(s, opc, args[0], args[1], args[2]); } break; From patchwork Sun Feb 16 00:00:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865528 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519805wri; Sat, 15 Feb 2025 16:04:14 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVcEyJ0iakvMYFj+bSdN1m76yayWh/iwq/UbJnmltoNlkpmcvOhehq9ftADn86txRaS7xjPNw==@linaro.org X-Google-Smtp-Source: AGHT+IE7jNnpl6A3yfnROnkyoPmALhQK9/a13BrIupqZcH0zlNGG+y4Czqh3RRaWWFtDoo3vfndf X-Received: by 2002:ac8:7d54:0:b0:46d:faa2:b6e0 with SMTP id d75a77b69052e-471dbd234c8mr66593721cf.18.1739664254285; Sat, 15 Feb 2025 16:04:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664254; cv=none; d=google.com; s=arc-20240605; b=MMAwpB4tnKKIxwnYa40o3aTnVnfVpgeqoQtPRLGNAoLZi5wbJs12r0eUMz08aypWtF At6zsExboxLwjPCfjoQHLfRAmrHdtCe8QpUqq+ECYTLFfo5dvQoK9pjxQTfItDjF/1Zq Fnodm6inzP68xLPOcrv30yJGl0O3xKayM0x6LiLtKkRWc5n9blxSJMRRskguOZezwoxI 811vnhRp3X4g8vy4j3HzNl+YKJfFdniKEQJUStUduj0zdd7WePCPeH+y2vH9gVMc4uJP Y2brg2rwOxrdyj5nAPt3q1w94wHySmzOkbcVU0xaZASKZToLdmduj4joZvGdqDO0quvl 1pxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=S+kIGuGBK8eG0Jdr2LQlsshBeedKRjQUqU3s0GIA0mE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=cz5MPzt6UoV3Qaqoq1air9eEg1igI78/uKrUNH+Q5YfeFmudIXM2kHs3xvLJKk0BCl MM9PrsHmD14TSuPvMgqw22qU5QYVTaVoBwpaZEXwPYoMv9YkdXl+AIwr+gP1zdNVB4g+ uwg9jHvpY7/QPHsNTI/8TI6n7pcy5eMStBWGPbyS4k4Lo9g2aZjfaBw48AQhH4JgMaKt LpK+mxXry19feZcQ632Qnsoo/NG2twGhehxjICavDez6L3ILpUEicZsnQT1YXfDwBjBq +VpPyw1rxmmyXg1BbQD15gQyuL+efs5qmqzVesSrq7VXomIGSsO8uzyU8VPmA6dUnVZj kscg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MZi1fG6y; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b73523si58790571cf.601.2025.02.15.16.04.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:04:14 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MZi1fG6y; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6R-0007hU-NP; Sat, 15 Feb 2025 19:01:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS64-0007bf-TK for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:23 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS60-0006Fk-Lt for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:18 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-220e989edb6so56607575ad.1 for ; Sat, 15 Feb 2025 16:01:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664075; x=1740268875; 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; bh=S+kIGuGBK8eG0Jdr2LQlsshBeedKRjQUqU3s0GIA0mE=; b=MZi1fG6y9m033RNV080YbWQdmxmCl0S7y5QnBeybHhVAJ5l+iyX77llFICdrJCHXEk M/zArboGa9B13SDkm07g8vBYrVoKJotEv29qMH+LMwjMXjTuWVd00vjZFh7apNGfcm8N gDZ945x7UPE5OEZoaowVycKA2I//yPHGNPKiLYHI8facrPZLHhZShqc3QSLlsH1TabRq 5r/4tZlFa+oyWGt8EaV3n4kH7pmwuWJBFmD1E2GIP9AQWIovnDtcmg/0www8RuZIIjoh Cw4a9kW0h80FB/bkvPXhFx2PaKUKtySs6gYVSkQCLcSOBKq+otRXU3VMrs8FFUNKmsWi RzFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664075; x=1740268875; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S+kIGuGBK8eG0Jdr2LQlsshBeedKRjQUqU3s0GIA0mE=; b=dq+1zgyM+YM15hjQCFXlxtwJMoVNCwaMBG5X3+osYfNdqFDTksj2Cnwm6Vo6hF7epS 9X3WJMhdpPCEyIKtJMDhXG6UwyvZkvdnCiamfg3RzjGfFojFeDO1LzvhhhCll7xMqB4Y ugUTl05Rjuzekj4VC1zsJvpsoDQzhYVgxNme0aMuPouxzh5zzvgZ9PpnDnY8oSRIG9Cf 0MynO2Uwkdgz86lVGvBgEGGXy3fCZCVvarb9NYR3Iy/0QnhmCya71f0pgNWRmfgIqvLl r3P04pzTXojuO0hu7vAF2RIG38i+SULm66e+PU66c5BkjaQXL8YBIjDjfxfkApYtooeg 39ag== X-Gm-Message-State: AOJu0Yy05v4KhyxMUGbyr4Mg+IWEgzlwMayuQgxIC0PubX1t33mdnP6I JRuJ7SSaQ+fr6YT8dLYxRyD0Tl0ecuN1GxK637YJLbW8Nnob7QTfGddUB9hB/DlW8Gp1NdSg11B e X-Gm-Gg: ASbGncuV9yEFJJrDcsm1g5Aw6Piyal3XTUnD6CfakyhzoEzcLCMVJgXK4uLI8stYavT QrFxlP3Bj6SUInLBWZNUo9QJeDvMm0T5yyjumy6XWu8IEFXuj/AvRjdBAiG5ZvBpofa9V2EGYR6 bcSC7Uen5nNHbum/fBVHW3VzUjt6laGZhjSpBWn9Mfn6EPr9X35CyGq4MTVTj0u/lLF3OYutLQf p4Cocx4efjhSmOY36ZdBh2GxG0qeJltQeIw6BKaPTrSlG2kZJOQtJMNz7zuXQ85itsa1aTIyTSq Omv+UnJ5WYzGZ6VAWr/qeuyQlAXF5GZ5Pe+oXTEvpn7kWDo= X-Received: by 2002:a17:902:fc4e:b0:21f:71b4:d2aa with SMTP id d9443c01a7336-22103efeebcmr82131775ad.5.1739664075079; Sat, 15 Feb 2025 16:01:15 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:14 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 05/24] tcg/arm: Drop addrhi from prepare_host_addr Date: Sat, 15 Feb 2025 16:00:49 -0800 Message-ID: <20250216000109.2606518-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The guest address will now always be TCG_TYPE_I32. Signed-off-by: Richard Henderson --- tcg/arm/tcg-target.c.inc | 63 ++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 05bb367a39..252d9aa7e5 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -1455,8 +1455,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) #define MIN_TLB_MASK_TABLE_OFS -256 static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, bool is_ld) + TCGReg addr, MemOpIdx oi, bool is_ld) { TCGLabelQemuLdst *ldst = NULL; MemOp opc = get_memop(oi); @@ -1465,14 +1464,14 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, if (tcg_use_softmmu) { *h = (HostAddress){ .cond = COND_AL, - .base = addrlo, + .base = addr, .index = TCG_REG_R1, .index_scratch = true, }; } else { *h = (HostAddress){ .cond = COND_AL, - .base = addrlo, + .base = addr, .index = guest_base ? TCG_REG_GUEST_BASE : -1, .index_scratch = false, }; @@ -1492,8 +1491,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* Load cpu->neg.tlb.f[mmu_idx].{mask,table} into {r0,r1}. */ QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, mask) != 0); @@ -1501,30 +1499,20 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, tcg_out_ldrd_8(s, COND_AL, TCG_REG_R0, TCG_AREG0, fast_off); /* Extract the tlb index from the address into R0. */ - tcg_out_dat_reg(s, COND_AL, ARITH_AND, TCG_REG_R0, TCG_REG_R0, addrlo, + tcg_out_dat_reg(s, COND_AL, ARITH_AND, TCG_REG_R0, TCG_REG_R0, addr, SHIFT_IMM_LSR(s->page_bits - CPU_TLB_ENTRY_BITS)); /* * Add the tlb_table pointer, creating the CPUTLBEntry address in R1. - * Load the tlb comparator into R2/R3 and the fast path addend into R1. + * Load the tlb comparator into R2 and the fast path addend into R1. */ QEMU_BUILD_BUG_ON(HOST_BIG_ENDIAN); if (cmp_off == 0) { - if (s->addr_type == TCG_TYPE_I32) { - tcg_out_ld32_rwb(s, COND_AL, TCG_REG_R2, - TCG_REG_R1, TCG_REG_R0); - } else { - tcg_out_ldrd_rwb(s, COND_AL, TCG_REG_R2, - TCG_REG_R1, TCG_REG_R0); - } + tcg_out_ld32_rwb(s, COND_AL, TCG_REG_R2, TCG_REG_R1, TCG_REG_R0); } else { tcg_out_dat_reg(s, COND_AL, ARITH_ADD, TCG_REG_R1, TCG_REG_R1, TCG_REG_R0, 0); - if (s->addr_type == TCG_TYPE_I32) { - tcg_out_ld32_12(s, COND_AL, TCG_REG_R2, TCG_REG_R1, cmp_off); - } else { - tcg_out_ldrd_8(s, COND_AL, TCG_REG_R2, TCG_REG_R1, cmp_off); - } + tcg_out_ld32_12(s, COND_AL, TCG_REG_R2, TCG_REG_R1, cmp_off); } /* Load the tlb addend. */ @@ -1543,11 +1531,11 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, * This leaves the least significant alignment bits unchanged, and of * course must be zero. */ - t_addr = addrlo; + t_addr = addr; if (a_mask < s_mask) { t_addr = TCG_REG_R0; tcg_out_dat_imm(s, COND_AL, ARITH_ADD, t_addr, - addrlo, s_mask - a_mask); + addr, s_mask - a_mask); } if (use_armv7_instructions && s->page_bits <= 16) { tcg_out_movi32(s, COND_AL, TCG_REG_TMP, ~(s->page_mask | a_mask)); @@ -1558,7 +1546,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, } else { if (a_mask) { tcg_debug_assert(a_mask <= 0xff); - tcg_out_dat_imm(s, COND_AL, ARITH_TST, 0, addrlo, a_mask); + tcg_out_dat_imm(s, COND_AL, ARITH_TST, 0, addr, a_mask); } tcg_out_dat_reg(s, COND_AL, ARITH_MOV, TCG_REG_TMP, 0, t_addr, SHIFT_IMM_LSR(s->page_bits)); @@ -1566,21 +1554,16 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, 0, TCG_REG_R2, TCG_REG_TMP, SHIFT_IMM_LSL(s->page_bits)); } - - if (s->addr_type != TCG_TYPE_I32) { - tcg_out_dat_reg(s, COND_EQ, ARITH_CMP, 0, TCG_REG_R3, addrhi, 0); - } } else if (a_mask) { ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* We are expecting alignment to max out at 7 */ tcg_debug_assert(a_mask <= 0xff); /* tst addr, #mask */ - tcg_out_dat_imm(s, COND_AL, ARITH_TST, 0, addrlo, a_mask); + tcg_out_dat_imm(s, COND_AL, ARITH_TST, 0, addr, a_mask); } return ldst; @@ -1678,14 +1661,13 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, MemOp opc, TCGReg datalo, } static void tcg_out_qemu_ld(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, true); + ldst = prepare_host_addr(s, &h, addr, oi, true); if (ldst) { ldst->type = data_type; ldst->datalo_reg = datalo; @@ -1764,14 +1746,13 @@ static void tcg_out_qemu_st_direct(TCGContext *s, MemOp opc, TCGReg datalo, } static void tcg_out_qemu_st(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, false); + ldst = prepare_host_addr(s, &h, addr, oi, false); if (ldst) { ldst->type = data_type; ldst->datalo_reg = datalo; @@ -2072,19 +2053,17 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, break; case INDEX_op_qemu_ld_i32: - tcg_out_qemu_ld(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); + tcg_out_qemu_ld(s, args[0], -1, args[1], args[2], TCG_TYPE_I32); break; case INDEX_op_qemu_ld_i64: - tcg_out_qemu_ld(s, args[0], args[1], args[2], -1, - args[3], TCG_TYPE_I64); + tcg_out_qemu_ld(s, args[0], args[1], args[2], args[3], TCG_TYPE_I64); break; case INDEX_op_qemu_st_i32: - tcg_out_qemu_st(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); + tcg_out_qemu_st(s, args[0], -1, args[1], args[2], TCG_TYPE_I32); break; case INDEX_op_qemu_st_i64: - tcg_out_qemu_st(s, args[0], args[1], args[2], -1, - args[3], TCG_TYPE_I64); + tcg_out_qemu_st(s, args[0], args[1], args[2], args[3], TCG_TYPE_I64); break; case INDEX_op_bswap16_i32: From patchwork Sun Feb 16 00:00:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865524 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519600wri; Sat, 15 Feb 2025 16:03:29 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVA2BsYxjlRHJrqr1XBq1Iv66WLhJuthOHqTtI4bxnBl30qZtdMjvmIkKRhEvRLrYAHfOaXJw==@linaro.org X-Google-Smtp-Source: AGHT+IEvIfRnzQ7ijqvQAfHTN7bD/VFAaRnGHizNecAkQKmLhNxwsxbUEo3gyMFuEagwK7Fi8LxS X-Received: by 2002:a05:622a:1826:b0:467:72c1:7084 with SMTP id d75a77b69052e-471bffabfaemr200025631cf.0.1739664209087; Sat, 15 Feb 2025 16:03:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664209; cv=none; d=google.com; s=arc-20240605; b=JFSFgctWtByDiI4+ZtwzCpqPEa0J7yeoncLl+7z/pcZXif+xIhlN7EJoWKj8S31Gu1 PagJrviZ98OEkrMMmawKQNMCSUJn7qVukJUyitRdLcvvb+RmeWZGl1yOp6IP+MmHiCBK QJ6qZCw/CiQF6blKQhtp6bHyhqPvPDtxkpdG68FwPBtNndiCpZTS27GDJEPLgDzAvKZW sVz4JMX8gg5mplb9xZCuHF0G/3zoQSo6hMQek86REr1ycXZYP5pVsmbuXYrx17cPHzPV rVzV13zBBs8bsYc3gAJXjLB3Ch+q1rXmsWV79MPnWS2JYqdKgpZMoQdXq9iUxFq34e0j rvBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=MkSZ1z/mYS0WLY38Nj4nOWztbQOUR5F30WqULi7ciuM=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=AHnltODX0fiLZpz5txT9uOWfRRMLtAu+MO1hTnzOGr3qQcILtZt8D1Pz181zIBCSlb hXpZA1wXQo2b5uYJ1+scClzujXJspcwMilBA0euO5NBH8zZM1kFcGVUVjn+sM3SfGP/A 3pd8X+SnQFI9L+nmcQgwQcGLvdj9SYmwcB8SVRrnurqwLtbLXJ66VMzz0C93onC4at7E 7oc0Uz8tNFhQ0TbczMJ43QAkCezmrMLx82UcvrMFuOyjHpAoIqOLe2wMUWweRnNVsAQX Ijhhm/khskAM5iJnrTlZvX2gqzHJ50qiarEia0hF5ir8u4UbikJCwhpt8ZzFvE3loL7Y BtDQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LEo8SR4p; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b2c4bfsi62210061cf.315.2025.02.15.16.03.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LEo8SR4p; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6L-0007fR-PL; Sat, 15 Feb 2025 19:01:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007by-KZ for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS62-0006Fv-Pu for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:22 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-220c92c857aso51555325ad.0 for ; Sat, 15 Feb 2025 16:01:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664076; x=1740268876; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MkSZ1z/mYS0WLY38Nj4nOWztbQOUR5F30WqULi7ciuM=; b=LEo8SR4pzxdc1x7ebYDX+LtSHcspcWV/tZOa1bTTmzbvUgDkP/7yUQpK+GfK1fm3RK Voo6db6Bh1M3v9im9mNk1TSE/9zAb8GA4CTg4wJL6ruTWKXlxMBRHFHVG2Ar3QjN9hYi EY8/rI3JFfwghFispupcuHEMOZ7J+ntAR1IkrAEuuN284/94N6lq78y5UrvOCm305FGl lUnBR8RfMRWDtbDHvIT/XeVD3Dw/Ti8C9U5TezMxrU2WwdSszV/O4WEJnPRojefuNybC UDP04EmZWIKkDMEx+ZmfOssuBqf/XgPOpIkUEWbPeFMCxszOCVVaPbJdNJJB9z6lMHYk 8Iiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664076; x=1740268876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MkSZ1z/mYS0WLY38Nj4nOWztbQOUR5F30WqULi7ciuM=; b=wACLadwcTCiYSCEwVUfV19ETWNNc3Lj8wqaOOpeVcYcClUkY0PfGPSkEl+eDMfZNGl U7lhmrY3ZK+UTJcqBfdSSPsYtlwCCMQZFZXDxK4961mSSYk9tMb4DVXtDoEesIy4K0mA jIkmD6CV8LFJ66YTKGqa/tRY3uZRPe6ov2Xv7ybRE1KvybYIRINXHuzh5Cz4yuY8Aw0f JoJxqhZ09yT+rXDbelOttCsj62FjYJefR5hipZVv24CFHZYzQbRCGmTzL0ykhCRsJo6J BMV4d/POhqda2Cw0U8/Dfp2q/Km+Pxy038YRWBd0SeVh19XB7SnIAwd0uNuxrXB0Ho+t OvhA== X-Gm-Message-State: AOJu0YyqZWlh/7S6qbxkK50YrSC18W7KxewFJGm8EnEww5cftgqBT7q/ LJ+JzFAmKeinbuskp3vJxf8EoxSW+7uB8tTwqsBKkQRRnzUJGSq4OFf4pi4ZLv6pP5Q7P/bfqiG 3 X-Gm-Gg: ASbGncslBLXfS/VSyqfw36VraIV0CqGS1qQ1/pKbH4IIYvlW0Ea1iC/J5QNzkxSd7lD xfOdHFoLdNh8LNDlBEP9TLqWFP/vnOAA3/HyKhJ/mCZXqaLnvpQttrQYUTntZFhsM2MdAmYXOCG Oby5Li5qpf14uCaVuts1MXpgZfa1c8yGAVBfK/D1aG/T2nSWqURirNbk24PIYt+VdLj0JHk5I68 17rGwVDMY3JTFSy7uy7hRfdhYtymJfF7edq2aY/nL/h4twKykQkrVa37PcZWJpS/Cl9hOpzbxxo dWLQsbstk1oKrL77cIGRj1mkTF/m6K91HJo9bMY7ecsSouA= X-Received: by 2002:a17:902:f64f:b0:215:6c5f:d142 with SMTP id d9443c01a7336-2210460c80dmr60409995ad.20.1739664075872; Sat, 15 Feb 2025 16:01:15 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:15 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 06/24] tcg/i386: Drop addrhi from prepare_host_addr Date: Sat, 15 Feb 2025 16:00:50 -0800 Message-ID: <20250216000109.2606518-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The guest address will now always fit in one register. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.c.inc | 56 ++++++++++++++------------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index ca6e8abc57..b33fe7fe23 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -2169,8 +2169,7 @@ static inline int setup_guest_base_seg(void) * is required and fill in @h with the host address for the fast path. */ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, bool is_ld) + TCGReg addr, MemOpIdx oi, bool is_ld) { TCGLabelQemuLdst *ldst = NULL; MemOp opc = get_memop(oi); @@ -2184,7 +2183,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, } else { *h = x86_guest_base; } - h->base = addrlo; + h->base = addr; h->aa = atom_and_align_for_opc(s, opc, MO_ATOM_IFALIGN, s_bits == MO_128); a_mask = (1 << h->aa.align) - 1; @@ -2202,8 +2201,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; if (TCG_TARGET_REG_BITS == 64) { ttype = s->addr_type; @@ -2217,7 +2215,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, } } - tcg_out_mov(s, tlbtype, TCG_REG_L0, addrlo); + tcg_out_mov(s, tlbtype, TCG_REG_L0, addr); tcg_out_shifti(s, SHIFT_SHR + tlbrexw, TCG_REG_L0, s->page_bits - CPU_TLB_ENTRY_BITS); @@ -2233,10 +2231,10 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, * check that we don't cross pages for the complete access. */ if (a_mask >= s_mask) { - tcg_out_mov(s, ttype, TCG_REG_L1, addrlo); + tcg_out_mov(s, ttype, TCG_REG_L1, addr); } else { tcg_out_modrm_offset(s, OPC_LEA + trexw, TCG_REG_L1, - addrlo, s_mask - a_mask); + addr, s_mask - a_mask); } tlb_mask = s->page_mask | a_mask; tgen_arithi(s, ARITH_AND + trexw, TCG_REG_L1, tlb_mask, 0); @@ -2250,17 +2248,6 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst->label_ptr[0] = s->code_ptr; s->code_ptr += 4; - if (TCG_TARGET_REG_BITS == 32 && s->addr_type == TCG_TYPE_I64) { - /* cmp 4(TCG_REG_L0), addrhi */ - tcg_out_modrm_offset(s, OPC_CMP_GvEv, addrhi, - TCG_REG_L0, cmp_ofs + 4); - - /* jne slow_path */ - tcg_out_opc(s, OPC_JCC_long + JCC_JNE, 0, 0, 0); - ldst->label_ptr[1] = s->code_ptr; - s->code_ptr += 4; - } - /* TLB Hit. */ tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_L0, TCG_REG_L0, offsetof(CPUTLBEntry, addend)); @@ -2270,11 +2257,10 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* jne slow_path */ - jcc = tcg_out_cmp(s, TCG_COND_TSTNE, addrlo, a_mask, true, false); + jcc = tcg_out_cmp(s, TCG_COND_TSTNE, addr, a_mask, true, false); tcg_out_opc(s, OPC_JCC_long + jcc, 0, 0, 0); ldst->label_ptr[0] = s->code_ptr; s->code_ptr += 4; @@ -2446,13 +2432,12 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi, } static void tcg_out_qemu_ld(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, true); + ldst = prepare_host_addr(s, &h, addr, oi, true); tcg_out_qemu_ld_direct(s, datalo, datahi, h, data_type, get_memop(oi)); if (ldst) { @@ -2574,13 +2559,12 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg datalo, TCGReg datahi, } static void tcg_out_qemu_st(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, false); + ldst = prepare_host_addr(s, &h, addr, oi, false); tcg_out_qemu_st_direct(s, datalo, datahi, h, get_memop(oi)); if (ldst) { @@ -2880,34 +2864,34 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, break; case INDEX_op_qemu_ld_i32: - tcg_out_qemu_ld(s, a0, -1, a1, -1, a2, TCG_TYPE_I32); + tcg_out_qemu_ld(s, a0, -1, a1, a2, TCG_TYPE_I32); break; case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); + tcg_out_qemu_ld(s, a0, -1, a1, a2, TCG_TYPE_I64); } else { - tcg_out_qemu_ld(s, a0, a1, a2, -1, args[3], TCG_TYPE_I64); + tcg_out_qemu_ld(s, a0, a1, a2, args[3], TCG_TYPE_I64); } break; case INDEX_op_qemu_ld_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); - tcg_out_qemu_ld(s, a0, a1, a2, -1, args[3], TCG_TYPE_I128); + tcg_out_qemu_ld(s, a0, a1, a2, args[3], TCG_TYPE_I128); break; case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st8_i32: - tcg_out_qemu_st(s, a0, -1, a1, -1, a2, TCG_TYPE_I32); + tcg_out_qemu_st(s, a0, -1, a1, a2, TCG_TYPE_I32); break; case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, a0, -1, a1, -1, a2, TCG_TYPE_I64); + tcg_out_qemu_st(s, a0, -1, a1, a2, TCG_TYPE_I64); } else { - tcg_out_qemu_st(s, a0, a1, a2, -1, args[3], TCG_TYPE_I64); + tcg_out_qemu_st(s, a0, a1, a2, args[3], TCG_TYPE_I64); } break; case INDEX_op_qemu_st_i128: tcg_debug_assert(TCG_TARGET_REG_BITS == 64); - tcg_out_qemu_st(s, a0, a1, a2, -1, args[3], TCG_TYPE_I128); + tcg_out_qemu_st(s, a0, a1, a2, args[3], TCG_TYPE_I128); break; OP_32_64(mulu2): From patchwork Sun Feb 16 00:00:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865535 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520492wri; Sat, 15 Feb 2025 16:06:38 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCV3juRR7XpngY5aRSKtWSGqwwdsQGwnLB5Y54DfY8gIltyq+nocsngrK0D7L4CuCyD8LOoegg==@linaro.org X-Google-Smtp-Source: AGHT+IHpYn/hsLc9rLdB9Mu/Z2fxoa+qTgDguo3Onb08Qr3zSfn9LG4VCuDAvIz3moYuEIyaJc9y X-Received: by 2002:a05:620a:4492:b0:7c0:7a1b:894e with SMTP id af79cd13be357-7c08a9b2e7dmr656459285a.23.1739664398270; Sat, 15 Feb 2025 16:06:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664398; cv=none; d=google.com; s=arc-20240605; b=M6V7A9aQpqRFncQKQ9Q3v471S6mLSy1jmX5sHZ6q4IWDuAYG4txI8wr4PKyXvwpRub lbNH+FrmyYUfzlTvdwgGlEAM8BPPz+xZHFnF1uFjZnABuy/595c+XNnSc85qZ3JcuHDv nZhx2GDlKjTdBg9atLJlgNS3ZEMwauX/I/NxkD25e7NRJHER5bhjNAQZgktOBgNPzkwf iWeXIyQlDfWDjifmi7kvSJEpdoa6DuY/z+JN7V1YTj/PTgRjYb1qXQXde0LHpjJJLA3R yjiKV8P90On9WwYWeOmjFDroN9jS3LUtuAs2E/xGZ7a5KOeZzVzKbjmQoSEsEB0kbrCR JG/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CPVDesfkRpmTOWA3zfnP41neg542OwOsuYWNBsm3NxY=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=bfGBcE///+8bTVl0QsjSOP7sbfhiquvdzhyXtrp6jWnXK2AB6GdeXEayZ8rKszwH10 xvyxUMnOEgQM1ghkPWFZ2K6UiVnWMwZ3/4bXGldcvUegZsweyHSiRd7GJbyBVudnw6lc xHrhyi7X19UiCiNF4sH0YtBv6Z5aXsLnStmNpiWc+W4LuDRxYGtXKn35epgc/Q2VDHtL YhI4JM18/lsQrj3tZG3cKoBCQ9Pg0tT62eum1EcuZckL3NTPHpYz/t+ihPe08mmMVS4T Fe0GcRlQRNJ4ZIPPEeu6t6o81/ebKmLSlWrc52b9gAzrMZhOxyNtCflUR+r6VcKG8YmQ 1YzQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SZ3qzTDs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c8bb5bdsi601575085a.584.2025.02.15.16.06.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:06:38 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SZ3qzTDs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007li-8d; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007bx-KB for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS62-0006Fz-R4 for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:22 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2211acda7f6so5777285ad.3 for ; Sat, 15 Feb 2025 16:01:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664076; x=1740268876; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CPVDesfkRpmTOWA3zfnP41neg542OwOsuYWNBsm3NxY=; b=SZ3qzTDsNkdB1jAVe7FQu4wyR2oHv9JRJCaOFJ+5wot8JvLwEyV7R1z8hnOaXOsjeK GHTzs+BhrHLODktJXtMOUpP2XbNxnvoPjRNDMCLDDCvQ7qF6kuMYd2WY6813HwpXMgpk FE5sv2oDXPAQr8Utejf5myur6wrtcrJsRnMM9OsSKEssi6xmtrrCjeF+CaRU5qr/42Fz 9GKfzmiNvdkDT0/PjE+vyel7RJQ+CcmKZkwluEZ9IEDj2D2+G4QpXjNQmsZVKH2so/W+ VzTutfA+3S7PHTUuagB2mVQRDxhWzQyWsgZrt2+SBrF+BFDbW1DfS2G36GRGG8U4QoN1 Wd7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664076; x=1740268876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CPVDesfkRpmTOWA3zfnP41neg542OwOsuYWNBsm3NxY=; b=lFRxGawooCPChXtnfXgLqUyrR9shrVrUVIQghkfafAlGRUjYMtXIv4fV8LwdDRCSbI SibFjNS1Cu858SPDlwH1rxMfp64VYlii2pQVtfogqet8Vb+L4QFnGw2PF8FHHLHciXct etksLeJfBeNnpBKfPUW6zkVBfs60AfuPIjiiFkq7DbLdwV9e7xlZMXdEzX9+MXkbuyfQ WVIEpfuhTRHXElD+u+cCsfm5dL8eoamh4XnGar88Rlquvli1HUqcvdGyxS1fm0SIJeWi XFWKChUe7wKlCEA7Fy9X9ZhVZNjXXfgmnWMCJ1inGrhAhYjaoRYbb1CUeURrhQUSOOJC erBA== X-Gm-Message-State: AOJu0YzwXB2SwcCbohtHm8M/YBEzp2C56EncuQFw6wE2pzdd0SdAoIno FLRNG3YgfaDHkB4D0q4NraHb3UGfMJbLgvIFXQQF2O/xhDPh7pIMcVQzmHWMefvxV+VIcJqlO46 T X-Gm-Gg: ASbGncskjL/rZZUa5L5visYiKvSupDcUqzpdm3OvrruwCFAfA3Ep2lV9i9ehuM8d1kZ 60X/DSO0QAWWvBSI5YrdzcTuLzDBJykY71v8mCFbHRx9UJHKLhUwSA6BHR89rMxA8RLmyBgKeOv X59a/fU/JEuXm0JVQ/V1AEcDT6hz2H0SPEUH7M+bDxC5FFcptnRrXZ8cn8+Qm5G2WIhL1+7iMOl 1H43k3FwGSvhoBSVjoAZELBsS3oR4dSTn7lPaOFKwwP6x2nuVpkbTjUctQ5KbAiUfYyKv9P/EDt lkXLadt7K14uPOebHRPT51C2RHhK53kZFZ2HvE9Wj9o1FFs= X-Received: by 2002:a17:902:d58b:b0:220:c813:dfcb with SMTP id d9443c01a7336-2210408d75emr80085905ad.39.1739664076527; Sat, 15 Feb 2025 16:01:16 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:16 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 07/24] tcg/mips: Drop addrhi from prepare_host_addr Date: Sat, 15 Feb 2025 16:00:51 -0800 Message-ID: <20250216000109.2606518-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The guest address will now always fit in one register. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/mips/tcg-target.c.inc | 62 ++++++++++++++------------------------- 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index b1d512ca2a..153ce1f3c3 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -1217,8 +1217,7 @@ bool tcg_target_has_memory_bswap(MemOp memop) * is required and fill in @h with the host address for the fast path. */ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, bool is_ld) + TCGReg addr, MemOpIdx oi, bool is_ld) { TCGType addr_type = s->addr_type; TCGLabelQemuLdst *ldst = NULL; @@ -1245,8 +1244,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* Load tlb_mask[mmu_idx] and tlb_table[mmu_idx]. */ tcg_out_ld(s, TCG_TYPE_PTR, TCG_TMP0, TCG_AREG0, mask_off); @@ -1254,11 +1252,10 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, /* Extract the TLB index from the address into TMP3. */ if (TCG_TARGET_REG_BITS == 32 || addr_type == TCG_TYPE_I32) { - tcg_out_opc_sa(s, OPC_SRL, TCG_TMP3, addrlo, + tcg_out_opc_sa(s, OPC_SRL, TCG_TMP3, addr, s->page_bits - CPU_TLB_ENTRY_BITS); } else { - tcg_out_dsrl(s, TCG_TMP3, addrlo, - s->page_bits - CPU_TLB_ENTRY_BITS); + tcg_out_dsrl(s, TCG_TMP3, addr, s->page_bits - CPU_TLB_ENTRY_BITS); } tcg_out_opc_reg(s, OPC_AND, TCG_TMP3, TCG_TMP3, TCG_TMP0); @@ -1288,48 +1285,35 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, tcg_out_opc_imm(s, (TCG_TARGET_REG_BITS == 32 || addr_type == TCG_TYPE_I32 ? OPC_ADDIU : OPC_DADDIU), - TCG_TMP2, addrlo, s_mask - a_mask); + TCG_TMP2, addr, s_mask - a_mask); tcg_out_opc_reg(s, OPC_AND, TCG_TMP1, TCG_TMP1, TCG_TMP2); } else { - tcg_out_opc_reg(s, OPC_AND, TCG_TMP1, TCG_TMP1, addrlo); + tcg_out_opc_reg(s, OPC_AND, TCG_TMP1, TCG_TMP1, addr); } /* Zero extend a 32-bit guest address for a 64-bit host. */ if (TCG_TARGET_REG_BITS == 64 && addr_type == TCG_TYPE_I32) { - tcg_out_ext32u(s, TCG_TMP2, addrlo); - addrlo = TCG_TMP2; + tcg_out_ext32u(s, TCG_TMP2, addr); + addr = TCG_TMP2; } ldst->label_ptr[0] = s->code_ptr; tcg_out_opc_br(s, OPC_BNE, TCG_TMP1, TCG_TMP0); - /* Load and test the high half tlb comparator. */ - if (TCG_TARGET_REG_BITS == 32 && addr_type != TCG_TYPE_I32) { - /* delay slot */ - tcg_out_ldst(s, OPC_LW, TCG_TMP0, TCG_TMP3, cmp_off + HI_OFF); - - /* Load the tlb addend for the fast path. */ - tcg_out_ld(s, TCG_TYPE_PTR, TCG_TMP3, TCG_TMP3, add_off); - - ldst->label_ptr[1] = s->code_ptr; - tcg_out_opc_br(s, OPC_BNE, addrhi, TCG_TMP0); - } - /* delay slot */ base = TCG_TMP3; - tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_TMP3, addrlo); + tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_TMP3, addr); } else { if (a_mask && (use_mips32r6_instructions || a_bits != s_bits)) { ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* We are expecting a_bits to max out at 7, much lower than ANDI. */ tcg_debug_assert(a_bits < 16); - tcg_out_opc_imm(s, OPC_ANDI, TCG_TMP0, addrlo, a_mask); + tcg_out_opc_imm(s, OPC_ANDI, TCG_TMP0, addr, a_mask); ldst->label_ptr[0] = s->code_ptr; if (use_mips32r6_instructions) { @@ -1340,7 +1324,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, } } - base = addrlo; + base = addr; if (TCG_TARGET_REG_BITS == 64 && addr_type == TCG_TYPE_I32) { tcg_out_ext32u(s, TCG_REG_A0, base); base = TCG_REG_A0; @@ -1460,14 +1444,13 @@ static void tcg_out_qemu_ld_unalign(TCGContext *s, TCGReg lo, TCGReg hi, } static void tcg_out_qemu_ld(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, true); + ldst = prepare_host_addr(s, &h, addr, oi, true); if (use_mips32r6_instructions || h.aa.align >= (opc & MO_SIZE)) { tcg_out_qemu_ld_direct(s, datalo, datahi, h.base, opc, data_type); @@ -1547,14 +1530,13 @@ static void tcg_out_qemu_st_unalign(TCGContext *s, TCGReg lo, TCGReg hi, } static void tcg_out_qemu_st(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, false); + ldst = prepare_host_addr(s, &h, addr, oi, false); if (use_mips32r6_instructions || h.aa.align >= (opc & MO_SIZE)) { tcg_out_qemu_st_direct(s, datalo, datahi, h.base, opc); @@ -2096,24 +2078,24 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, break; case INDEX_op_qemu_ld_i32: - tcg_out_qemu_ld(s, a0, 0, a1, 0, a2, TCG_TYPE_I32); + tcg_out_qemu_ld(s, a0, 0, a1, a2, TCG_TYPE_I32); break; case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); + tcg_out_qemu_ld(s, a0, 0, a1, a2, TCG_TYPE_I64); } else { - tcg_out_qemu_ld(s, a0, a1, a2, 0, args[3], TCG_TYPE_I64); + tcg_out_qemu_ld(s, a0, a1, a2, args[3], TCG_TYPE_I64); } break; case INDEX_op_qemu_st_i32: - tcg_out_qemu_st(s, a0, 0, a1, 0, a2, TCG_TYPE_I32); + tcg_out_qemu_st(s, a0, 0, a1, a2, TCG_TYPE_I32); break; case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, a0, 0, a1, 0, a2, TCG_TYPE_I64); + tcg_out_qemu_st(s, a0, 0, a1, a2, TCG_TYPE_I64); } else { - tcg_out_qemu_st(s, a0, a1, a2, 0, args[3], TCG_TYPE_I64); + tcg_out_qemu_st(s, a0, a1, a2, args[3], TCG_TYPE_I64); } break; From patchwork Sun Feb 16 00:00:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865532 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520045wri; Sat, 15 Feb 2025 16:05:05 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWRcBQJRkx95rXxjhZMVk5YQ8Y6npxXhkZyAXX06haa5CT14ZpZHsRK5ZvmHd8jXjbz426aJg==@linaro.org X-Google-Smtp-Source: AGHT+IHgyAz0vLFSLnUMV5noQBAQSJYQKT1jhhhpn5ZWEwNJ9SYYpe0O4gMb868z+td7Yhw1SWjM X-Received: by 2002:ac8:59d4:0:b0:471:8a7e:905d with SMTP id d75a77b69052e-471dbcde592mr62733721cf.6.1739664305256; Sat, 15 Feb 2025 16:05:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664305; cv=none; d=google.com; s=arc-20240605; b=iigWnW3YnMLpc7HuQfCFwR9OsPF/IdgAlKk83SwRHwkQB1LlcRg12xkTqm2AFgqL/f n1TaWfs46HbF2T8XSO607VZtNVialrHn7RJRlK+TyVw4UJQyght19/xRTCTvF2ZHy4We 91DDku2dfGOEaY06ZWwq66AaR/D7M73qqyWf2i2i2YNW0E4kP4/DrIHWW+K2JHP6rRRB XmnF53Wu7tpTrHmcjPBxevJ3LCsmgMhCNdO/b5gCaIouaPvj5bodG9oGd79kXoDp5KcI CFiKFZiMEhSMjv+XswQFxFrRogRfbNHWa/8lOQz08DDKhLPVdIM8jUUhnL/GKzKzMRU5 9T+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Q42Wl93XZQ8l+eIAXYd7qQ+kbojGHP8GopxWhwXIvfQ=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=faoxicrcjdTfa5hYnr+3c6uc/9Ufrx5gdtEeUoamFTkMHdF8YRITw22Cq0JCdAWopY lHSbo4idCYfXmehWKBu9I1XYDHqpwZtbdZIGDMRER3RHJUshHp5UoAJ4FpcPubvN3aOg w/QpZ9ZnBH1l0/H4WFsl3ZJVTerD5eB0XWdZZWzO1Hs6MLAObcmoHvtpp/73C3f2RMos 6GmDgGqlxW51E6Cuoc07zGp2ZqDuj+fEN0Cp4jpLi349Q2jriqX5mipLdbXcR++nQyl5 rdubG0XAme3EqiUGrtCtR9KlGSFaIUp/169B6ji4rUF/y5us79gujs3ywuDrt4+dCCuo Txbg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dC3vslhN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b620fdsi59770161cf.524.2025.02.15.16.05.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:05:05 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dC3vslhN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6Q-0007hK-M4; Sat, 15 Feb 2025 19:01:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007bw-JT for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS62-0006G6-RC for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:22 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-221050f3f00so14804275ad.2 for ; Sat, 15 Feb 2025 16:01:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664077; x=1740268877; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q42Wl93XZQ8l+eIAXYd7qQ+kbojGHP8GopxWhwXIvfQ=; b=dC3vslhNOBdMTcq8at+zO/bIdOh6pgJr0dWWyuNcWKy+u1KJuFUg8Nxtlxg+N0Ma9u o73bGlfVlD56L+iAAmTnMlcL60u4y08wX3jbnXAlVX12YW7DlJMx83hCw4JGPpM1CeTN Bv66ytkWim+XB1oaEctzJaoKXNbBM2bmJt+O7x8Qjza2UOKoO3BIVKFsq2C6wMjLH89d CnV1/vxYzv195g3XUb6LggXoAyqepTUj7z/bBeqCDDarOEipxFR00MAxGK3EhYVUPTwS MWhD0/7gR+Pk+bdk5LUCeMuyBn+PXX2Xe/TNBcol+0hx9dlz80uSDILFOKkOfwgGoyOR N1tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664077; x=1740268877; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q42Wl93XZQ8l+eIAXYd7qQ+kbojGHP8GopxWhwXIvfQ=; b=LrAcHe6K0fj/8Qccr51pttfAFRyzyOO/Z6g47ld7sVpX8x/Hr+cmTTC8yTEroGFwym lE0pv5zFasUBOZGlLzM/0tVMdOCG8jDLLV4lNSKkosYS1VtfVTYANPZyjHzLtiRanOP9 7br6GAadOmKGsd/iCtR9vpptuGB9udSerkE7n70mNwEGiswpIy9N/6Cgyh/Pk8zpd7aj mjH+2cWNLL8cVrSXVYqOyT+yoKViiFXFoCy7xuTFueWCQ6g8LJgsuutn6aPiEBuvX9ny LS5jxxOwhs1wiWW3SHM9xK5/76JRfwOlOXKNUad1cgrXqqolf3TflMZtmBB1esNJTsyV MsQw== X-Gm-Message-State: AOJu0YxAkIeq148+peBJ8yyCIb+FjCC9iCL/fgkQZAB1DswD0OSu4oua WXMEaGWAZfLNajkFN/haQatjydqT2dN2Rpbsq8l4TP2kCl8arnX861J7qTFebUx6F/YktoKlaIY l X-Gm-Gg: ASbGncs9oP6HNBWZYC151fv5em0TLWUnFQnJ8QCDRxcPjMtiWldBPePKfSW3gYZScUq b1Y0lAvIyNTXqfu7q017ekqjbszHH7kIc/ZGjyrpo/B7jqRgligUO1gC/vXJWEtkNGcDtwprBH8 l95+42+79pZvzq2JTIcPeyaMm+3SFME6ZsKgcXYD/dPy2NUOqVzkh7t7AB2o1AXN3pcaz+JZm1w 0jEJO1ATvR4+2LIHCD5xPkjK0/OOrunNNg7X2DpP+3h+NXhGT/UTNjlPWi3WcIY5PZoBnuWJTsF wFQA9F6L2Vh9QZK7qKdhqhVx9VN3SEoSDBWh3HPGDVWg/SE= X-Received: by 2002:a17:902:e80b:b0:21f:5cd8:c67 with SMTP id d9443c01a7336-2210405f4c8mr70089995ad.31.1739664077232; Sat, 15 Feb 2025 16:01:17 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:16 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 08/24] tcg/ppc: Drop addrhi from prepare_host_addr Date: Sat, 15 Feb 2025 16:00:52 -0800 Message-ID: <20250216000109.2606518-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The guest address will now always fit in one register. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/ppc/tcg-target.c.inc | 75 ++++++++++++---------------------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 801cb6f3cb..74b93f4b57 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -2438,8 +2438,7 @@ bool tcg_target_has_memory_bswap(MemOp memop) * is required and fill in @h with the host address for the fast path. */ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, bool is_ld) + TCGReg addr, MemOpIdx oi, bool is_ld) { TCGType addr_type = s->addr_type; TCGLabelQemuLdst *ldst = NULL; @@ -2474,8 +2473,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* Load tlb_mask[mmu_idx] and tlb_table[mmu_idx]. */ tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP1, TCG_AREG0, mask_off); @@ -2483,10 +2481,10 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, /* Extract the page index, shifted into place for tlb index. */ if (TCG_TARGET_REG_BITS == 32) { - tcg_out_shri32(s, TCG_REG_R0, addrlo, + tcg_out_shri32(s, TCG_REG_R0, addr, s->page_bits - CPU_TLB_ENTRY_BITS); } else { - tcg_out_shri64(s, TCG_REG_R0, addrlo, + tcg_out_shri64(s, TCG_REG_R0, addr, s->page_bits - CPU_TLB_ENTRY_BITS); } tcg_out32(s, AND | SAB(TCG_REG_TMP1, TCG_REG_TMP1, TCG_REG_R0)); @@ -2534,10 +2532,10 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, if (a_bits < s_bits) { a_bits = s_bits; } - tcg_out_rlw(s, RLWINM, TCG_REG_R0, addrlo, 0, + tcg_out_rlw(s, RLWINM, TCG_REG_R0, addr, 0, (32 - a_bits) & 31, 31 - s->page_bits); } else { - TCGReg t = addrlo; + TCGReg t = addr; /* * If the access is unaligned, we need to make sure we fail if we @@ -2566,30 +2564,8 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, } } - if (TCG_TARGET_REG_BITS == 32 && addr_type != TCG_TYPE_I32) { - /* Low part comparison into cr7. */ - tcg_out_cmp(s, TCG_COND_EQ, TCG_REG_R0, TCG_REG_TMP2, - 0, 7, TCG_TYPE_I32); - - /* Load the high part TLB comparator into TMP2. */ - tcg_out_ld(s, TCG_TYPE_I32, TCG_REG_TMP2, TCG_REG_TMP1, - cmp_off + 4 * !HOST_BIG_ENDIAN); - - /* Load addend, deferred for this case. */ - tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP1, TCG_REG_TMP1, - offsetof(CPUTLBEntry, addend)); - - /* High part comparison into cr6. */ - tcg_out_cmp(s, TCG_COND_EQ, addrhi, TCG_REG_TMP2, - 0, 6, TCG_TYPE_I32); - - /* Combine comparisons into cr0. */ - tcg_out32(s, CRAND | BT(0, CR_EQ) | BA(6, CR_EQ) | BB(7, CR_EQ)); - } else { - /* Full comparison into cr0. */ - tcg_out_cmp(s, TCG_COND_EQ, TCG_REG_R0, TCG_REG_TMP2, - 0, 0, addr_type); - } + /* Full comparison into cr0. */ + tcg_out_cmp(s, TCG_COND_EQ, TCG_REG_R0, TCG_REG_TMP2, 0, 0, addr_type); /* Load a pointer into the current opcode w/conditional branch-link. */ ldst->label_ptr[0] = s->code_ptr; @@ -2601,12 +2577,11 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addrlo; - ldst->addrhi_reg = addrhi; + ldst->addrlo_reg = addr; /* We are expecting a_bits to max out at 7, much lower than ANDI. */ tcg_debug_assert(a_bits < 16); - tcg_out32(s, ANDI | SAI(addrlo, TCG_REG_R0, (1 << a_bits) - 1)); + tcg_out32(s, ANDI | SAI(addr, TCG_REG_R0, (1 << a_bits) - 1)); ldst->label_ptr[0] = s->code_ptr; tcg_out32(s, BC | BI(0, CR_EQ) | BO_COND_FALSE | LK); @@ -2617,24 +2592,23 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, if (TCG_TARGET_REG_BITS == 64 && addr_type == TCG_TYPE_I32) { /* Zero-extend the guest address for use in the host address. */ - tcg_out_ext32u(s, TCG_REG_TMP2, addrlo); + tcg_out_ext32u(s, TCG_REG_TMP2, addr); h->index = TCG_REG_TMP2; } else { - h->index = addrlo; + h->index = addr; } return ldst; } static void tcg_out_qemu_ld(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, true); + ldst = prepare_host_addr(s, &h, addr, oi, true); if (TCG_TARGET_REG_BITS == 32 && (opc & MO_SIZE) == MO_64) { if (opc & MO_BSWAP) { @@ -2678,14 +2652,13 @@ static void tcg_out_qemu_ld(TCGContext *s, TCGReg datalo, TCGReg datahi, } static void tcg_out_qemu_st(TCGContext *s, TCGReg datalo, TCGReg datahi, - TCGReg addrlo, TCGReg addrhi, - MemOpIdx oi, TCGType data_type) + TCGReg addr, MemOpIdx oi, TCGType data_type) { MemOp opc = get_memop(oi); TCGLabelQemuLdst *ldst; HostAddress h; - ldst = prepare_host_addr(s, &h, addrlo, addrhi, oi, false); + ldst = prepare_host_addr(s, &h, addr, oi, false); if (TCG_TARGET_REG_BITS == 32 && (opc & MO_SIZE) == MO_64) { if (opc & MO_BSWAP) { @@ -2729,7 +2702,7 @@ static void tcg_out_qemu_ldst_i128(TCGContext *s, TCGReg datalo, TCGReg datahi, uint32_t insn; TCGReg index; - ldst = prepare_host_addr(s, &h, addr_reg, -1, oi, is_ld); + ldst = prepare_host_addr(s, &h, addr_reg, oi, is_ld); /* Compose the final address, as LQ/STQ have no indexing. */ index = h.index; @@ -3309,14 +3282,13 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, break; case INDEX_op_qemu_ld_i32: - tcg_out_qemu_ld(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); + tcg_out_qemu_ld(s, args[0], -1, args[1], args[2], TCG_TYPE_I32); break; case INDEX_op_qemu_ld_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_ld(s, args[0], -1, args[1], -1, - args[2], TCG_TYPE_I64); + tcg_out_qemu_ld(s, args[0], -1, args[1], args[2], TCG_TYPE_I64); } else { - tcg_out_qemu_ld(s, args[0], args[1], args[2], -1, + tcg_out_qemu_ld(s, args[0], args[1], args[2], args[3], TCG_TYPE_I64); } break; @@ -3326,14 +3298,13 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, break; case INDEX_op_qemu_st_i32: - tcg_out_qemu_st(s, args[0], -1, args[1], -1, args[2], TCG_TYPE_I32); + tcg_out_qemu_st(s, args[0], -1, args[1], args[2], TCG_TYPE_I32); break; case INDEX_op_qemu_st_i64: if (TCG_TARGET_REG_BITS == 64) { - tcg_out_qemu_st(s, args[0], -1, args[1], -1, - args[2], TCG_TYPE_I64); + tcg_out_qemu_st(s, args[0], -1, args[1], args[2], TCG_TYPE_I64); } else { - tcg_out_qemu_st(s, args[0], args[1], args[2], -1, + tcg_out_qemu_st(s, args[0], args[1], args[2], args[3], TCG_TYPE_I64); } break; From patchwork Sun Feb 16 00:00:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865526 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519682wri; Sat, 15 Feb 2025 16:03:48 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVZDDWOBe73jeB9jBdwARIsjm1Y4C+GDcCDDLPv+SzBxIYFU8N7e4KSmPnurK0J5ydxhXN8Tg==@linaro.org X-Google-Smtp-Source: AGHT+IGHMvihKQPS/ve2uAey8buNg1JnW1LlPRiiLrqdlp6gX6bmNsMtK69KSYFosC3YCndMD7Ut X-Received: by 2002:a05:622a:1986:b0:471:c962:11e7 with SMTP id d75a77b69052e-471dbd62dd8mr53398841cf.31.1739664228001; Sat, 15 Feb 2025 16:03:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664227; cv=none; d=google.com; s=arc-20240605; b=Y38c3x5F/9ZDzvSKVKhOVHioBieUr2zVb80sZgGpJGeiFIl2DONK4I2uD5fDbNm8wR 7xEBFZve0y27R/KHDt0rwCGtYVd0V3jt/XntKjauyCfRZvLODP2dvyFQKqpgojCx4/T+ WUL9DZHZAOeDdIqf3+cTklfqKiKGJ7HH4ZaP2sovMEnDQCmyN75+y/hFOLNvBgV79Alx n/ZIETm6NGQyJUhdgcTPEBfpfWYePuCASpPiLQUcT2Lt5ffILYGQNCLaLgcN2AgUvNJn uy2rWaH1yDtAIgCo1xu6AJlR2YxDZCrdJ84y2UcqYmr87BSimU53/YSSgPdYnQ+3cr0w NDjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5JcTFhEmt/GmA4i7xwN3/fTGwcsSGIfQEr5FASNX2Lc=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=L77cPUJESPj5hwqLSkqWXP1rMM19ZjQzFGDO7AtdughYnaWrUoT5mmi4D2R73KB1yR nhdM9M7fcNhVBt/8YvqIUzDJEZapb53eo+iSNHQsQ+9d7vbWjE3G4bLcEBMOncOS80+J 0RGb0M7adbBoREMDS58/ppy1sBfr0dh9KGLzx5KGzDCir9EOaqpUgkNK4HuRpSEpWG08 MCg1Nta4ODoINK/mZmn/Da7hfMZo3O+1rbCNEIW3vl6UhcdoP6OLoyM35tK0y4KQmItN jBtA8chGJy+vSLBDrz29Il8tb5kw7Bs4eInQOzgyiG5cIq6dcd9w33uA/RfwFDo/m4WM FgCA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=bvAFWREc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=fail header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b732acsi60808221cf.591.2025.02.15.16.03.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:47 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=bvAFWREc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=fail header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6R-0007hN-Gr; Sat, 15 Feb 2025 19:01:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007c1-L5 for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 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 1tjS64-0006GB-Bg for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:24 -0500 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-2fc3027c7aeso3249528a91.0 for ; Sat, 15 Feb 2025 16:01:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664078; x=1740268878; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5JcTFhEmt/GmA4i7xwN3/fTGwcsSGIfQEr5FASNX2Lc=; b=bvAFWREcDORuTC0pGLo0SIH+XEzG/3O05VpS7wxjBj2F4NyuOItbbFIMkpdjqKP/B+ cLoILUtD1r48dxbkf5CIETF651S+bePssKaM4VPjetQ0hQOp2WZLoIaib60BRPrKxh9q cE4/G5o4SEhqf5nxBbbxym8ONgVDBNchMtVFWSybmBLQgbrq2PB7GptPhcbD7rV9odqI hfMcTcCL2i2Oi9obpUHxMa2+aGnLgl3ITjhHr4YRqINf5QIGfcSP9DM3iJHTPqFFvYhA j3cCrJ1YGCksN7zifQfYWO32cQ5wtu17R3qvFpO9kNkw3hBqVWy5d6w7VYw77WfeIAN2 vKIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664078; x=1740268878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5JcTFhEmt/GmA4i7xwN3/fTGwcsSGIfQEr5FASNX2Lc=; b=Iq2BR366rgUTVl9OLHuiUm0ApBJxLda7MJLK3YYDxhmpZI8wFSMtHxPRW4W7jFkkj0 LvZnGzscT4+QFwroAvs64xViLf+Y15j4tJFKHCt3TGk/6lHTQP48EBH+TLFbcarDG3fe MoalNzdGx32lw/kbz9Mc5y4loSSeI9HKP8SYBZQ35b+vMX575xY1J9duXnDxK1ACjR/e pXFA5OqcRit0nQG9v5qBGdSMxKlPVbAfJd1dtfMhnsQZP7R3ajnVmjiUfhKhQQV/Uf4Y E47ZGJD7NFYch5lvcURIDye6ELnKjhpNPXGorfoQO7iDpSUeMNsO/0RnMXM+sDBqNZgO 3j2A== X-Gm-Message-State: AOJu0YxxWd5QIK6p9n+kq435jI80rvIDbClZLejtHO8vNK3GU3GxPlvd 47vqXJM2PAUJ3baPj++SwOrr6pYzkFsv6zEBDdBYTDtgh/IguXgoA8EzqrHa1sT+Gzo7azwQn9z j X-Gm-Gg: ASbGncsOjnGAzeDPr25U21Uo2UkCub6l9Ylryu+1TZumQTg73IQ6ERm1ohqo7Ug4OqQ lz1l7LtaJQjU6lOYUv33t8zd6eFvvVF2iK6+7qgwZ14rUybm7UzJ02PgS9aViyCAfFTEuIfThnD 61MOUPMezTcZf9BupNxwq6FtM9BU8+SSoS+PmE0kZYdly9Wzk45j8JxBuakLNWvf9E9yt3W2yJK CA7c458+jNQzGx2mh5xrBbiD5bmFrz+BDqdd3P0Sd2a9HEpnY/f3E7qfriY6LIeQk8mkP9xumS+ Id4Nh3lap0EuDl45TlqoC83LiHDlKJ/RT66osLNUSA14+/g= X-Received: by 2002:a17:90b:3c82:b0:2fa:13f7:960 with SMTP id 98e67ed59e1d1-2fc40f0e9dbmr7219765a91.13.1739664078098; Sat, 15 Feb 2025 16:01:18 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:17 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 09/24] tcg: Replace addr{lo, hi}_reg with addr_reg in TCGLabelQemuLdst Date: Sat, 15 Feb 2025 16:00:53 -0800 Message-ID: <20250216000109.2606518-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org There is now always only one guest address register. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/tcg.c | 18 +++++++++--------- tcg/aarch64/tcg-target.c.inc | 4 ++-- tcg/arm/tcg-target.c.inc | 4 ++-- tcg/i386/tcg-target.c.inc | 4 ++-- tcg/loongarch64/tcg-target.c.inc | 4 ++-- tcg/mips/tcg-target.c.inc | 4 ++-- tcg/ppc/tcg-target.c.inc | 4 ++-- tcg/riscv/tcg-target.c.inc | 4 ++-- tcg/s390x/tcg-target.c.inc | 4 ++-- tcg/sparc64/tcg-target.c.inc | 4 ++-- 10 files changed, 27 insertions(+), 27 deletions(-) diff --git a/tcg/tcg.c b/tcg/tcg.c index fef93b25ff..55cb9b3ac7 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -100,8 +100,7 @@ struct TCGLabelQemuLdst { bool is_ld; /* qemu_ld: true, qemu_st: false */ MemOpIdx oi; TCGType type; /* result type of a load */ - TCGReg addrlo_reg; /* reg index for low word of guest virtual addr */ - TCGReg addrhi_reg; /* reg index for high word of guest virtual addr */ + TCGReg addr_reg; /* reg index for guest virtual addr */ TCGReg datalo_reg; /* reg index for low word to be loaded or stored */ TCGReg datahi_reg; /* reg index for high word to be loaded or stored */ const tcg_insn_unit *raddr; /* addr of the next IR of qemu_ld/st IR */ @@ -6061,7 +6060,7 @@ static void tcg_out_ld_helper_args(TCGContext *s, const TCGLabelQemuLdst *ldst, */ tcg_out_helper_add_mov(mov, loc + HOST_BIG_ENDIAN, TCG_TYPE_I32, TCG_TYPE_I32, - ldst->addrlo_reg, -1); + ldst->addr_reg, -1); tcg_out_helper_load_slots(s, 1, mov, parm); tcg_out_helper_load_imm(s, loc[!HOST_BIG_ENDIAN].arg_slot, @@ -6069,7 +6068,7 @@ static void tcg_out_ld_helper_args(TCGContext *s, const TCGLabelQemuLdst *ldst, next_arg += 2; } else { nmov = tcg_out_helper_add_mov(mov, loc, TCG_TYPE_I64, s->addr_type, - ldst->addrlo_reg, ldst->addrhi_reg); + ldst->addr_reg, -1); tcg_out_helper_load_slots(s, nmov, mov, parm); next_arg += nmov; } @@ -6226,21 +6225,22 @@ static void tcg_out_st_helper_args(TCGContext *s, const TCGLabelQemuLdst *ldst, /* Handle addr argument. */ loc = &info->in[next_arg]; - if (TCG_TARGET_REG_BITS == 32 && s->addr_type == TCG_TYPE_I32) { + tcg_debug_assert(s->addr_type <= TCG_TYPE_REG); + if (TCG_TARGET_REG_BITS == 32) { /* - * 32-bit host with 32-bit guest: zero-extend the guest address + * 32-bit host (and thus 32-bit guest): zero-extend the guest address * to 64-bits for the helper by storing the low part. Later, * after we have processed the register inputs, we will load a * zero for the high part. */ tcg_out_helper_add_mov(mov, loc + HOST_BIG_ENDIAN, TCG_TYPE_I32, TCG_TYPE_I32, - ldst->addrlo_reg, -1); + ldst->addr_reg, -1); next_arg += 2; nmov += 1; } else { n = tcg_out_helper_add_mov(mov, loc, TCG_TYPE_I64, s->addr_type, - ldst->addrlo_reg, ldst->addrhi_reg); + ldst->addr_reg, -1); next_arg += n; nmov += n; } @@ -6288,7 +6288,7 @@ static void tcg_out_st_helper_args(TCGContext *s, const TCGLabelQemuLdst *ldst, g_assert_not_reached(); } - if (TCG_TARGET_REG_BITS == 32 && s->addr_type == TCG_TYPE_I32) { + if (TCG_TARGET_REG_BITS == 32) { /* Zero extend the address by loading a zero for the high part. */ loc = &info->in[1 + !HOST_BIG_ENDIAN]; tcg_out_helper_load_imm(s, loc->arg_slot, TCG_TYPE_I32, 0, parm); diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc index 45dc2c649b..6f383c1592 100644 --- a/tcg/aarch64/tcg-target.c.inc +++ b/tcg/aarch64/tcg-target.c.inc @@ -1775,7 +1775,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; mask_type = (s->page_bits + s->tlb_dyn_max_bits > 32 ? TCG_TYPE_I64 : TCG_TYPE_I32); @@ -1837,7 +1837,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; /* tst addr, #mask */ tcg_out_logicali(s, I3404_ANDSI, 0, TCG_REG_XZR, addr_reg, a_mask); diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 252d9aa7e5..865aab0ccd 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -1491,7 +1491,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* Load cpu->neg.tlb.f[mmu_idx].{mask,table} into {r0,r1}. */ QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, mask) != 0); @@ -1558,7 +1558,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* We are expecting alignment to max out at 7 */ tcg_debug_assert(a_mask <= 0xff); diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index b33fe7fe23..cfea4c496d 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -2201,7 +2201,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; if (TCG_TARGET_REG_BITS == 64) { ttype = s->addr_type; @@ -2257,7 +2257,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* jne slow_path */ jcc = tcg_out_cmp(s, TCG_COND_TSTNE, addr, a_mask, true, false); diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc index 4f32bf3e97..dd67e8f6bc 100644 --- a/tcg/loongarch64/tcg-target.c.inc +++ b/tcg/loongarch64/tcg-target.c.inc @@ -1010,7 +1010,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP0, TCG_AREG0, mask_ofs); tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP1, TCG_AREG0, table_ofs); @@ -1055,7 +1055,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; /* * Without micro-architecture details, we don't know which of diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index 153ce1f3c3..d744b853cd 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -1244,7 +1244,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* Load tlb_mask[mmu_idx] and tlb_table[mmu_idx]. */ tcg_out_ld(s, TCG_TYPE_PTR, TCG_TMP0, TCG_AREG0, mask_off); @@ -1309,7 +1309,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* We are expecting a_bits to max out at 7, much lower than ANDI. */ tcg_debug_assert(a_bits < 16); diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 74b93f4b57..2d16807ec7 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -2473,7 +2473,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* Load tlb_mask[mmu_idx] and tlb_table[mmu_idx]. */ tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP1, TCG_AREG0, mask_off); @@ -2577,7 +2577,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr; + ldst->addr_reg = addr; /* We are expecting a_bits to max out at 7, much lower than ANDI. */ tcg_debug_assert(a_bits < 16); diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 55a3398712..689fbea0df 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -1727,7 +1727,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, TCGReg *pbase, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; init_setting_vtype(s); @@ -1790,7 +1790,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, TCGReg *pbase, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; init_setting_vtype(s); diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc index 6786e7b316..b2e1cd60ff 100644 --- a/tcg/s390x/tcg-target.c.inc +++ b/tcg/s390x/tcg-target.c.inc @@ -1920,7 +1920,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; tcg_out_sh64(s, RSY_SRLG, TCG_TMP0, addr_reg, TCG_REG_NONE, s->page_bits - CPU_TLB_ENTRY_BITS); @@ -1974,7 +1974,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; tcg_debug_assert(a_mask <= 0xffff); tcg_out_insn(s, RI, TMLL, addr_reg, a_mask); diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc index ea0a3b8692..527af5665d 100644 --- a/tcg/sparc64/tcg-target.c.inc +++ b/tcg/sparc64/tcg-target.c.inc @@ -1127,7 +1127,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; ldst->label_ptr[0] = s->code_ptr; /* bne,pn %[xi]cc, label0 */ @@ -1147,7 +1147,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, ldst = new_ldst_label(s); ldst->is_ld = is_ld; ldst->oi = oi; - ldst->addrlo_reg = addr_reg; + ldst->addr_reg = addr_reg; ldst->label_ptr[0] = s->code_ptr; /* bne,pn %icc, label0 */ From patchwork Sun Feb 16 00:00:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865530 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519948wri; Sat, 15 Feb 2025 16:04:43 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWbrXlU/8t3KjOTkmD8yo53s2f5p6U6WbBm0ZJ2ABDf5jEAwvChwhloc4kSozOa0BBE5v1TjQ==@linaro.org X-Google-Smtp-Source: AGHT+IHNvAxHs7JZAU5TvxTKUJv3VDAIAEZ9UuXtNsRoozsGHqyCZ7A3VdqcbxfCFwVNztax+CI0 X-Received: by 2002:a05:622a:2b0f:b0:471:a714:efcb with SMTP id d75a77b69052e-471dbe8dde8mr69757491cf.37.1739664283177; Sat, 15 Feb 2025 16:04:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664283; cv=none; d=google.com; s=arc-20240605; b=A6qmGbUfUgiHFNaJUYXwk/9IdcC2T62O/su5LPxdqUj57V2U91k8gLfTiyJETas0e8 qa1gHhVizLPn3918mDTj2EoqT86Hhw3iAk/x5odfGIJsiRxWLPDQWOjF8lpwxLoKAgTF KvMaHLaIQC9ZsOmLq8G0kNchO2RJVkcjipEMucgzg0IZRRCstnqDOa1BPiZKLb9TD6wb 7YddIE6l3scLku7MtDvMtnTbAeaUugcb7gUtwc/zCCkRQ2PZoi5IkP2SF8YBbaOLyaEX TcauGxD/8FYMsbHMqMR6LcswdXPB61NopzZgLay2INfW0ItHCOfRmdZgnTEMMohD3MYD T2pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qBwpUjrpRy3DP9hoK1GLQ8GO+p0lkCqNn69gucYO0P8=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=TyHooE+/utOr62w1NDZD/arCwzeODjOdeOac2mKu7qf7NxFqo+fJaTg2jBEgIxEZLX /tREHEQyJJVIa6OL2XYX5DMQoze4SfnALucBv5Wy85J2TtZ5dBYKbCzVQfvAQ3llKsxx ThNLVR9O65Plnook3jNdgrxHuWqO92/ORUvx7Zd3nCkIeabqt0g2C2kmI1PdBosdEqBD Ae2ZHokd+KFrayd9/ZazTXVSBb5XPNwSpq34PNxZw9Zn/hyPqvGG9uAs6cQ0rl8hQiEg v4tDnP/KfrvIUbpcskzhQSwyQmhBB2DmIqvGLSkccLXHYa2iQlg8bvyckOpIgwrLUv1p A3mw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=K9EfYomg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b5f0efsi60767951cf.488.2025.02.15.16.04.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:04:43 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=K9EfYomg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6e-0007lE-FA; Sat, 15 Feb 2025 19:01:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007bz-Kz for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS64-0006GJ-Kd for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:23 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2210d92292eso15319695ad.1 for ; Sat, 15 Feb 2025 16:01:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664079; x=1740268879; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qBwpUjrpRy3DP9hoK1GLQ8GO+p0lkCqNn69gucYO0P8=; b=K9EfYomgVr8/4ePcgVFR+b8X5M+joBL4CkDoFtH5iX4M01rcJiYZn4XQRvBa02+97I ZkoN8BXU/cfUGX4jhInHre5Bd3of1/8MX/EVqseu9rK1zE5K4wmoQDZD6wZ+yyGM5vbr 3XDuirj+Xwa+5SiDRs+BebAQtAmN7LAUbHqHzf0KQA8Lb/Qoqr7yMbZDwjimzHIX80ZW flr7bIc/qBE2l9MUASW7zq06X9CmJuJ5fJ0Npm+3wUsaUQBqVD5NORdcjq817BmcCx3v s3uKHI7umvXJfZIERyku/DfNNw+cc658O9bxqqf10IoXwGYXKzIKq9t4jB4ZYisHwWnj Sd5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664079; x=1740268879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qBwpUjrpRy3DP9hoK1GLQ8GO+p0lkCqNn69gucYO0P8=; b=kGYfigtaXQ2x27dPtJily7UbmDXJIyz17kbnTr+eYcqLP0kgvyemd1zxhAJaMkozKW 0YfV6lz4E0QB2DdyO6FKtBS1IyNu6NyLPiBP7vzTTHZJ59qzW8aFiICuy1IJGJ4ALugG Tqq41Lwb6EzrlTYSKM5120ms7fzeAu8ihQhq9MEhdDbpRkFsXeQ8CorvqrPJDcYZRN/L dCa45MEX5FL63aEPWPOihFIBw4Tz+u8YWfqycl7mtkjJU+fDtEz+sVDScHiVj8oGF5BJ U2PA3f/sGPHfT5PCuFp2oNL39ro9Yv99o1N8Qe5PMWcS3K8+SJGyA1G6hA62mRCWopXp TIrA== X-Gm-Message-State: AOJu0Yxp9yJYKeMPqOr/NT74e7uJMX8MrzvsvYCagZnMlIC+tXZsyEbr +rRtL9jh2g0CvQRhsscASaDqxpRqUrAQpYbPNYQBLDpzU34wyiQUpJH+tHX5cX2nv2eo+4CWsrd x X-Gm-Gg: ASbGncv1ErBcS+owNzgJEq9P1oIdA/LymSHYqxjpN83NjLyoWSciIqnHQVSi/FiOVMW uhBfm2LgrqOkLVFXrvdfL9wTwsUTKihb8AUFsnwfKGTLfZB7aRUbKy8Dxfs5eSpt0+zXRZ2FqfV Clhe9EoHRjhh0ECPAf9mjDjxTVNIaPjodG+MEaLaE+yRnAKNx7DfIVoggPcevjld+Cc/XaQQfVT hBBv3L0rWuKwh/i7Ui3NfDUndpWIqvpne+jtKk1m4O8ZN5jMmf1g1shJVmr4/rjjKZZCrZcNc8B x7SDYiZML3xpUXD7MsVGCxvGAUd3kanqhCu0/l5FwOZRkPg= X-Received: by 2002:a17:902:f711:b0:20c:9936:f0ab with SMTP id d9443c01a7336-221040d6a6dmr68317785ad.47.1739664078861; Sat, 15 Feb 2025 16:01:18 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:18 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 10/24] plugins: Fix qemu_plugin_read_memory_vaddr parameters Date: Sat, 15 Feb 2025 16:00:54 -0800 Message-ID: <20250216000109.2606518-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The declaration uses uint64_t for addr. Fixes: 595cd9ce2ec ("plugins: add plugin API to read guest memory") Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- plugins/api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/api.c b/plugins/api.c index 4110cfaa23..cf8cdf076a 100644 --- a/plugins/api.c +++ b/plugins/api.c @@ -561,7 +561,7 @@ GArray *qemu_plugin_get_registers(void) return create_register_handles(regs); } -bool qemu_plugin_read_memory_vaddr(vaddr addr, GByteArray *data, size_t len) +bool qemu_plugin_read_memory_vaddr(uint64_t addr, GByteArray *data, size_t len) { g_assert(current_cpu); From patchwork Sun Feb 16 00:00:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865523 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519592wri; Sat, 15 Feb 2025 16:03:27 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWltRaDXPfe2Y4eF0JRAs+ClLOtYjIIdW9VYvGYcZBbEdT4zTvM1OAQsWyTT1AmVYJSnBNjQw==@linaro.org X-Google-Smtp-Source: AGHT+IENseeBCPCg/zi29lQBU3/3TvahWfqRDUlbovapN2kVfyRoGux2GGXShQ4lW8umAHQWmY/j X-Received: by 2002:a05:620a:1912:b0:7be:8f2a:66a6 with SMTP id af79cd13be357-7c08a99e9efmr658463985a.20.1739664207334; Sat, 15 Feb 2025 16:03:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664207; cv=none; d=google.com; s=arc-20240605; b=NrNzBlUv14q+IJF6spwjjc8jmZQUC/6pIkWR8iQBz7dQl3pXFUQy9wbxyjS40m3zFJ bzbQPdMOujL56vdk9/fgsR81XfpZtm/FaG1ENxQimq5ojQp4AkchjUvv7nSpczmX2dUx jnB4pVybBLL7Ya12aYanUzhLVHCdIIWk3Wo+AP/aDKs5laYbazWa7gcu5PZvUPNVkwhu +9OcgOQKgxDvFLtHKYR5LZFUQGmWMJ63vR4aeoZFNm3JtYUqawizfFT0swhWs0YoKMoQ v4I5uZwbuF6rAhs+MJny+Icaogd1y+R3akuHcERS95TRw+BC/AyRSW6QjcVK1KxKu2aC JG3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=K2WH4FlAMIZ4FEc2EEi85vRc1c0fQFd97dzVfYF6JEw=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=X1vvv8nHn34BaFdrTDvD14q0ADDQKGZ2gMKKQIujJ9wOzfFWXshtAO2jnxD4rTgelN vOEz+KXOhNK1JpOo7ROkb24VDYoZqQT/8wQeAnBY3EXb1kT4NGARsvXLpWBgDe2F3uOA eu+W53s6BhT4szZ4r0yxh/q9dQ/QNsjZkndnxavhr9P86bfgF4hLumH4Nbsn9YwxI1Vp WZxeyasHNM44sCtNVx4nDpC/An/biqcBW/iFEZg3pJcNu8QXt4rE6pADYkK+kwVExaAF ZfweYrtBk69/pdI8UnhGc/PAIno5Tj5uESrnEnV/afhpnGnT8Vqj2xT2dhi+m7CKa9EP y+QA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ycxiWPu/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c892d1csi610420385a.370.2025.02.15.16.03.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:27 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ycxiWPu/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6V-0007ik-Ua; Sat, 15 Feb 2025 19:01:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS68-0007c0-L5 for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS66-0006GR-7P for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:23 -0500 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-2fc291f7ddbso3229098a91.1 for ; Sat, 15 Feb 2025 16:01:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664079; x=1740268879; 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; bh=K2WH4FlAMIZ4FEc2EEi85vRc1c0fQFd97dzVfYF6JEw=; b=ycxiWPu/HxQTziua586pWAD/9E9gMm88Z3SQIAp512ZDbmnzNbi2LVdXrAn+6mydBh CWbr+Kt2PBocDKKXL9SMBsy6M5libabWZpjZMJeT+oafvkW2vsfyso/K3psTLn8IJZ40 PCezd0ho0lxj332js1PkdYCwgzB9uWMa0uGKWPtqo3LVxjUSUIWlzCxKMT0PLX7MERBw vFTXQQC0ZBiY1otJ2gv01M5J9Z1QWsJRGQA4SDuluK+B8N16nUky7s3WCr9K2khiwkKg dEuWHTEMJinTMRCi3xgZ0PMWuetjFYus8DCzQ/10qRIPkyJPu5t/aNPnjEgQF6MrpWv1 9vPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664079; x=1740268879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K2WH4FlAMIZ4FEc2EEi85vRc1c0fQFd97dzVfYF6JEw=; b=GDhaIiASe6xpTmteMVy1gx8UqgWaf8fdM3aeMPQ/HRPQ1V2qgg1SjC/r3sHnDUKxDh w3WUcVw94awFFKd7NY+dD987w3DNelDj90+vtf98i9+jmy97JIznSfbWnF9k0tngR8jj J6I8rdwgOUI74tmyAad4AM7VOUT1Cjcb0zzvjkBML4htNfGsvGCyixOHNKAKQdhwNYu5 O3r/q/YgY0VaP8YeDZNJS/u15tvyMDEnhcZDnXxPtcbsWYUD1fLcJp7YQoEEV4uXGwdm ECHMwE7J2MwsGZs7eJaUHUeaqSjacXp0Gp2VXSF3/XOML4Fp3pamEBhQzHRMYwyCVyxp hMjw== X-Gm-Message-State: AOJu0YxpNoakHCFHqET8Xo53/uJL+1ul4XkAQlj/4bibm4BaG9UYUJQG RTnuG82cIx8jON7kn8HdxeOR9d8o7mbaLfZpylJYM7bM2IWo8QpvHDUCz30+mFyxYmacQvMMP5U g X-Gm-Gg: ASbGnctAIzo3SBthDh0Rd5agNrrjnLdYqp8UErByOgyYEcbTO7Jo+iC3oscGC5RSWMl zjTwDyVtF0iJKhdGzyUxuOfPRZ2LWD6fr7c7qJm2+3jefIlKJrFf4+MFdZ1ahRVfJDti4ZVW/Yp L15/pj6QTNLAU7Z2fZmgvtu2LqrrLCcD7jIgIy5Lsy+2bSU1VCZcWYdQ3U2U38wfjVNz4yp4rUG UW8JJBjsBjPnDR/ozRQCRPbO7EIUpdjyq8LXHp1rt6bn9ta8MoYwJOfI6fYp2HfpusDXqJ6fw9/ gFfycippCjYGgbkTM+h8ZpDYo++fSfcoHdd6EjIf0aquP/k= X-Received: by 2002:a17:90b:350a:b0:2fa:13d9:39c with SMTP id 98e67ed59e1d1-2fc40f10784mr7880508a91.14.1739664079426; Sat, 15 Feb 2025 16:01:19 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:19 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 11/24] accel/tcg: Fix tlb_set_page_with_attrs, tlb_set_page Date: Sat, 15 Feb 2025 16:00:55 -0800 Message-ID: <20250216000109.2606518-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The declarations use vaddr for size. Signed-off-by: Richard Henderson --- accel/tcg/cputlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 17e2251695..75d075d044 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -1193,7 +1193,7 @@ void tlb_set_page_full(CPUState *cpu, int mmu_idx, void tlb_set_page_with_attrs(CPUState *cpu, vaddr addr, hwaddr paddr, MemTxAttrs attrs, int prot, - int mmu_idx, uint64_t size) + int mmu_idx, vaddr size) { CPUTLBEntryFull full = { .phys_addr = paddr, @@ -1208,7 +1208,7 @@ void tlb_set_page_with_attrs(CPUState *cpu, vaddr addr, void tlb_set_page(CPUState *cpu, vaddr addr, hwaddr paddr, int prot, - int mmu_idx, uint64_t size) + int mmu_idx, vaddr size) { tlb_set_page_with_attrs(cpu, addr, paddr, MEMTXATTRS_UNSPECIFIED, prot, mmu_idx, size); From patchwork Sun Feb 16 00:00:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865538 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520989wri; Sat, 15 Feb 2025 16:08:34 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWgkhsa7b8wQgwNBfFaB/qvurf4OcPDRzKLHQxC+WlIgx67VY1puqwBt8LOVhRxciPAgRfo7g==@linaro.org X-Google-Smtp-Source: AGHT+IF543kCtVVw1+POXyY3XSg0z4bdKi5uIWi2anPC2wyTu+KDpH2Elz8zOmUO+722wL+7L1F7 X-Received: by 2002:a05:622a:189c:b0:471:ba68:b5a8 with SMTP id d75a77b69052e-471dbe6def6mr64521121cf.34.1739664513819; Sat, 15 Feb 2025 16:08:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664513; cv=none; d=google.com; s=arc-20240605; b=fsloIM6+K9J8p3bEjUrVIHF06K+kA62TwncL4VvG0Tww0lYD30Rf8ChRh7k/BKFb5R iDBn+g4AHElykDD5VP04SqDKhmv9uu73+8/U9pUY3j1Gol7AGh06JiHF4MD9BrXHuswF MRYH7pux3ymBsjQ9BlzNpVwnq+8jsvnyZep4SEwbIGxmoNORSFQYbDDjhoF5V5ip920j GzO18V1Q9irANiNOvHb/ehFVXt9IghR7mQYFHJ7+yo/i5RdMMQ5mjKdvYr/Rk3n1Xzfh tD8Vs0hyp+Yla+Gjqc07jOacAqnQJkhj/7+PNtm5i3o7e/wLxofh9jf0hWWO4xgUl+XR Ca7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0w1nAz3ZZyz0kW9yi4rO7ndLN0hIyYSz6AGDjBaQFXE=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=XAEIhl9m0i8RCA1oBZwCKKHgMm/7JkITLBJghSewC4FUJnuy7YpuoHGc3QCI/T42Ea 7I7ZaaQiW5gMR9HCbpnVarzXYqGcd3yuoVayULZRqqLw3pOMOkcYOtOwIpRy/IFcS7Lm X17eYvtRaA8ur5u8OXCVTNovtiDamkLPt+BURzpSX/0yXTO2litAqeEz5yT8TRtxilY7 GomTlQw7VL1oac/TPtwBG0dG972mwdaHZWtc6OEHi7+eYcx+KwQXnC/1DwXjEPT8Wsyv fxv9DBeskOWTxag+nFP6aV/9FgfFxTlgFHEsmJQgeHCviGia6ydpGl6LR0XdlbbLPVrv wspQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KnUO7jbn; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c29ef639si62805961cf.77.2025.02.15.16.08.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:08:33 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KnUO7jbn; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007lg-7v; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6A-0007cy-IO for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:32 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS66-0006GW-Fh for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:25 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2211cd4463cso3736385ad.2 for ; Sat, 15 Feb 2025 16:01:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664080; x=1740268880; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0w1nAz3ZZyz0kW9yi4rO7ndLN0hIyYSz6AGDjBaQFXE=; b=KnUO7jbnh3ce3SMoQOsCx7SN/GLcSf2AXR5EzPLLvfYMcnu0tNyAd2HTl9oAx1YAPD CZLU3vtz31bdWlZCnWqRPsDzRuH1kkaPvjJdK7brxLghnJ0cGubmsIHAwhvLNaKsKFNC XgBzGB84yJnlhwnAGJKWyQBnZaalECf1HrGXgKOtZ8DYHOzc7IK0/mTSl3uh0lGliXlM fpWScWJv9yPZgoK0R2wBA8eTbu4AGsK4yx6ybtFxlyMQPaFirRJqXNUCybI052HkrcDz HrbvTAcwKDghgNu2gG2wJrvIO/y4i3BvI+44W/FelrZ+nmj8S5uU/suK/n7hClXBgi05 qvKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664080; x=1740268880; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0w1nAz3ZZyz0kW9yi4rO7ndLN0hIyYSz6AGDjBaQFXE=; b=cHgtduWnElUlGsrVXlqKaaZzo+fqj6YkDUtV5PiDbSxGGMrkvJAHZXnygFGbSfS8E0 1Pvl9nKFRAK3yTXNGyrW8bH8UKL0jb3vA5El3ta1YNYdp4WquPDqAen3V/cmH+vOmkvz 1AKyKv9ahWBLk1p+d8ybtJGR4+E1sbHVupD6G+3o0chZui4fTypKK9CeHuGJl9/mMIBC 2YdZiYLLVFAgU8mpYyvPXyGQyM1gXxkb06eP+eF6KkC0moxUr8bLnEe66gFIeCpMW3j+ UQjtX9heKap7mJ53dIXvqFCZMb6d0Fu32jYlzJTtyqKciJas7FaVjHXOLu35YlxORTlb ArGg== X-Gm-Message-State: AOJu0YzzR1QnzVBSs+Uud7EqevhBYHwFQo01wNpuKiz06gl0zhB+P97O ecXRYlkfJiMDC5Ep3s0mZdgEIPxqLWysz5kR7HIInRmrVRMUep0kbLGDf8ZsdzzuywsY1SwbWVl B X-Gm-Gg: ASbGncss3hcH8yMWNB68UV0U/gofQDc/0JsEw/OI914FJWqeOJ9D3YRe7WAindyLCOo P7PpmXqD0ZTER5LIGQIK1WO6bt6dIc8jCrOtndOSjaGLN5adF5gTKie2QNSGtzZVLiPN2fRlv8m U7vXC5kenBlEiatwJkhS/l4/CMhyzFH10DTKxwd2BRh99vVqDIx9dQHEfbmdWRVLiB5BX83uIsd IAkBpQ5YH5V1WWvXpy/VWiSbE9TOZXKdM9zw7yfF2QjEqWXXKo6mxxah4VDngWrZmZpPmndzcKF XIMPswzEPA+9VKMe0tpsnqPqsAUeflLU+7R6GXhZ9uCIzQE= X-Received: by 2002:a17:903:22c7:b0:215:5a53:edee with SMTP id d9443c01a7336-221040136afmr69580765ad.9.1739664080111; Sat, 15 Feb 2025 16:01:20 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:19 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 12/24] include/exec: Change vaddr to uintptr_t Date: Sat, 15 Feb 2025 16:00:56 -0800 Message-ID: <20250216000109.2606518-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Since we no longer support 64-bit guests on 32-bit hosts, we can use a 32-bit type on a 32-bit host. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- include/exec/vaddr.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/include/exec/vaddr.h b/include/exec/vaddr.h index b9844afc77..28bec632fb 100644 --- a/include/exec/vaddr.h +++ b/include/exec/vaddr.h @@ -6,13 +6,15 @@ /** * vaddr: * Type wide enough to contain any #target_ulong virtual address. + * We do not support 64-bit guest on 32-host and detect at configure time. + * Therefore, a host pointer width will always fit a guest pointer. */ -typedef uint64_t vaddr; -#define VADDR_PRId PRId64 -#define VADDR_PRIu PRIu64 -#define VADDR_PRIo PRIo64 -#define VADDR_PRIx PRIx64 -#define VADDR_PRIX PRIX64 -#define VADDR_MAX UINT64_MAX +typedef uintptr_t vaddr; +#define VADDR_PRId PRIdPTR +#define VADDR_PRIu PRIuPTR +#define VADDR_PRIo PRIoPTR +#define VADDR_PRIx PRIxPTR +#define VADDR_PRIX PRIXPTR +#define VADDR_MAX UINTPTR_MAX #endif From patchwork Sun Feb 16 00:00:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865534 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520411wri; Sat, 15 Feb 2025 16:06:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXkEr++AfN4Bt6+KyTpHP/UaM5XtNiZGb1Avk4fKSDGOFBvLSdrti4TqQ3ctZnzDO2KbmKhIA==@linaro.org X-Google-Smtp-Source: AGHT+IF5shYjxG/rEtItF7bxR2CAXu/0OR2+XTpjck2jS/r48+PYmmmSjSTtQ+pq45qLVcjoi/3z X-Received: by 2002:a05:6214:501d:b0:6e4:2dcb:33c8 with SMTP id 6a1803df08f44-6e66cd064e4mr67146416d6.29.1739664381622; Sat, 15 Feb 2025 16:06:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664381; cv=none; d=google.com; s=arc-20240605; b=OtdnmzpnhyFszPbNRXUGhq1t/ilHYHvcVbKfxlEpemdPOeeqBYlOKlVYkA9q8vrdCt F+sq88SBU7mcZKC/w2ce//j8Yevc1SGTvYeD9fCOHsw8F2ve8qIgpGzhTTtP1KN6ICLv CSm8UVqpBzws0W0UVjZcCeHc11QI21KR+WuqUCy+6dz7tsDnQdhJRafIvddkBZwurESS C6sbI23e9MQbd0WTZFookqvmUci0PiYElFnOOmXF1TIKYWW578nmXF0uWhVDLsGl/liD b9DwjY1OrF4GSEJfQc1GcwbZ0/eVZyJKA6YCedMKIBFYxWbIx5Hdid5+J8pLdgJmTHEY pgjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1CyhPp1M+rvuH7wn7HVzBbzyzIkQdLuZw0+RkPUg/zg=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=J8RMG4SR9+DZKPcW2DiiK/QFRpQRkdpJcdiBGgXFr6wWaAMzUA6l0Xj2IBKoqwDnzm XYsOzoNHm5LAIDE3Jch5vHzq6qdxe8Uczo9ZNs8Q1q6QVoeCNYcLY3BWpZbODYug2cec 1fy3Y4QGKrjJVlquihoMX4ksaCGWhFj9k5AkszQIhYHwgAIRA9dpwBJI4/1KxaN1h7MO rz9280NcwGY5QGaor0Ay29yd2CLB8OOwIkrrKrDOaSuffhQTJr66LLxqs43GlPjQ4Mel ditDptekBL2T75yugDXI0cH17U5XrLu555N7O0sytZ66QQiTXJIHKqS5DXd/9horHTcw TIlA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NM0tgTZl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d742055si63108756d6.125.2025.02.15.16.06.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:06:21 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NM0tgTZl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6L-0007fK-7N; Sat, 15 Feb 2025 19:01:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6A-0007cx-G4 for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:32 -0500 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 1tjS66-0006Gj-Kj for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:26 -0500 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-2fc3fa00323so2059836a91.3 for ; Sat, 15 Feb 2025 16:01:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664081; x=1740268881; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1CyhPp1M+rvuH7wn7HVzBbzyzIkQdLuZw0+RkPUg/zg=; b=NM0tgTZlFtXjmpVWQi3mzUXkTcrz9SfgfzsD9EDSuxGlzSTmU9g9+Wuja1iz0kdSuM EaVoE3dviWt2AmosnTlgxRbXZp8VsGYBYA+7pUYFuCEd+vugwdptuvyujWg8okBlHJsy q4bDx1NocOgO8aA1LuUJ4epRKQZE3VULjGBh/IMvIRhhYv+MVHAlhLMiD+EUV2npLLr5 40JwJPQbsABOWes2jW4t8BcUnLAWfrjkpoFODqDo7E91E3q1XxxKwyfzVMus/bV9pRul DDNO+OxHf/gxYiK1eNfg4kmw3uNDiQpqdlf1Gfn/1rYnxvomFmhloClLW6pddvFujJY7 9Log== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664081; x=1740268881; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1CyhPp1M+rvuH7wn7HVzBbzyzIkQdLuZw0+RkPUg/zg=; b=bE7+bvDMzF/I8F6RcBlfNv51VPSlH2T30wb9hmCCgXN/0T01QSNSiwXse6jHUaoTQA qNJePrXQiA2wMEXToCcJmbjeA4goWvG0Wt68t4o40L70P4zRgJmPVkut58fzUh237963 tOlLtAKE9hsSdCDc7Ld+Pjkq/7mhutAZw+pmjXqdCQ80axAxZ89l7lkY2K58pNGoXXpT zzgVefbNb1S8nrG2ZMZx9TY/xfvr1HB4vvqwhakcYZzZIt0D9arJJBzhEaLH00b9DJz5 upH2MN4sRKqgAfkxKSLtgYPRBe5/LRzjCnvJsutqIYSfBikCcSJp0W9jmNS/Z7K0KjGQ IZyg== X-Gm-Message-State: AOJu0Yydd+0fvkeyk3eKBlaicp6QwVd+aw5Uk9opSsX3HIBeQneeyCeA m4GehkQw5sxbXAR44ftYjDzD0UbynwXMHZjR+VA8nsfYP/WIYMn0sGlHzaF76sqdAA1Y9n4DBbQ o X-Gm-Gg: ASbGncsti/UuXZCe7wjklocZ6clHtGmrHlF1EzdPpxhYx1pVGtDxukZyWzJ/QZh3uaD bd2JvEXrIixYyPm7coSJWQjKwUuxFmndGJaBuCwxeggNlYpyk+592MccOZuULoneiZaF8lDqQjh buw152Fn4L3CYwLnmGqatRwW6YnHCNcBwGVkci5wksuvFM8DK3203nP2ayV4gdsTpwTEWPMiRFB HWA6X84LQ/g55rn3kuVYUVgXu56oXbXs8McFwBzTdwUYh+jksHqdTOSDUus3eqPU5CaTNcnKSHV PDGnr9tGkhvoMCD9qY4sAB7pl6F5gy+CINM70JnR9WGj3Pw= X-Received: by 2002:a17:90b:39cc:b0:2fa:229f:d03a with SMTP id 98e67ed59e1d1-2fc4104056emr5692277a91.26.1739664080727; Sat, 15 Feb 2025 16:01:20 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:20 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 13/24] include/exec: Use uintptr_t in CPUTLBEntry Date: Sat, 15 Feb 2025 16:00:57 -0800 Message-ID: <20250216000109.2606518-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Since we no longer support 64-bit guests on 32-bit hosts, we can use a 32-bit type on a 32-bit host. This shrinks the size of the structure to 16 bytes on a 32-bit host. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- include/exec/tlb-common.h | 10 +++++----- accel/tcg/cputlb.c | 21 ++++----------------- tcg/arm/tcg-target.c.inc | 1 - tcg/mips/tcg-target.c.inc | 12 +++++------- tcg/ppc/tcg-target.c.inc | 21 +++++---------------- 5 files changed, 19 insertions(+), 46 deletions(-) diff --git a/include/exec/tlb-common.h b/include/exec/tlb-common.h index dc5a5faa0b..03b5a8ffc7 100644 --- a/include/exec/tlb-common.h +++ b/include/exec/tlb-common.h @@ -19,14 +19,14 @@ #ifndef EXEC_TLB_COMMON_H #define EXEC_TLB_COMMON_H 1 -#define CPU_TLB_ENTRY_BITS 5 +#define CPU_TLB_ENTRY_BITS (HOST_LONG_BITS == 32 ? 4 : 5) /* Minimalized TLB entry for use by TCG fast path. */ typedef union CPUTLBEntry { struct { - uint64_t addr_read; - uint64_t addr_write; - uint64_t addr_code; + uintptr_t addr_read; + uintptr_t addr_write; + uintptr_t addr_code; /* * Addend to virtual address to get host address. IO accesses * use the corresponding iotlb value. @@ -37,7 +37,7 @@ typedef union CPUTLBEntry { * Padding to get a power of two size, as well as index * access to addr_{read,write,code}. */ - uint64_t addr_idx[(1 << CPU_TLB_ENTRY_BITS) / sizeof(uint64_t)]; + uintptr_t addr_idx[(1 << CPU_TLB_ENTRY_BITS) / sizeof(uintptr_t)]; } CPUTLBEntry; QEMU_BUILD_BUG_ON(sizeof(CPUTLBEntry) != (1 << CPU_TLB_ENTRY_BITS)); diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 75d075d044..ad158050a1 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -104,22 +104,15 @@ static inline uint64_t tlb_read_idx(const CPUTLBEntry *entry, { /* Do not rearrange the CPUTLBEntry structure members. */ QEMU_BUILD_BUG_ON(offsetof(CPUTLBEntry, addr_read) != - MMU_DATA_LOAD * sizeof(uint64_t)); + MMU_DATA_LOAD * sizeof(uintptr_t)); QEMU_BUILD_BUG_ON(offsetof(CPUTLBEntry, addr_write) != - MMU_DATA_STORE * sizeof(uint64_t)); + MMU_DATA_STORE * sizeof(uintptr_t)); QEMU_BUILD_BUG_ON(offsetof(CPUTLBEntry, addr_code) != - MMU_INST_FETCH * sizeof(uint64_t)); + MMU_INST_FETCH * sizeof(uintptr_t)); -#if TARGET_LONG_BITS == 32 - /* Use qatomic_read, in case of addr_write; only care about low bits. */ - const uint32_t *ptr = (uint32_t *)&entry->addr_idx[access_type]; - ptr += HOST_BIG_ENDIAN; - return qatomic_read(ptr); -#else - const uint64_t *ptr = &entry->addr_idx[access_type]; + const uintptr_t *ptr = &entry->addr_idx[access_type]; /* ofs might correspond to .addr_write, so use qatomic_read */ return qatomic_read(ptr); -#endif } static inline uint64_t tlb_addr_write(const CPUTLBEntry *entry) @@ -899,14 +892,8 @@ static void tlb_reset_dirty_range_locked(CPUTLBEntry *tlb_entry, addr &= TARGET_PAGE_MASK; addr += tlb_entry->addend; if ((addr - start) < length) { -#if TARGET_LONG_BITS == 32 - uint32_t *ptr_write = (uint32_t *)&tlb_entry->addr_write; - ptr_write += HOST_BIG_ENDIAN; - qatomic_set(ptr_write, *ptr_write | TLB_NOTDIRTY); -#else qatomic_set(&tlb_entry->addr_write, tlb_entry->addr_write | TLB_NOTDIRTY); -#endif } } } diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 865aab0ccd..f03bb76396 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -1506,7 +1506,6 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, * Add the tlb_table pointer, creating the CPUTLBEntry address in R1. * Load the tlb comparator into R2 and the fast path addend into R1. */ - QEMU_BUILD_BUG_ON(HOST_BIG_ENDIAN); if (cmp_off == 0) { tcg_out_ld32_rwb(s, COND_AL, TCG_REG_R2, TCG_REG_R1, TCG_REG_R0); } else { diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index d744b853cd..14b3cb1eba 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -1262,18 +1262,16 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, /* Add the tlb_table pointer, creating the CPUTLBEntry address. */ tcg_out_opc_reg(s, ALIAS_PADD, TCG_TMP3, TCG_TMP3, TCG_TMP1); - if (TCG_TARGET_REG_BITS == 32 || addr_type == TCG_TYPE_I32) { - /* Load the (low half) tlb comparator. */ + /* Load the tlb comparator. */ + if (TCG_TARGET_REG_BITS == 64 && addr_type == TCG_TYPE_I32) { tcg_out_ld(s, TCG_TYPE_I32, TCG_TMP0, TCG_TMP3, cmp_off + HOST_BIG_ENDIAN * 4); } else { - tcg_out_ld(s, TCG_TYPE_I64, TCG_TMP0, TCG_TMP3, cmp_off); + tcg_out_ld(s, TCG_TYPE_REG, TCG_TMP0, TCG_TMP3, cmp_off); } - if (TCG_TARGET_REG_BITS == 64 || addr_type == TCG_TYPE_I32) { - /* Load the tlb addend for the fast path. */ - tcg_out_ld(s, TCG_TYPE_PTR, TCG_TMP3, TCG_TMP3, add_off); - } + /* Load the tlb addend for the fast path. */ + tcg_out_ld(s, TCG_TYPE_PTR, TCG_TMP3, TCG_TMP3, add_off); /* * Mask the page bits, keeping the alignment bits to compare against. diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 2d16807ec7..822925a19b 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -2490,27 +2490,16 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h, tcg_out32(s, AND | SAB(TCG_REG_TMP1, TCG_REG_TMP1, TCG_REG_R0)); /* - * Load the (low part) TLB comparator into TMP2. + * Load the TLB comparator into TMP2. * For 64-bit host, always load the entire 64-bit slot for simplicity. * We will ignore the high bits with tcg_out_cmp(..., addr_type). */ - if (TCG_TARGET_REG_BITS == 64) { - if (cmp_off == 0) { - tcg_out32(s, LDUX | TAB(TCG_REG_TMP2, - TCG_REG_TMP1, TCG_REG_TMP2)); - } else { - tcg_out32(s, ADD | TAB(TCG_REG_TMP1, - TCG_REG_TMP1, TCG_REG_TMP2)); - tcg_out_ld(s, TCG_TYPE_I64, TCG_REG_TMP2, - TCG_REG_TMP1, cmp_off); - } - } else if (cmp_off == 0 && !HOST_BIG_ENDIAN) { - tcg_out32(s, LWZUX | TAB(TCG_REG_TMP2, - TCG_REG_TMP1, TCG_REG_TMP2)); + if (cmp_off == 0) { + tcg_out32(s, (TCG_TARGET_REG_BITS == 64 ? LDUX : LWZUX) + | TAB(TCG_REG_TMP2, TCG_REG_TMP1, TCG_REG_TMP2)); } else { tcg_out32(s, ADD | TAB(TCG_REG_TMP1, TCG_REG_TMP1, TCG_REG_TMP2)); - tcg_out_ld(s, TCG_TYPE_I32, TCG_REG_TMP2, TCG_REG_TMP1, - cmp_off + 4 * HOST_BIG_ENDIAN); + tcg_out_ld(s, TCG_TYPE_PTR, TCG_REG_TMP2, TCG_REG_TMP1, cmp_off); } /* From patchwork Sun Feb 16 00:00:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865537 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520982wri; Sat, 15 Feb 2025 16:08:33 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVXajC/4/mUwviirgr+vnecEP9nTg+4oMW7amjFeqT6uk7NC/2V+AhOY5QfopgW0VUFJC6tpw==@linaro.org X-Google-Smtp-Source: AGHT+IGgmxLu85p3CHw/93ITN/f7dtPFV40O3c7krwVOY8BK+IiunydrrKsYvdYhJTH07UJtoHzt X-Received: by 2002:ad4:5fcb:0:b0:6dd:d513:6124 with SMTP id 6a1803df08f44-6e66cd0d0dcmr69780366d6.35.1739664513171; Sat, 15 Feb 2025 16:08:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664513; cv=none; d=google.com; s=arc-20240605; b=QHsr2s8psjM0wgelXwqbdFaxNlDiDKhfV60RE8eJEFSI2tA9iKfnE3u1QyALMmhVeQ eArB8M1fzVaochSqjQLzbnZM6kocF2dhU6UqhNFbem0qsdQvlkn4FzbTxpmiZDYkPFIp S6G9FFdEA5/NbigVRo+kArUvNOye3BNEWwhzP57RBRv/etSZLnKes6Sr0mHdzCXvfKvU sRPoEhHEB5piffogy3pwDVRXNzgER6Jo9Cvg3ZBT45OSFGBQWnoo8kKKdEuKoxoYsApZ E+UP5cRM31qfotBWgPPzt1ir8KBjsbwYRM0t6+dn7EMTq/nDBkMkALP6UAoinSlZ+A5P QZvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JhOCjaCEdODZDzVDXbbcrJWRHEHJ4tXKXvv0DPCf8Os=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=Du7VZKkpc6zx0dt57IpXPe35Xy7UKq6/7LSeLdpVL1v6iOMuckir8EoLDWcPu22tnJ kuppiqZLTL7Zu1JkKdSo4ca+hnL5mM50hBgO+F2gVHMI4myQZNQADxdKQsd5RtygNQeK vH9yRR4a1YiSMDR4Hj2J88ru3FYKC13hu1f8yjqx/lzAj3M52RY5RvjCwJXFAlFvyKh6 xABgpJbB4Cbi7NjYXfC+5kARm3+beZqxntKBbUdq2DkrKTQL1mMSyF0xfbUrQu1AAbVm Eh5gKa5QZBV/hhtG/Ds5FedbUbb8z+2j1KDne4Nw8uAs0n8cwhrBg1GFjEGf2D2RGDCJ dc3A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BWdJXUyh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d734871si63280106d6.1.2025.02.15.16.08.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:08:33 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BWdJXUyh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6d-0007kM-H2; Sat, 15 Feb 2025 19:01:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0007e8-2K for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS68-0006Gw-CF for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:27 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-220f4dd756eso30974445ad.3 for ; Sat, 15 Feb 2025 16:01:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664082; x=1740268882; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JhOCjaCEdODZDzVDXbbcrJWRHEHJ4tXKXvv0DPCf8Os=; b=BWdJXUyhnLR+aqZK/VQFIo/1bMQIculWcj1M9PxjPXzFB9mgDoGPwAvs+dAm4A9v4T Jg/loUnlOri7J2VFRaQu6STU1iQJjkjWMclNzNMmheHgEqeOuzmMz1zACNnc9PBFPujO QCdlQwa4VRQb1TF/LDemdC+hxtdIZHQdk9fKJFRKOPyUqjm63oVY36L9CQ5wKICaNF/x 4T3XKo+YsfpEGjlpMQnuJLgm5E4vAB0WzMT2vUBXIFZyeEQIPHOk97TSizfpZtuxtngT DgCKHq//GqeiwlXHz9BeDokGtNsVc2+aRnngnhB3MTaUdSG7BqwxmnR29SpO7TjagAmP 2hCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664082; x=1740268882; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JhOCjaCEdODZDzVDXbbcrJWRHEHJ4tXKXvv0DPCf8Os=; b=G8Hu4wPkyl6Z+wRu/pObAKJ7d8Xq1LAhFuxYGJkcf7qOE8CQbkDPkyeZWxJzs2UdMf KaZk3GLdip+IK/q8CLoyYKOw9KxCSfUGmJMl0oiDypAKyimWzZQafYWS75qHFg7n7htX qvrJzF6V+h/t3eIxNv5oS27oSFv46GtYKI2DLrCT+X87oM6rfFSD4TBiR80UZudYUH+N 1VjBu8yzDRcysbJoYwx7raxr4ihGAokenguaFHlWLmnqHYtTeOf1v1OYv8C//ovz6HJd PXEWXPrvlP6dk4+bYWatwuX5YCRiUT8nyA/xp2Sm45XX5R9/VSq3RIhX4BDxFTlI/sYA BoWA== X-Gm-Message-State: AOJu0YzPrAnMPDK8FUriF9QOe0aEacijuX4+Zq+egr/XpNEOgUtgtKZM qDb9XJ2z+62K+SqgUJaVK8iSCQyKDcWdCbg9IPoe3WzuIV8kfLzj+JKPAmn66/3y4ywJx9dtMUz O X-Gm-Gg: ASbGncsmKURejv7m+Oum4P8Arg/dwPQjtpzYmedul+eW1CUpb0ehTT2pC9dcMogd/0x uHr/GuLkgLTEFESmDVEpZl0P1ONytiiSOm0kPlFuG22gOgGqC2P8WaiMkI93TaOHVZ0zbXNMXmo Scg1F8HHVWHG+9SxYdrzQjXy7dcl4mDQK8MbwOPxU31WHxGbclHqpBEQqAJn4lWwLWL3OOv5/Mq UBCfmabHogey/P2HqIvl6Ogq1iWRvNPWfi6rQEKdyRCYYq0eDZxOzuKi4NV5UT1zB+JF4mJC9Gd hV/HrVR4eeshVUizoHbApfDcKmk+KPDcoYwwgXakpTJ3Bq0= X-Received: by 2002:a17:902:f789:b0:21f:61a9:be7d with SMTP id d9443c01a7336-221040d75abmr75887625ad.49.1739664082021; Sat, 15 Feb 2025 16:01:22 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:21 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 14/24] tcg: Introduce the 'z' constraint for a hardware zero register Date: Sat, 15 Feb 2025 16:00:58 -0800 Message-ID: <20250216000109.2606518-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org For loongarch, mips, riscv and sparc, a zero register is available all the time. For aarch64, register index 31 depends on context: sometimes it is the stack pointer, and sometimes it is the zero register. Introduce a new general-purpose constraint which maps 0 to TCG_REG_ZERO, if defined. This differs from existing constant constraints in that const_arg[*] is recorded as false, indicating that the value is in a register. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- include/tcg/tcg.h | 3 ++- tcg/aarch64/tcg-target.h | 2 ++ tcg/loongarch64/tcg-target.h | 2 ++ tcg/mips/tcg-target.h | 2 ++ tcg/riscv/tcg-target.h | 2 ++ tcg/sparc64/tcg-target.h | 3 ++- tcg/tcg.c | 29 ++++++++++++++++++++++------- docs/devel/tcg-ops.rst | 4 +++- 8 files changed, 37 insertions(+), 10 deletions(-) diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 1d1d668f52..84d99508b6 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -713,7 +713,8 @@ void tb_target_set_jmp_target(const TranslationBlock *, int, void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size); -#define TCG_CT_CONST 1 /* any constant of register size */ +#define TCG_CT_CONST 1 /* any constant of register size */ +#define TCG_CT_REG_ZERO 2 /* zero, in TCG_REG_ZERO */ typedef struct TCGArgConstraint { unsigned ct : 16; diff --git a/tcg/aarch64/tcg-target.h b/tcg/aarch64/tcg-target.h index 0dd6e1f069..3f3df5176d 100644 --- a/tcg/aarch64/tcg-target.h +++ b/tcg/aarch64/tcg-target.h @@ -45,6 +45,8 @@ typedef enum { TCG_AREG0 = TCG_REG_X19, } TCGReg; +#define TCG_REG_ZERO TCG_REG_XZR + #define TCG_TARGET_NB_REGS 64 #endif /* AARCH64_TCG_TARGET_H */ diff --git a/tcg/loongarch64/tcg-target.h b/tcg/loongarch64/tcg-target.h index 8533284631..6a206fb97e 100644 --- a/tcg/loongarch64/tcg-target.h +++ b/tcg/loongarch64/tcg-target.h @@ -85,4 +85,6 @@ typedef enum { TCG_VEC_TMP0 = TCG_REG_V23, } TCGReg; +#define TCG_REG_ZERO TCG_REG_ZERO + #endif /* LOONGARCH_TCG_TARGET_H */ diff --git a/tcg/mips/tcg-target.h b/tcg/mips/tcg-target.h index 3090acc4f5..bd4ca5f852 100644 --- a/tcg/mips/tcg-target.h +++ b/tcg/mips/tcg-target.h @@ -70,4 +70,6 @@ typedef enum { TCG_AREG0 = TCG_REG_S8, } TCGReg; +#define TCG_REG_ZERO TCG_REG_ZERO + #endif diff --git a/tcg/riscv/tcg-target.h b/tcg/riscv/tcg-target.h index db5f3d8b72..6dc77d944b 100644 --- a/tcg/riscv/tcg-target.h +++ b/tcg/riscv/tcg-target.h @@ -57,4 +57,6 @@ typedef enum { TCG_REG_TMP2 = TCG_REG_T4, } TCGReg; +#define TCG_REG_ZERO TCG_REG_ZERO + #endif diff --git a/tcg/sparc64/tcg-target.h b/tcg/sparc64/tcg-target.h index f7d75d5806..1b9adccd85 100644 --- a/tcg/sparc64/tcg-target.h +++ b/tcg/sparc64/tcg-target.h @@ -64,6 +64,7 @@ typedef enum { TCG_REG_I7, } TCGReg; -#define TCG_AREG0 TCG_REG_I0 +#define TCG_AREG0 TCG_REG_I0 +#define TCG_REG_ZERO TCG_REG_G0 #endif diff --git a/tcg/tcg.c b/tcg/tcg.c index 55cb9b3ac7..e8950df2ad 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -3223,6 +3223,11 @@ static void process_constraint_sets(void) case 'i': args_ct[i].ct |= TCG_CT_CONST; break; +#ifdef TCG_REG_ZERO + case 'z': + args_ct[i].ct |= TCG_CT_REG_ZERO; + break; +#endif /* Include all of the target-specific constraints. */ @@ -5074,13 +5079,23 @@ static void tcg_reg_alloc_op(TCGContext *s, const TCGOp *op) arg_ct = &args_ct[i]; ts = arg_temp(arg); - if (ts->val_type == TEMP_VAL_CONST - && tcg_target_const_match(ts->val, arg_ct->ct, ts->type, - op_cond, TCGOP_VECE(op))) { - /* constant is OK for instruction */ - const_args[i] = 1; - new_args[i] = ts->val; - continue; + if (ts->val_type == TEMP_VAL_CONST) { +#ifdef TCG_REG_ZERO + if (ts->val == 0 && (arg_ct->ct & TCG_CT_REG_ZERO)) { + /* Hardware zero register: indicate register via non-const. */ + const_args[i] = 0; + new_args[i] = TCG_REG_ZERO; + continue; + } +#endif + + if (tcg_target_const_match(ts->val, arg_ct->ct, ts->type, + op_cond, TCGOP_VECE(op))) { + /* constant is OK for instruction */ + const_args[i] = 1; + new_args[i] = ts->val; + continue; + } } reg = ts->reg; diff --git a/docs/devel/tcg-ops.rst b/docs/devel/tcg-ops.rst index 6608a29376..688984fd39 100644 --- a/docs/devel/tcg-ops.rst +++ b/docs/devel/tcg-ops.rst @@ -927,7 +927,9 @@ operation uses a constant input constraint which does not allow all constants, it must also accept registers in order to have a fallback. The constraint '``i``' is defined generically to accept any constant. The constraint '``r``' is not defined generically, but is consistently -used by each backend to indicate all registers. +used by each backend to indicate all registers. If ``TCG_REG_ZERO`` +is defined by the backend, the constraint '``z``' is defined generically +to map constant 0 to the hardware zero register. The movi_i32 and movi_i64 operations must accept any constants. From patchwork Sun Feb 16 00:00:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865525 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519625wri; Sat, 15 Feb 2025 16:03:32 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCX9osrLcAiYznUTEvjByinwNePIL20/EyzeaAXPelqvFsc2KYvN1CDQqS0F7QiWYq5EGHzLLw==@linaro.org X-Google-Smtp-Source: AGHT+IHdAK+Z9xCctXDGHa8DL9smTmkGupkKSL1YcWbYihOXh613zhEI2aUJ2uXrR/jNraRcBs7+ X-Received: by 2002:a05:6214:d67:b0:6d8:accb:5a3d with SMTP id 6a1803df08f44-6e66cd19ea7mr77298926d6.34.1739664212764; Sat, 15 Feb 2025 16:03:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664212; cv=none; d=google.com; s=arc-20240605; b=gi5zyLwD9gpZFbsvIAPw38h0sGlpKxltV5lPi8eWKp+PDhQzhX8WFsqQTL9zUDrHkl 3vcPOFg+lC8Ok7flQoCxZ7ED/Jh3SUiKt+sDhGTpYe/w39E+iZlN6kjlaMDN/aE06Ywy BefrcQZHrpWXdb3H6uDhrPsEoOhSXU/0KkPuL++X/AekttWv2n8q0Q0hWjj8JYeiKAzF cLyUIKr8OhqWz3Ms73TtD1PqONQnlSKfwv1GbaGl80Ag4EPU4T+tFYjnH3NZsyyf76+F GNJXH/neBtWbdvnI6WyLRJbYU4X/MLjPC6IiRH9Hi1DaEiLJpbFkhXeMVXTxVOPSpFIC NhAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=8GN03SSPW+BnvgJXCFM6j1oZ9exlKICCoE1kSPFtm0A=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=b0lKzGlF/ssp2K6IA1M9aLIarr9gxvlMAHS1G0yH1Spk6i6H/oYcJBSVhohdvZ0KOT peI0O/zByZug2zA7R5y+EJZqL9r7aQEiwAjGV7SHQelBlQxmB9SW+KrxIlhAS3jKWMcn aJpYJb9igrycutsm40srvHJcLiYfQOg1thhFT1AeozHJituKbxMr/3zy7Lk3g0mCFXMA G3aEvLPb0pCwFxpuUCT7Ijgre2aRNhsy4n7EvYlPLB4Oxla3NuhbT2OtIWZylbXwBZHX e/i6qgDr900ydaprUd4Zm9rlB1FkNto4IVzT8FZjl/iN9fxwFUYDNmu7lydLnfm2pITw op/A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tXjg14Uy; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d9d210esi60147906d6.510.2025.02.15.16.03.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:32 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tXjg14Uy; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6e-0007lI-Ex; Sat, 15 Feb 2025 19:01:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0007e9-2J for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS68-0006H0-CR for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:27 -0500 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-220d28c215eso45246935ad.1 for ; Sat, 15 Feb 2025 16:01:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664083; x=1740268883; 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; bh=8GN03SSPW+BnvgJXCFM6j1oZ9exlKICCoE1kSPFtm0A=; b=tXjg14Uyu56JcX8xn8ARn6yVCn9bsl3eClmzWa78+mkF1eGwhjzEXZCpk6ZqZO4SJE NQzyg2r2JHf+bzUqa2SpsY0M19+6omBAyPXx7o6ZzSxUUpepvN68AI5z5wGp/M3frxDB PdeYv+0b7CWXUj8q+hDV8pBdTxg+HTK8AUzGynJS3NM6Y78lRExVUF5+MYQFS+kG95k3 XqbfqNzfCXmnu89g9iwHGmNeYkkVwqFBCtdUo2kJsZ8GhZCyOIJe0T+zd4+p0sXJ1lrI fjrFvQn7iGA3j57VQ1r0JJugtKOxRu1anusdkbuzKSGBCIgjNQyWSU3mnoPBtw+BIZ+d HQ6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664083; x=1740268883; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8GN03SSPW+BnvgJXCFM6j1oZ9exlKICCoE1kSPFtm0A=; b=mFtz6s9qMajPZn4EWeyW6KwcwG4ZBzlpLKudu8R3EijvVutLvzPcsYMdFzTRxsgkJV 8hXpYpNq5gZlXsOFasAmeC4rnGfBamxRFKPxaff6hxLR3jgv+BeIOSr1xi2dnihKohe9 EXqGrjxgYReEHlloonb2O3veekkVZQIeMaa2KF8sgHnswPppnJqSKgw4HJ7w5g5brnJF CwA1znay9/MVynTfOLTlEYxl2NJIrM9QLLHqbYwMF+JEP1BzEipCjQeoHGl/cldbL3J6 uhXbdcg5shMn3BIoIAlLU1m4PtWJuoU0yIdPphlfvLXiNuEs2krKOh46g4RPX7rQU/s4 Nu5w== X-Gm-Message-State: AOJu0Yz0BqcI32wvYSQZFlIGKGqrrgCWpI/cYC3wr3NohK6LgjXctfl9 M0Qmva0UgMQJjNqlaDsjANkSpvbXja4/3fqJc6uuPfNSA5E1hsle7TXldHx/tkDv2tUs34Y4CCs W X-Gm-Gg: ASbGncuWpN8szbEDoe/QvE/MNFo+H8U76Xt/oeFCWx49uLWcW85dSVUfldnbwkgrG9B dSIK++znUlANegIPA5hd+7e4v+0CF/69r6Z+mxxtrV5AKowJMEfCuMKXbAA+LUljUMSMnJIO+HG GdObpqX/DTrB3abtL2IE7R5bPgdopy7BLh/oDGoEFcVPc/Dm+QfrKf2Bc4iAfispv3CecrpYnOb P1y9Q/53G3cYNEstcw962CuUeis+P/EKj3WyxjQhX19xqgac2L4DWTjGnAfvWK0915Uslmztung FUKmrUcnRduAefDZztQTLds3rTB27LU9V/PgA+2PLDT3e/4= X-Received: by 2002:a17:902:f706:b0:220:c94f:eb28 with SMTP id d9443c01a7336-2210406ae23mr64308595ad.27.1739664082656; Sat, 15 Feb 2025 16:01:22 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:22 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 15/24] tcg/aarch64: Use 'z' constraint Date: Sat, 15 Feb 2025 16:00:59 -0800 Message-ID: <20250216000109.2606518-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Note that 'Z' is still used for addsub2. Signed-off-by: Richard Henderson --- tcg/aarch64/tcg-target-con-set.h | 12 ++++----- tcg/aarch64/tcg-target.c.inc | 46 ++++++++++++++------------------ 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/tcg/aarch64/tcg-target-con-set.h b/tcg/aarch64/tcg-target-con-set.h index 44fcc1206e..1281e5efc0 100644 --- a/tcg/aarch64/tcg-target-con-set.h +++ b/tcg/aarch64/tcg-target-con-set.h @@ -11,27 +11,27 @@ */ C_O0_I1(r) C_O0_I2(r, rC) -C_O0_I2(rZ, r) +C_O0_I2(rz, r) C_O0_I2(w, r) -C_O0_I3(rZ, rZ, r) +C_O0_I3(rz, rz, r) C_O1_I1(r, r) C_O1_I1(w, r) C_O1_I1(w, w) C_O1_I1(w, wr) -C_O1_I2(r, 0, rZ) +C_O1_I2(r, 0, rz) C_O1_I2(r, r, r) C_O1_I2(r, r, rA) C_O1_I2(r, r, rAL) C_O1_I2(r, r, rC) C_O1_I2(r, r, ri) C_O1_I2(r, r, rL) -C_O1_I2(r, rZ, rZ) +C_O1_I2(r, rz, rz) C_O1_I2(w, 0, w) C_O1_I2(w, w, w) C_O1_I2(w, w, wN) C_O1_I2(w, w, wO) C_O1_I2(w, w, wZ) C_O1_I3(w, w, w, w) -C_O1_I4(r, r, rC, rZ, rZ) +C_O1_I4(r, r, rC, rz, rz) C_O2_I1(r, r, r) -C_O2_I4(r, r, rZ, rZ, rA, rMZ) +C_O2_I4(r, r, rz, rz, rA, rMZ) diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc index 6f383c1592..4645242d85 100644 --- a/tcg/aarch64/tcg-target.c.inc +++ b/tcg/aarch64/tcg-target.c.inc @@ -2125,10 +2125,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, TCGArg a2 = args[2]; int c2 = const_args[2]; - /* Some operands are defined with "rZ" constraint, a register or - the zero register. These need not actually test args[I] == 0. */ -#define REG0(I) (const_args[I] ? TCG_REG_XZR : (TCGReg)args[I]) - switch (opc) { case INDEX_op_goto_ptr: tcg_out_insn(s, 3207, BR, a0); @@ -2171,18 +2167,18 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, case INDEX_op_st8_i32: case INDEX_op_st8_i64: - tcg_out_ldst(s, I3312_STRB, REG0(0), a1, a2, 0); + tcg_out_ldst(s, I3312_STRB, a0, a1, a2, 0); break; case INDEX_op_st16_i32: case INDEX_op_st16_i64: - tcg_out_ldst(s, I3312_STRH, REG0(0), a1, a2, 1); + tcg_out_ldst(s, I3312_STRH, a0, a1, a2, 1); break; case INDEX_op_st_i32: case INDEX_op_st32_i64: - tcg_out_ldst(s, I3312_STRW, REG0(0), a1, a2, 2); + tcg_out_ldst(s, I3312_STRW, a0, a1, a2, 2); break; case INDEX_op_st_i64: - tcg_out_ldst(s, I3312_STRX, REG0(0), a1, a2, 3); + tcg_out_ldst(s, I3312_STRX, a0, a1, a2, 3); break; case INDEX_op_add_i32: @@ -2395,7 +2391,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, /* FALLTHRU */ case INDEX_op_movcond_i64: tcg_out_cmp(s, ext, args[5], a1, a2, c2); - tcg_out_insn(s, 3506, CSEL, ext, a0, REG0(3), REG0(4), args[5]); + tcg_out_insn(s, 3506, CSEL, ext, a0, args[3], args[4], args[5]); break; case INDEX_op_qemu_ld_i32: @@ -2404,13 +2400,13 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, break; case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st_i64: - tcg_out_qemu_st(s, REG0(0), a1, a2, ext); + tcg_out_qemu_st(s, a0, a1, a2, ext); break; case INDEX_op_qemu_ld_i128: tcg_out_qemu_ldst_i128(s, a0, a1, a2, args[3], true); break; case INDEX_op_qemu_st_i128: - tcg_out_qemu_ldst_i128(s, REG0(0), REG0(1), a2, args[3], false); + tcg_out_qemu_ldst_i128(s, a0, a1, a2, args[3], false); break; case INDEX_op_bswap64_i64: @@ -2439,7 +2435,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, case INDEX_op_deposit_i64: case INDEX_op_deposit_i32: - tcg_out_dep(s, ext, a0, REG0(2), args[3], args[4]); + tcg_out_dep(s, ext, a0, a2, args[3], args[4]); break; case INDEX_op_extract_i64: @@ -2459,25 +2455,25 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, case INDEX_op_extract2_i64: case INDEX_op_extract2_i32: - tcg_out_extr(s, ext, a0, REG0(2), REG0(1), args[3]); + tcg_out_extr(s, ext, a0, a2, a1, args[3]); break; case INDEX_op_add2_i32: - tcg_out_addsub2(s, TCG_TYPE_I32, a0, a1, REG0(2), REG0(3), + tcg_out_addsub2(s, TCG_TYPE_I32, a0, a1, a2, args[3], (int32_t)args[4], args[5], const_args[4], const_args[5], false); break; case INDEX_op_add2_i64: - tcg_out_addsub2(s, TCG_TYPE_I64, a0, a1, REG0(2), REG0(3), args[4], + tcg_out_addsub2(s, TCG_TYPE_I64, a0, a1, a2, args[3], args[4], args[5], const_args[4], const_args[5], false); break; case INDEX_op_sub2_i32: - tcg_out_addsub2(s, TCG_TYPE_I32, a0, a1, REG0(2), REG0(3), + tcg_out_addsub2(s, TCG_TYPE_I32, a0, a1, a2, args[3], (int32_t)args[4], args[5], const_args[4], const_args[5], true); break; case INDEX_op_sub2_i64: - tcg_out_addsub2(s, TCG_TYPE_I64, a0, a1, REG0(2), REG0(3), args[4], + tcg_out_addsub2(s, TCG_TYPE_I64, a0, a1, a2, args[3], args[4], args[5], const_args[4], const_args[5], true); break; @@ -2513,8 +2509,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, default: g_assert_not_reached(); } - -#undef REG0 } static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, @@ -3010,7 +3004,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st16_i64: case INDEX_op_st32_i64: case INDEX_op_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_add_i32: case INDEX_op_add_i64: @@ -3076,7 +3070,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_movcond_i32: case INDEX_op_movcond_i64: - return C_O1_I4(r, r, rC, rZ, rZ); + return C_O1_I4(r, r, rC, rz, rz); case INDEX_op_qemu_ld_i32: case INDEX_op_qemu_ld_i64: @@ -3085,23 +3079,23 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) return C_O2_I1(r, r, r); case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_qemu_st_i128: - return C_O0_I3(rZ, rZ, r); + return C_O0_I3(rz, rz, r); case INDEX_op_deposit_i32: case INDEX_op_deposit_i64: - return C_O1_I2(r, 0, rZ); + return C_O1_I2(r, 0, rz); case INDEX_op_extract2_i32: case INDEX_op_extract2_i64: - return C_O1_I2(r, rZ, rZ); + return C_O1_I2(r, rz, rz); case INDEX_op_add2_i32: case INDEX_op_add2_i64: case INDEX_op_sub2_i32: case INDEX_op_sub2_i64: - return C_O2_I4(r, r, rZ, rZ, rA, rMZ); + return C_O2_I4(r, r, rz, rz, rA, rMZ); case INDEX_op_add_vec: case INDEX_op_sub_vec: From patchwork Sun Feb 16 00:01:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865540 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp521092wri; Sat, 15 Feb 2025 16:08:59 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCX3ruQgYpXCXEI3C0JFzIRgwNFNpKJrvzjahEiFgW74wvUXZOlmNwS/Ivlx6fEJbNMqK4eq6g==@linaro.org X-Google-Smtp-Source: AGHT+IEIhkQ8Yj3i4yZwawJwkqqEz6OK0vu2ys7VN8jxrKLrmzw40jIQoj0fITRnpS3Bv550r7WB X-Received: by 2002:a05:6214:f04:b0:6e4:29c0:fede with SMTP id 6a1803df08f44-6e66cc88facmr79485226d6.8.1739664539544; Sat, 15 Feb 2025 16:08:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664539; cv=none; d=google.com; s=arc-20240605; b=ThoVq3xu40rYTpQPu6tbbzlDmtw/anjTgVQDK+xZy3YXq/YsV+pso9E9depJSZ89i6 PwQJ14/LEdRXyVXjf8hW+P9raBDUx17WCsocSgCTCENV/n5Lhz4Zj0Btv1SpnfGr6YxG diZfvD3EcyIqGyuwdnb0EIN/6WObCzEHBOV/kKC1EjnhX57DJJS+VgoBOnp9jo+aAFik tp+5Fn3EM++69r3pwEn7tIZqcBkA0gLDqfm3b+dF7YDlyjwjqnbHzSVJsMt6kgKVPnGh n6/x2EaEhuGSQ2RnNyORXv0uBcBlqIh9slWoqSDN6fOjiyDqkQYQ3JiyNeArfbtCY5BA 6p4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=c+QFcPwjE+/PZmsE+ZNS1uNg3roQJkJdP7G2ngjxuz4=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=jtUvCK1fqhwvhIi1x+6tC7fGl5acyUvUit2GjnLnq5DTVEUxtKTR6Q8M1IoKIsWeMo KRzux++dLtIX7EZMVthnPBvFdzv5E4gg5AHyFIZ0r2d/bfAMJ16wvB2a+tYerUVbBEWg nS396SUG1B6prK0RrNnYzoW04MC4aNuobQlQuzrYuyg612L2Irvz6mvkpb6I5HTUJtgq j5yND4taPWPgfWBxlJ+5D2HFlue/nzNVSu3cxvN1MmfJwk/1XR6tthV4uABYUbTezS9A LnTZSf2ghMNQMANyD9J7FLdHlbTMGNZHPNLvveMBVBw1T0gvgaRKsJpYQBCssN4O9joL i19Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ElXmiMu6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d9a8e1dsi62222836d6.167.2025.02.15.16.08.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:08:59 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ElXmiMu6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6f-0007lZ-9X; Sat, 15 Feb 2025 19:01:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0007eA-25 for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS69-0006H7-0Y for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:27 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-220f048c038so32686915ad.2 for ; Sat, 15 Feb 2025 16:01:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664083; x=1740268883; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c+QFcPwjE+/PZmsE+ZNS1uNg3roQJkJdP7G2ngjxuz4=; b=ElXmiMu6YiN5SRC7/wBCFYs8sqR2Jb4bkLtghMMMHeC+TsCw0VZ3k3K42trG8ZpCMz aVAAafYh0rWc3h6XiCRL/jQmOPlWlSBjrLJhFEB8xCrtpYWATu6UThGnOGGPRs03u56t Kht+zjMpsZ1vgmpCXPGmzrblXbmj9n1v51H889RMS4ydxr+eca0MvdK5UH+8JvYoV0WJ /E8qkMIwrlaZW80k4PWAT1KFMfkp89wYrTtx+r1Urx9J9JDRVyyOMz77g4rEpO98pN2h jaaF5Mt3m+3jV5VWfy197fvZd3DMJ3h+N4wc1S4LwYQP7mKvP9+EwDb48quUjf9pdtYA wFmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664083; x=1740268883; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c+QFcPwjE+/PZmsE+ZNS1uNg3roQJkJdP7G2ngjxuz4=; b=emEhy21ZDVey4+2yWuf6986h4UMZnmgVYc3l9BhBKxYhTePri76y00MCR0hsf0RfL4 EQuMQsHsRMj4dieSC1hP6y/MreoHl38ftxKdxDfYy1kWV0XKcnb7zm/7kq919Pyi/Wlt RMPgZcM4FVxPg25AkrI4WEFZpFROTDz/jaV8fGcsYr9rYIJSpkGKoIjP98gaxpiOF/+A 1MxRTA04H1QnZS/pokzM9Zh6k2MhXJb0sodiKsq1jrDKSydvqomAONdrawzSR8+frSDO PPb/DuCYnoE61tTnJR7QaT4PHbNvSmzeDh60ZA8sPX6as2lvJMoCvtpIMnc4lZBvFV4d d8Qw== X-Gm-Message-State: AOJu0Yxz5qfDbxXnUQeO+0/bdw6Gx6pUHgWnke0iRDHxdauKaaHyuhj0 NepgdjAg/jASdcKU82NNSNbYgfpNyF057zVl25TzPK9y43toT6+quyx8amacfw9cqkMJupNAl3O n X-Gm-Gg: ASbGncvUYTT282OePGO+MmkkLrK6NkWnuykE5cTJipNvo3elaXc4ZCNhw+t18xpkkJx ybOOz0gVjgFJAnMskYv7DBUZTjSa3gzVuiYJbcTdF79CtgHU4qmg5TXVSFLaxnr05DUrEbY1mPe 7cSfVEZKaqqDht3zvcEBar0WRdLoqjS7f/0r5MLHLiq27q3lEQnHWTZcOqx3iOHafnpSOm371D7 BdXI3wMiFM7qih/6khVtC5bu8ABMs3JFXXPIanNgJxqK3BWjf7wGeKSDKfzWY0cywaz3Drfjpf0 Kp1nQ+lYq8m6B4DG8FgnYThWYnDLRAzRwdOMMHrz1DdDla4= X-Received: by 2002:a17:902:fc4e:b0:21f:71b4:d2aa with SMTP id d9443c01a7336-22103efeebcmr82139545ad.5.1739664083453; Sat, 15 Feb 2025 16:01:23 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 16/24] tcg/loongarch64: Use 'z' constraint Date: Sat, 15 Feb 2025 16:01:00 -0800 Message-ID: <20250216000109.2606518-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Replace target-specific 'Z' with generic 'z'. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/loongarch64/tcg-target-con-set.h | 15 ++++++------- tcg/loongarch64/tcg-target-con-str.h | 1 - tcg/loongarch64/tcg-target.c.inc | 32 ++++++++++++---------------- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/tcg/loongarch64/tcg-target-con-set.h b/tcg/loongarch64/tcg-target-con-set.h index cae6c2aad6..8afaee9476 100644 --- a/tcg/loongarch64/tcg-target-con-set.h +++ b/tcg/loongarch64/tcg-target-con-set.h @@ -15,8 +15,8 @@ * tcg-target-con-str.h; the constraint combination is inclusive or. */ C_O0_I1(r) -C_O0_I2(rZ, r) -C_O0_I2(rZ, rZ) +C_O0_I2(rz, r) +C_O0_I2(rz, rz) C_O0_I2(w, r) C_O0_I3(r, r, r) C_O1_I1(r, r) @@ -28,14 +28,13 @@ C_O1_I2(r, r, rI) C_O1_I2(r, r, rJ) C_O1_I2(r, r, rU) C_O1_I2(r, r, rW) -C_O1_I2(r, r, rZ) -C_O1_I2(r, 0, rZ) -C_O1_I2(r, rZ, ri) -C_O1_I2(r, rZ, rJ) -C_O1_I2(r, rZ, rZ) +C_O1_I2(r, 0, rz) +C_O1_I2(r, rz, ri) +C_O1_I2(r, rz, rJ) +C_O1_I2(r, rz, rz) C_O1_I2(w, w, w) C_O1_I2(w, w, wM) C_O1_I2(w, w, wA) C_O1_I3(w, w, w, w) -C_O1_I4(r, rZ, rJ, rZ, rZ) +C_O1_I4(r, rz, rJ, rz, rz) C_N2_I1(r, r, r) diff --git a/tcg/loongarch64/tcg-target-con-str.h b/tcg/loongarch64/tcg-target-con-str.h index 2ba9c135ac..99759120b4 100644 --- a/tcg/loongarch64/tcg-target-con-str.h +++ b/tcg/loongarch64/tcg-target-con-str.h @@ -23,7 +23,6 @@ REGS('w', ALL_VECTOR_REGS) CONST('I', TCG_CT_CONST_S12) CONST('J', TCG_CT_CONST_S32) CONST('U', TCG_CT_CONST_U12) -CONST('Z', TCG_CT_CONST_ZERO) CONST('C', TCG_CT_CONST_C12) CONST('W', TCG_CT_CONST_WSZ) CONST('M', TCG_CT_CONST_VCMP) diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc index dd67e8f6bc..cbd7642b58 100644 --- a/tcg/loongarch64/tcg-target.c.inc +++ b/tcg/loongarch64/tcg-target.c.inc @@ -173,14 +173,13 @@ static TCGReg tcg_target_call_oarg_reg(TCGCallReturnKind kind, int slot) #define TCG_GUEST_BASE_REG TCG_REG_S1 -#define TCG_CT_CONST_ZERO 0x100 -#define TCG_CT_CONST_S12 0x200 -#define TCG_CT_CONST_S32 0x400 -#define TCG_CT_CONST_U12 0x800 -#define TCG_CT_CONST_C12 0x1000 -#define TCG_CT_CONST_WSZ 0x2000 -#define TCG_CT_CONST_VCMP 0x4000 -#define TCG_CT_CONST_VADD 0x8000 +#define TCG_CT_CONST_S12 0x100 +#define TCG_CT_CONST_S32 0x200 +#define TCG_CT_CONST_U12 0x400 +#define TCG_CT_CONST_C12 0x800 +#define TCG_CT_CONST_WSZ 0x1000 +#define TCG_CT_CONST_VCMP 0x2000 +#define TCG_CT_CONST_VADD 0x4000 #define ALL_GENERAL_REGS MAKE_64BIT_MASK(0, 32) #define ALL_VECTOR_REGS MAKE_64BIT_MASK(32, 32) @@ -197,9 +196,6 @@ static bool tcg_target_const_match(int64_t val, int ct, if (ct & TCG_CT_CONST) { return true; } - if ((ct & TCG_CT_CONST_ZERO) && val == 0) { - return true; - } if ((ct & TCG_CT_CONST_S12) && val == sextreg(val, 0, 12)) { return true; } @@ -2229,7 +2225,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st_i64: case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_qemu_ld_i128: return C_N2_I1(r, r, r); @@ -2239,7 +2235,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_brcond_i32: case INDEX_op_brcond_i64: - return C_O0_I2(rZ, rZ); + return C_O0_I2(rz, rz); case INDEX_op_ext8s_i32: case INDEX_op_ext8s_i64: @@ -2332,14 +2328,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_deposit_i32: case INDEX_op_deposit_i64: /* Must deposit into the same register as input */ - return C_O1_I2(r, 0, rZ); + return C_O1_I2(r, 0, rz); case INDEX_op_sub_i32: case INDEX_op_setcond_i32: - return C_O1_I2(r, rZ, ri); + return C_O1_I2(r, rz, ri); case INDEX_op_sub_i64: case INDEX_op_setcond_i64: - return C_O1_I2(r, rZ, rJ); + return C_O1_I2(r, rz, rJ); case INDEX_op_mul_i32: case INDEX_op_mul_i64: @@ -2355,11 +2351,11 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_rem_i64: case INDEX_op_remu_i32: case INDEX_op_remu_i64: - return C_O1_I2(r, rZ, rZ); + return C_O1_I2(r, rz, rz); case INDEX_op_movcond_i32: case INDEX_op_movcond_i64: - return C_O1_I4(r, rZ, rJ, rZ, rZ); + return C_O1_I4(r, rz, rJ, rz, rz); case INDEX_op_ld_vec: case INDEX_op_dupm_vec: From patchwork Sun Feb 16 00:01:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865539 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp521068wri; Sat, 15 Feb 2025 16:08:54 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWd9MvgD4h2K3LldSWnUr6hUnfpGXEuU5t8nhFreQFg2Xnw5WBXo/3CTOBPlqoTO23TQ2Kzgg==@linaro.org X-Google-Smtp-Source: AGHT+IE95b0oax5PFH2tAsOpsNxKf49PVIjCkaG8+pjjT/97Esssiz4DBJdXq3qhAECXUNR/wSkT X-Received: by 2002:a05:620a:2406:b0:7b6:e47a:8e14 with SMTP id af79cd13be357-7c08aa8a421mr717887985a.35.1739664534333; Sat, 15 Feb 2025 16:08:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664534; cv=none; d=google.com; s=arc-20240605; b=Ye2AtvynG2s4fN/okhabSW4L8kdiholpIBpILukajCgjx+B4+VtIes8UR09oGg7Q9a cB73JxupYKp6/R5w4lUIVJDAZsZarUu8t3wgUNC80FVxWXlnr12/R/Q+Jf3BLbGdxOuw vHBph2nExuD6ADX+NtPoa6/oJBfE8DKcHoASVrVfL5+bMvSrGxgPQbuPVY9d2VNlIvfB eGdhfQSK0B5RaL4nnMz3M6fsn4i5sNYtT5WVu0MCRxmC3Ut46OjFe33Hr+ErwIiisShT eNNomgHGTgO1YqxOcDFNCSn8Mzz8Wl+bx8su+bDFc9X//D3O/uWpf+bTw/0vxCI37fY/ 47Tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zjENz02CQDbkRalonzQouff56ChSpitsxbPWI9dSHgw=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=BEf/ZiPDbCq9CB29UFC0kjyhJDuCvfZA3Ev5hNPUkUZ+V9dSb5dXUT7ZgAVEY42fJ+ nPEnI2+XUIJKloQ+QxCdoV+6weeFV9XSGD9FP+jk3qnN6wujgu1Knh1sdIElAs9e3eCq FuvVQfHErpgFEME+b5GjAUSG66JxSPA96VeNRMOmhqDHl7+/zY8KpDgcDEe4aN/j1WEw MFYYnwlTFDfpkxSbjJeHH8brGxaO8ydqPfmYFI/ys8Ur10IHoAkyE4OKQ/2wuiuuCR3z NtX7OVH86cGDQo4nW0UdqTDe4Pjw38C9LHtiP0Jw6ptEZoBZbUYNO9OyL57Kob3W99jV 6X/A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=da9bMfbI; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c8d4ab9si591334685a.646.2025.02.15.16.08.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:08:54 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=da9bMfbI; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007mJ-Uk; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6K-0007ej-7z for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:36 -0500 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6A-0006Ha-7T for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-2fc292b3570so3423920a91.1 for ; Sat, 15 Feb 2025 16:01:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664084; x=1740268884; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zjENz02CQDbkRalonzQouff56ChSpitsxbPWI9dSHgw=; b=da9bMfbI64tE2TD0M4FzZ8DnTRaMfhlur4nS2LLNX8UiwCMsTWWfDaPHEc5vNwZAiO aIMfuSuVCfjpZKKsHIYapEtjLxzRy9F0XQ7wwk9mYuFgvdkBn8aqrQYikalSFaWHVxdR 1F9297MCgQCEWRmDthgOTKHzKukkqHy8QL5l87QM93HSD34RijROUqJLQeFpICT+LlJk ys/QKABdiaEKmuxcWLl7d4YvIZ2JM5FGPy1CcSB6HxaXqvmePJwn4hql2bXpOHeP7FNP JkzYAh/ItSSy8wQf4i7DF9yKF5ufLVRDrs3dmQq46iXUOsLI23JgXgEKRMCMAQEQc7/H XiLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664084; x=1740268884; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zjENz02CQDbkRalonzQouff56ChSpitsxbPWI9dSHgw=; b=JBwBkTIlM92LErWKjX6+BoLBY90nD0I7e717bq1s0BxqRaCLb0GutZpnnmub9goMoh eXBH5HfT0zqxmqykXWaTu2dnby5jG3gTL34lIxLK2FzdmlyObaQg7HzXxEDL/BuF5CFU wbUrFzYOHdVC4IdWioZGIjsLYHZ2XRfU7AoBiP26CeDFIZRpDsADsp6ABtBYuP60c7ON 7lOsO7JWddT4c2p1St7TIoQZP7KdVluXglvFy2A5/Ukm9jWggmXFawgjgAPn7M9561n4 XcTvciAW0py33P5kb25sJTNzIbMLvRHhsWXvCfquoF36whBRtZMo+jk7LPOnNIvU9/Or BSbg== X-Gm-Message-State: AOJu0YwkQ1FKRfjJYeObUlxk3YdWTScHM3j0SYLKbM0CoJILFqojwK76 e8XxGx2+UxVJriaMZa5W6SjV5TCleyeBMBvv/+fPmdDDlE4eCQT4QcZyGn5uBPg2HQ+E28NvaVv 8 X-Gm-Gg: ASbGncvv8vF3Z4xlvqY3W8ZSBGbA1/fAZp+VSna4VrwgTYDYqM+xaPidwXIG7kT4y5p SALo5nLeaWhOv3F2GzTpnX8L2i0s6bpq8AUmZnllCk1qhejEb8sOOP6OKD+u3HOxqUP9nDagELZ TRt8u0VxTYSD81KInGmO0fwU+g5Df3AsiX5bNSIFFfcXxgABsYplMNxjsq1lmKCqKrelR1ndWL1 4lPPWTrqvViEXRR+BBhmCSKkxHQXyA7Xca91y0EZWnqqJ0sjI2wZNZgPgpRDivXAUvKvdfcYLW5 h0FsrM/USnFAwLvPYhbWsC4ejlEw16opQKJogYfK/3BWpFk= X-Received: by 2002:a17:90b:1a87:b0:2ee:e113:815d with SMTP id 98e67ed59e1d1-2fc40f10271mr6129561a91.8.1739664084197; Sat, 15 Feb 2025 16:01:24 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 17/24] tcg/mips: Use 'z' constraint Date: Sat, 15 Feb 2025 16:01:01 -0800 Message-ID: <20250216000109.2606518-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Replace target-specific 'Z' with generic 'z'. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/mips/tcg-target-con-set.h | 26 ++++++++++----------- tcg/mips/tcg-target-con-str.h | 1 - tcg/mips/tcg-target.c.inc | 44 ++++++++++++++--------------------- 3 files changed, 31 insertions(+), 40 deletions(-) diff --git a/tcg/mips/tcg-target-con-set.h b/tcg/mips/tcg-target-con-set.h index 864034f468..06ab04cc4d 100644 --- a/tcg/mips/tcg-target-con-set.h +++ b/tcg/mips/tcg-target-con-set.h @@ -10,24 +10,24 @@ * tcg-target-con-str.h; the constraint combination is inclusive or. */ C_O0_I1(r) -C_O0_I2(rZ, r) -C_O0_I2(rZ, rZ) -C_O0_I3(rZ, r, r) -C_O0_I3(rZ, rZ, r) -C_O0_I4(rZ, rZ, rZ, rZ) -C_O0_I4(rZ, rZ, r, r) +C_O0_I2(rz, r) +C_O0_I2(rz, rz) +C_O0_I3(rz, r, r) +C_O0_I3(rz, rz, r) +C_O0_I4(rz, rz, rz, rz) +C_O0_I4(rz, rz, r, r) C_O1_I1(r, r) -C_O1_I2(r, 0, rZ) +C_O1_I2(r, 0, rz) C_O1_I2(r, r, r) C_O1_I2(r, r, ri) C_O1_I2(r, r, rI) C_O1_I2(r, r, rIK) C_O1_I2(r, r, rJ) -C_O1_I2(r, r, rWZ) -C_O1_I2(r, rZ, rN) -C_O1_I2(r, rZ, rZ) -C_O1_I4(r, rZ, rZ, rZ, 0) -C_O1_I4(r, rZ, rZ, rZ, rZ) +C_O1_I2(r, r, rzW) +C_O1_I2(r, rz, rN) +C_O1_I2(r, rz, rz) +C_O1_I4(r, rz, rz, rz, 0) +C_O1_I4(r, rz, rz, rz, rz) C_O2_I1(r, r, r) C_O2_I2(r, r, r, r) -C_O2_I4(r, r, rZ, rZ, rN, rN) +C_O2_I4(r, r, rz, rz, rN, rN) diff --git a/tcg/mips/tcg-target-con-str.h b/tcg/mips/tcg-target-con-str.h index 413c280a7a..dfe2b156df 100644 --- a/tcg/mips/tcg-target-con-str.h +++ b/tcg/mips/tcg-target-con-str.h @@ -19,4 +19,3 @@ CONST('J', TCG_CT_CONST_S16) CONST('K', TCG_CT_CONST_P2M1) CONST('N', TCG_CT_CONST_N16) CONST('W', TCG_CT_CONST_WSZ) -CONST('Z', TCG_CT_CONST_ZERO) diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index 14b3cb1eba..f8c105ba37 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -184,12 +184,11 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, g_assert_not_reached(); } -#define TCG_CT_CONST_ZERO 0x100 -#define TCG_CT_CONST_U16 0x200 /* Unsigned 16-bit: 0 - 0xffff. */ -#define TCG_CT_CONST_S16 0x400 /* Signed 16-bit: -32768 - 32767 */ -#define TCG_CT_CONST_P2M1 0x800 /* Power of 2 minus 1. */ -#define TCG_CT_CONST_N16 0x1000 /* "Negatable" 16-bit: -32767 - 32767 */ -#define TCG_CT_CONST_WSZ 0x2000 /* word size */ +#define TCG_CT_CONST_U16 0x100 /* Unsigned 16-bit: 0 - 0xffff. */ +#define TCG_CT_CONST_S16 0x200 /* Signed 16-bit: -32768 - 32767 */ +#define TCG_CT_CONST_P2M1 0x400 /* Power of 2 minus 1. */ +#define TCG_CT_CONST_N16 0x800 /* "Negatable" 16-bit: -32767 - 32767 */ +#define TCG_CT_CONST_WSZ 0x1000 /* word size */ #define ALL_GENERAL_REGS 0xffffffffu @@ -204,8 +203,6 @@ static bool tcg_target_const_match(int64_t val, int ct, { if (ct & TCG_CT_CONST) { return 1; - } else if ((ct & TCG_CT_CONST_ZERO) && val == 0) { - return 1; } else if ((ct & TCG_CT_CONST_U16) && val == (uint16_t)val) { return 1; } else if ((ct & TCG_CT_CONST_S16) && val == (int16_t)val) { @@ -1666,11 +1663,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, TCGArg a0, a1, a2; int c2; - /* - * Note that many operands use the constraint set "rZ". - * We make use of the fact that 0 is the ZERO register, - * and hence such cases need not check for const_args. - */ a0 = args[0]; a1 = args[1]; a2 = args[2]; @@ -2181,14 +2173,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st16_i64: case INDEX_op_st32_i64: case INDEX_op_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_add_i32: case INDEX_op_add_i64: return C_O1_I2(r, r, rJ); case INDEX_op_sub_i32: case INDEX_op_sub_i64: - return C_O1_I2(r, rZ, rN); + return C_O1_I2(r, rz, rN); case INDEX_op_mul_i32: case INDEX_op_mulsh_i32: case INDEX_op_muluh_i32: @@ -2207,7 +2199,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_remu_i64: case INDEX_op_nor_i64: case INDEX_op_setcond_i64: - return C_O1_I2(r, rZ, rZ); + return C_O1_I2(r, rz, rz); case INDEX_op_muls2_i32: case INDEX_op_mulu2_i32: case INDEX_op_muls2_i64: @@ -2234,35 +2226,35 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) return C_O1_I2(r, r, ri); case INDEX_op_clz_i32: case INDEX_op_clz_i64: - return C_O1_I2(r, r, rWZ); + return C_O1_I2(r, r, rzW); case INDEX_op_deposit_i32: case INDEX_op_deposit_i64: - return C_O1_I2(r, 0, rZ); + return C_O1_I2(r, 0, rz); case INDEX_op_brcond_i32: case INDEX_op_brcond_i64: - return C_O0_I2(rZ, rZ); + return C_O0_I2(rz, rz); case INDEX_op_movcond_i32: case INDEX_op_movcond_i64: return (use_mips32r6_instructions - ? C_O1_I4(r, rZ, rZ, rZ, rZ) - : C_O1_I4(r, rZ, rZ, rZ, 0)); + ? C_O1_I4(r, rz, rz, rz, rz) + : C_O1_I4(r, rz, rz, rz, 0)); case INDEX_op_add2_i32: case INDEX_op_sub2_i32: - return C_O2_I4(r, r, rZ, rZ, rN, rN); + return C_O2_I4(r, r, rz, rz, rN, rN); case INDEX_op_setcond2_i32: - return C_O1_I4(r, rZ, rZ, rZ, rZ); + return C_O1_I4(r, rz, rz, rz, rz); case INDEX_op_brcond2_i32: - return C_O0_I4(rZ, rZ, rZ, rZ); + return C_O0_I4(rz, rz, rz, rz); case INDEX_op_qemu_ld_i32: return C_O1_I1(r, r); case INDEX_op_qemu_st_i32: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_qemu_ld_i64: return TCG_TARGET_REG_BITS == 64 ? C_O1_I1(r, r) : C_O2_I1(r, r, r); case INDEX_op_qemu_st_i64: - return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(rZ, r) : C_O0_I3(rZ, rZ, r); + return TCG_TARGET_REG_BITS == 64 ? C_O0_I2(rz, r) : C_O0_I3(rz, rz, r); default: return C_NotImplemented; From patchwork Sun Feb 16 00:01:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865529 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519928wri; Sat, 15 Feb 2025 16:04:39 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXe977WqEOuuLiAAdud5TXXzvweaUmtn7X2AKIwkX6rmuJ1IjwBlMlfatsrafDuzDs1AUqq/g==@linaro.org X-Google-Smtp-Source: AGHT+IEOB80LF1xscLRzX0f+61e/N1b8WbYhF9P0GdkzjFTZnBtgVSTEtYmDHONkbkmz5+ReLVMW X-Received: by 2002:a05:620a:444b:b0:7c0:82cb:f430 with SMTP id af79cd13be357-7c08a9ce7bdmr595908085a.27.1739664279419; Sat, 15 Feb 2025 16:04:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664279; cv=none; d=google.com; s=arc-20240605; b=QlJAuM3R/R7AeWP77PGL/olQwt8JCTCV72uwVH7fNzZ1KrcR7ygFaEOcF79tEyBcaC 3MBArElw2HZ5mb0o1st2VTCFBVa6odzyf/vfjKJgfAI3oWeuFema/c9zuRcXd53HH42f BjdKPBUkQl3+44wXuaNmccNtutbyOtqQ+YpzwD/EBMXUI383pOniX7ygDAaLAKA9mk1l 7WoQiJRlg8jTpLrU0AhYgAbgI200UmayCz5MDkK8UiDZfN0gwSnuAWrDIP0vOn2XIEzD 0z94JU7UnsxgSdOplBRR4juZhuA+objF4S4mhTGxNfC1BpRuYkNK8JCRzdUtIaiCdpR1 6hMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dPHXMTVD2Fm2wK5XqhrhS+/8+R7tQQXD2orYSrUxi/8=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=LXP34mu31q6axCgMjyEm3tYP0ow8uoEICAkDpmZL+yV/JACmyK2Znj2xqWaNmkbzoi aP7c/UndcGDEARkH3rKUr7ceCk9b3UTWGiLvY8s6TfiVNrAi5JoUjI+1zJfy5mhPqVT8 /jYfWEarPoMT2DC+mAZjLDTJNknOjSjmSaVq9Oym1bepjbRszqqrN8/8zuQaavxCqBiJ +UfUR9VtABzFbXXXoWz+p7zw/7lodCEj19lue0FZgMQPuNpd8H7czR7VywtW8GO9aCZ3 JORiQpOeIbxfKVIBvg6nal8rJaJECsDERIG9vScFLTei6pnG006Wlxgm968RLfkR3FDH Llyg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SSliZYsm; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c623c26si613626285a.77.2025.02.15.16.04.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:04:39 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SSliZYsm; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6M-0007gN-RT; Sat, 15 Feb 2025 19:01:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6K-0007eG-2A for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:36 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6A-0006Hi-7f for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-2fbf77b2b64so6026765a91.2 for ; Sat, 15 Feb 2025 16:01:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664085; x=1740268885; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dPHXMTVD2Fm2wK5XqhrhS+/8+R7tQQXD2orYSrUxi/8=; b=SSliZYsm4PpgsrT2Ct9OnDb8QexRroBjEqlbyHBNkLo412um7oUXwMg4a60KfcQ9Bg g/KBW5YZRKBNsrzTDZPes0k4oYY3EI5aIIRSIvAvjFBDqEawEGowSmW4MssCj4jRZMKs 9kBsA/ypAYL9Z4OlASOLYASAbfeBCagmJ3E75lGNemCuLsgLPhICAE+2KAj3iPIYPwtu WlDNMIle15tZLFZQ+o3fgCTPAKRF287S3+A3ZGxF4GzHdp71J12ZFWKjqHB/48SNEu/Q tTuJ407OmF0bFxXxmgDrlUnu4zjevuX78OqSS0a2wB2l58xrl1o5i4vtrhWX9YaRV9HC JCpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664085; x=1740268885; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dPHXMTVD2Fm2wK5XqhrhS+/8+R7tQQXD2orYSrUxi/8=; b=fRNMVGW5LA1ooDIbl+6qK6UL8bF/eTfG9/8Ed22nOEiMPXMGquBbPVullOFVgV0Ivq lKmo5lXuFycKrVlgB3iqKbHiMpFjfHLee+FEH5NTx/BOu2wVu4IamHzhbhLc6qa23+wR iduU1LOQT0dZemONpTDLZXkpy6nxN9NZbJ1Ckgrp6QPvjVogcevPg/aX0vvT9AuVr6WD /nwvgVnr3iTXVHT8fC2WlmPO2qN9fK24M5lJwOpBiUuPLTrstclqFAw9wOdvGM5fHB+L VYMRfasroS8XRCOjZ5Z5A2vvKwum3ADWTl2TRyoulSGMFpS6orduNmixn5wC8aCx2uq1 WzWg== X-Gm-Message-State: AOJu0YwvskuYq5UU36a6eXsG5HgUekLMFUt/d7RZzpqAh8toI8V0NpuJ ggt9RpUgFGL3zapEPWcngJ6uVZhxsaGemh+Fdh17N3bygqNoyEGkwEiGA4E9fItQtNKq0jdey6i c X-Gm-Gg: ASbGnct98sHqA+1mIstuzKwrKVQrFTcgheZeYOiMAQPo+3+woswYOo8kJ0s1LXekVL9 jUcsRKFjBWYqMlhsj8Ca7fVZ6T6C/ml4zOdJjqQlFdBwLlkQUmHhhzq6oLQV943WEzqTrgv+I6i OOmnRFN4HDQb2kqmQvFkPoyzV6LdiitQ424uqTZ2igf2q9xMexf1IlliB4M2ce6j5FKsKOpUr/P rQRNq+nm61rEGMeO8B6HS5B2bVFHFvJTTfjNaytXXVNHOpYoWk5NZx00DfXSUSeMBRnndBzYF36 xC7JlO6eMMGJ4W4uHyP69VSFPx6UfkqPYCbVo50XODWT5DI= X-Received: by 2002:a17:90b:1e0e:b0:2ee:8427:4b02 with SMTP id 98e67ed59e1d1-2fc41049fbfmr6744070a91.28.1739664084884; Sat, 15 Feb 2025 16:01:24 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:24 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 18/24] tcg/riscv: Use 'z' constraint Date: Sat, 15 Feb 2025 16:01:02 -0800 Message-ID: <20250216000109.2606518-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Replace target-specific 'Z' with generic 'z'. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/riscv/tcg-target-con-set.h | 10 +++++----- tcg/riscv/tcg-target-con-str.h | 1 - tcg/riscv/tcg-target.c.inc | 28 ++++++++++++---------------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/tcg/riscv/tcg-target-con-set.h b/tcg/riscv/tcg-target-con-set.h index 3c4ef44eb0..e92e815491 100644 --- a/tcg/riscv/tcg-target-con-set.h +++ b/tcg/riscv/tcg-target-con-set.h @@ -10,17 +10,17 @@ * tcg-target-con-str.h; the constraint combination is inclusive or. */ C_O0_I1(r) -C_O0_I2(rZ, r) -C_O0_I2(rZ, rZ) +C_O0_I2(rz, r) +C_O0_I2(rz, rz) C_O1_I1(r, r) C_O1_I2(r, r, ri) C_O1_I2(r, r, rI) C_O1_I2(r, r, rJ) -C_O1_I2(r, rZ, rN) -C_O1_I2(r, rZ, rZ) +C_O1_I2(r, rz, rN) +C_O1_I2(r, rz, rz) C_N1_I2(r, r, rM) C_O1_I4(r, r, rI, rM, rM) -C_O2_I4(r, r, rZ, rZ, rM, rM) +C_O2_I4(r, r, rz, rz, rM, rM) C_O0_I2(v, r) C_O1_I1(v, r) C_O1_I1(v, v) diff --git a/tcg/riscv/tcg-target-con-str.h b/tcg/riscv/tcg-target-con-str.h index 089efe96ca..2f9700638c 100644 --- a/tcg/riscv/tcg-target-con-str.h +++ b/tcg/riscv/tcg-target-con-str.h @@ -21,4 +21,3 @@ CONST('K', TCG_CT_CONST_S5) CONST('L', TCG_CT_CONST_CMP_VI) CONST('N', TCG_CT_CONST_N12) CONST('M', TCG_CT_CONST_M12) -CONST('Z', TCG_CT_CONST_ZERO) diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 689fbea0df..f7e1ca5a56 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -112,13 +112,12 @@ static TCGReg tcg_target_call_oarg_reg(TCGCallReturnKind kind, int slot) return TCG_REG_A0 + slot; } -#define TCG_CT_CONST_ZERO 0x100 -#define TCG_CT_CONST_S12 0x200 -#define TCG_CT_CONST_N12 0x400 -#define TCG_CT_CONST_M12 0x800 -#define TCG_CT_CONST_J12 0x1000 -#define TCG_CT_CONST_S5 0x2000 -#define TCG_CT_CONST_CMP_VI 0x4000 +#define TCG_CT_CONST_S12 0x100 +#define TCG_CT_CONST_N12 0x200 +#define TCG_CT_CONST_M12 0x400 +#define TCG_CT_CONST_J12 0x800 +#define TCG_CT_CONST_S5 0x1000 +#define TCG_CT_CONST_CMP_VI 0x2000 #define ALL_GENERAL_REGS MAKE_64BIT_MASK(0, 32) #define ALL_VECTOR_REGS MAKE_64BIT_MASK(32, 32) @@ -391,9 +390,6 @@ static bool tcg_target_const_match(int64_t val, int ct, if (ct & TCG_CT_CONST) { return 1; } - if ((ct & TCG_CT_CONST_ZERO) && val == 0) { - return 1; - } if (type >= TCG_TYPE_V64) { /* Val is replicated by VECE; extract the highest element. */ val >>= (-8 << vece) & 63; @@ -2681,7 +2677,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st16_i64: case INDEX_op_st32_i64: case INDEX_op_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_add_i32: case INDEX_op_and_i32: @@ -2707,7 +2703,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_sub_i32: case INDEX_op_sub_i64: - return C_O1_I2(r, rZ, rN); + return C_O1_I2(r, rz, rN); case INDEX_op_mul_i32: case INDEX_op_mulsh_i32: @@ -2723,7 +2719,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_divu_i64: case INDEX_op_rem_i64: case INDEX_op_remu_i64: - return C_O1_I2(r, rZ, rZ); + return C_O1_I2(r, rz, rz); case INDEX_op_shl_i32: case INDEX_op_shr_i32: @@ -2745,7 +2741,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_brcond_i32: case INDEX_op_brcond_i64: - return C_O0_I2(rZ, rZ); + return C_O0_I2(rz, rz); case INDEX_op_movcond_i32: case INDEX_op_movcond_i64: @@ -2755,14 +2751,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_add2_i64: case INDEX_op_sub2_i32: case INDEX_op_sub2_i64: - return C_O2_I4(r, r, rZ, rZ, rM, rM); + return C_O2_I4(r, r, rz, rz, rM, rM); case INDEX_op_qemu_ld_i32: case INDEX_op_qemu_ld_i64: return C_O1_I1(r, r); case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_st_vec: return C_O0_I2(v, r); From patchwork Sun Feb 16 00:01:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865536 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520980wri; Sat, 15 Feb 2025 16:08:33 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU56APSQZZTnhxmNnsAZwM0oIcT3p9yaTpj0BZ5bdPNBxUDU91m8NhDhKCPhtjhv8m3nmrnNQ==@linaro.org X-Google-Smtp-Source: AGHT+IE0V5dLehi4WhGmJHN/+6rPlWMyZOqf/RWzplTXjP2FhfhzO8/90zRk3meqRDCF/EcX7BCK X-Received: by 2002:ac8:5ad0:0:b0:471:bf59:5f9e with SMTP id d75a77b69052e-471dbcc95d4mr47968571cf.7.1739664512785; Sat, 15 Feb 2025 16:08:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664512; cv=none; d=google.com; s=arc-20240605; b=lezdfL8luH+esgZ0Kx7qIe1j9jyBUGcC6kKQfPsewpMqXKrQI2tg9iAvn5hBACP6MZ bvptIZpLvTrBUsu+BAnGPIDVV0i8K+mMo2vMkJnPfvGX1mOZ30DhoGZg2OOq0nuq0EEd 0PDR8IVypo9C3p38hl1YispkEfs1l7w4vT3U9crv9ySa0tkkSKBAKctwBS4VFSgRfSjl f/mgwlUx6DT4zXyiAlLwlXqpjnABNV56Eg9/hfDqFuJZ3LUEISvAaBp2Foxp20xKA6RR sftwSv04ZpZFoGWDq7JwnVmiyeWQI7BzNguHy1WSpFgHA5V6lOpA9j9TfrhF/aJznw0Z nx+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ArewPxzX2L3g8+NIrXN+9y4T1awyV4Vx9ORorXETkQs=; fh=kQadAhxV42GJ3cd2VUw1RyURv/zJQGvmUdF7iLEVTtc=; b=REQ1JVgXG4FlsHC/Nk90pZKlESq1tGTqDCiPTLxJBisQrzH3qJYKDT/gXtD78JMd2u CO/oB6T4J7z1wbJ1T5I3syf8vTZL6RqH3GuO1vdrH+/vtX/RMTG4LSurNPLwqiVfUCJi 0twqd5nV3xK8Jjk0NiVznwTPEwzKywDv1mrvsaRc4mX+sb4SdXFie89cGjGTa5lGRcn6 qFolz8pmw1XOtNPcWnZzsYHNlVUCiV9hYjdi9CJaGZ2I5oXk2Kzp+KxPPNYsRO6KnelP YweAFXUI0tCwvCkWsutCmut9n1WM18gPBveIwM6n4zHnHD6t57fIix9VQONYpAW28p2A JFVw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kPUSOGRx; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c2b601f4si60440751cf.530.2025.02.15.16.08.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:08:32 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kPUSOGRx; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007mI-VG; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6K-0007eY-5n for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:36 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6B-0006Hr-Ow for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-220c665ef4cso48861225ad.3 for ; Sat, 15 Feb 2025 16:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664086; x=1740268886; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ArewPxzX2L3g8+NIrXN+9y4T1awyV4Vx9ORorXETkQs=; b=kPUSOGRxGNhMkyGdJlq5lElnWpmdGLVho7flvtsJoIsf6CEQun5yS5DizUE1yB4yvU zAhF/HcjRyx+NSAf01E3YVYpK8tD/LKbsJSh6mW/hykeH5iAQtwvh5hM3fDDEcpxviCN 72Rsr2bt9640aqcEWiB9LC9cMx764AdgPicwnt5iJCHdwsZuYbTUV76fL0cd7HiONPkU kzQug9Ap6hT/5qqwYFUgoz9huAzKmu9r8ZmMeYoAQLUw0RdHioipYgwE9N0AJkh6yI74 94pyY6DdcL6gt5u8Zr2GJBzyXwmgXkH3JE9ooig4Q0trNUSpFjnlSCgG9exz98gv4HlF mh4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664086; x=1740268886; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ArewPxzX2L3g8+NIrXN+9y4T1awyV4Vx9ORorXETkQs=; b=PIB0NNc9wgG69osAz3KRopq4a8izSno9qwEZRkOuIs4YyjJ+wUCzpInjEKoeEvk/fn ru+wHjPexqurYvHeZU2kiNLzSjr3sfYXMJwtCGtzzO9/wbSLPCvAua9NBYJpl47irU45 zm3q0CTImh3h1139YDAyGjS4LCpviA/u2goWW4SRWXZ5u1+Gf39e6oWUPa1Eg2d9GOU/ gyw1YbV4/PHi4bhEtSsVY4mpmAiYISYDEAPps7zrW+9xDoqLHD4GqBhJQrrHm0oO/dnC P0aKhMrlwXzvFtGlxvxbkZykcpLUs0EehWghiL1/m6Sv4+zEEROxazZ4k0ezVXjIJIyo pv5A== X-Gm-Message-State: AOJu0YzIxYUZqNGcPAoF7x8okAXdj0HuXRvcH5Y3GB7rfYCRb2y8I/22 LuaYv2UWD3CQTw9++Blz1toNJfo9DJsMiHBzCVgYVVx2JEn9yJK8PGrhk1uEGY9En7FlPly+Bf5 M X-Gm-Gg: ASbGncvt4s6M/rqbAsUWaEHNoBm7eWWg9ObAbSSFYRTPr7OT2M7aISlyihPrdsjpxPV 1xZo892GmRFQO4B28Yt+r98P+qTpshp6kQR1AgXWy9mLh1Yez2XrU0blSTNNDxMMaCMvzyssVHB ss/n8fb2uLNksFgQhFMwoiiIuFfuIF908YCBWppnhZ69UXXuflHNvgBR+5Bgx9ouWZLks7SA1Tf eIpqcEAYwqxUo1JpJJyVawvt5e4CrA9HOPdwLuvUDQDJcss2q98Cpclr0cTdF+kKKrzOIoF6iND YvVdgIvmGHfn6wvvtFmqw0dpQ196Rxm5I1bvhQFYV8yR2o0= X-Received: by 2002:a17:902:ce82:b0:216:725c:a137 with SMTP id d9443c01a7336-2210405a4c5mr71024615ad.28.1739664085561; Sat, 15 Feb 2025 16:01:25 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:25 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 19/24] tcg/sparc64: Use 'z' constraint Date: Sat, 15 Feb 2025 16:01:03 -0800 Message-ID: <20250216000109.2606518-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Replace target-specific 'Z' with generic 'z'. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- tcg/sparc64/tcg-target-con-set.h | 12 ++++++------ tcg/sparc64/tcg-target-con-str.h | 1 - tcg/sparc64/tcg-target.c.inc | 17 +++++++---------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/tcg/sparc64/tcg-target-con-set.h b/tcg/sparc64/tcg-target-con-set.h index 434bf25072..61f9fa3d9f 100644 --- a/tcg/sparc64/tcg-target-con-set.h +++ b/tcg/sparc64/tcg-target-con-set.h @@ -10,11 +10,11 @@ * tcg-target-con-str.h; the constraint combination is inclusive or. */ C_O0_I1(r) -C_O0_I2(rZ, r) -C_O0_I2(rZ, rJ) +C_O0_I2(rz, r) +C_O0_I2(rz, rJ) C_O1_I1(r, r) C_O1_I2(r, r, r) -C_O1_I2(r, rZ, rJ) -C_O1_I4(r, rZ, rJ, rI, 0) -C_O2_I2(r, r, rZ, rJ) -C_O2_I4(r, r, rZ, rZ, rJ, rJ) +C_O1_I2(r, rz, rJ) +C_O1_I4(r, rz, rJ, rI, 0) +C_O2_I2(r, r, rz, rJ) +C_O2_I4(r, r, rz, rz, rJ, rJ) diff --git a/tcg/sparc64/tcg-target-con-str.h b/tcg/sparc64/tcg-target-con-str.h index 0577ec4942..2f033b3ac2 100644 --- a/tcg/sparc64/tcg-target-con-str.h +++ b/tcg/sparc64/tcg-target-con-str.h @@ -16,4 +16,3 @@ REGS('r', ALL_GENERAL_REGS) */ CONST('I', TCG_CT_CONST_S11) CONST('J', TCG_CT_CONST_S13) -CONST('Z', TCG_CT_CONST_ZERO) diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc index 527af5665d..7c722f59a8 100644 --- a/tcg/sparc64/tcg-target.c.inc +++ b/tcg/sparc64/tcg-target.c.inc @@ -76,7 +76,6 @@ static const char * const tcg_target_reg_names[TCG_TARGET_NB_REGS] = { #define TCG_CT_CONST_S11 0x100 #define TCG_CT_CONST_S13 0x200 -#define TCG_CT_CONST_ZERO 0x400 #define ALL_GENERAL_REGS MAKE_64BIT_MASK(0, 32) @@ -340,9 +339,7 @@ static bool tcg_target_const_match(int64_t val, int ct, val = (int32_t)val; } - if ((ct & TCG_CT_CONST_ZERO) && val == 0) { - return 1; - } else if ((ct & TCG_CT_CONST_S11) && check_fit_tl(val, 11)) { + if ((ct & TCG_CT_CONST_S11) && check_fit_tl(val, 11)) { return 1; } else if ((ct & TCG_CT_CONST_S13) && check_fit_tl(val, 13)) { return 1; @@ -1579,7 +1576,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_st_i64: case INDEX_op_qemu_st_i32: case INDEX_op_qemu_st_i64: - return C_O0_I2(rZ, r); + return C_O0_I2(rz, r); case INDEX_op_add_i32: case INDEX_op_add_i64: @@ -1611,22 +1608,22 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) case INDEX_op_setcond_i64: case INDEX_op_negsetcond_i32: case INDEX_op_negsetcond_i64: - return C_O1_I2(r, rZ, rJ); + return C_O1_I2(r, rz, rJ); case INDEX_op_brcond_i32: case INDEX_op_brcond_i64: - return C_O0_I2(rZ, rJ); + return C_O0_I2(rz, rJ); case INDEX_op_movcond_i32: case INDEX_op_movcond_i64: - return C_O1_I4(r, rZ, rJ, rI, 0); + return C_O1_I4(r, rz, rJ, rI, 0); case INDEX_op_add2_i32: case INDEX_op_add2_i64: case INDEX_op_sub2_i32: case INDEX_op_sub2_i64: - return C_O2_I4(r, r, rZ, rZ, rJ, rJ); + return C_O2_I4(r, r, rz, rz, rJ, rJ); case INDEX_op_mulu2_i32: case INDEX_op_muls2_i32: - return C_O2_I2(r, r, rZ, rJ); + return C_O2_I2(r, r, rz, rJ); case INDEX_op_muluh_i64: return C_O1_I2(r, r, r); From patchwork Sun Feb 16 00:01:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865517 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519238wri; Sat, 15 Feb 2025 16:02:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU0jlK1MVdgNXdDsDlUi4ClGr3rQxVTulLUJ2NnxrJG/uZflKvlSFXz/3eGEIaOh7Pe9MTRog==@linaro.org X-Google-Smtp-Source: AGHT+IFX//caLd21zVCG6e02USF0GPOpsy1Um/k/ufTXiVzRBTgiBwNK2thFSprf9t5wWfKCR6AS X-Received: by 2002:a05:622a:1b27:b0:471:8e90:dd5a with SMTP id d75a77b69052e-471dbe7e7afmr77597511cf.32.1739664140108; Sat, 15 Feb 2025 16:02:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664140; cv=none; d=google.com; s=arc-20240605; b=QNRctyO8U/XxwyTgXy53JFE9aWiygIUiAJI9Mrxn8wirD5fNh4gLw0OW+jnSjjVZd/ w0pq5d7mud8UqhcI2/4NphVupfTvQnwnzcf7ylH4YHvIZN+4/Q96nxcqBkTfkUzANzqx 3xyEakl9LoOfNyAk77mj/oe/fHfwX5fgPbwfWNd2mI5EYxsS/0clBMCF0L0G2li+fs9E oaYGzBgV6x0r9+sTtKfY7e4GUcXDIU2CbyfecOae58kli6lBWnwJLzPwLd9uX+ymTCzJ LNqaF05UF5eCaCGIi1DGzwk6sBgp5JohCG27rVDORYgTjh6n6tGI72ksny3XgymWIpuG dnsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CLskJS7NaQB4gx7iCFIleGp2eUUyNj3sDlYnjboU4bU=; fh=MhBxCvw5uELj28Ok7GB965Ny6sY/xXt4upOZnSimWaE=; b=OEIj+kxmLN2j+H2TmlsxwYGp3NeHML0/D7PDHr9kC9ejozDcJOjAbRbnMGIbKVb3xV WgmJ37qF5WZKOUQOdbSIfSHnpGtA1BZtZo0cLQyoCo6Fl/FsBCB8dnSE74EKJhvnjhlt 1EacS4cF9YyUisFwMFfu+SAa2HPJq4aqG6K2sP1kCu6z17jh49GW//V/3nB/JSRaJbNG 5sW+fFRN/Lf9rD+abuj8Rhr2bxlpRJ/TeM0RZBiRjjx1WaY542QlsTDY8QHf7f8Ig9hJ YSzAZag0aN0G5T/znqVSx3vn9cUB09FrKVqrw+mf5FYanWv22ndEwgIpBdSWbK702ofJ 7CrA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jWBv824f; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-471c29ef6d6si60419271cf.10.2025.02.15.16.02.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:02:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jWBv824f; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6T-0007iN-SQ; Sat, 15 Feb 2025 19:01:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6K-0007eZ-6f for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:36 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6G-0006I7-RG for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:35 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-220f4dd756eso30974835ad.3 for ; Sat, 15 Feb 2025 16:01:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664086; x=1740268886; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CLskJS7NaQB4gx7iCFIleGp2eUUyNj3sDlYnjboU4bU=; b=jWBv824fIeNLyTXucb/O1HaH7jFYgwyIbs4ASkkgf9hQz88+IOKCDk9DDKgokd6kw7 tKnkwYY5gAFjx8/O7GkveqztjnSOrgi4sLe/26h7hYLltuyTwwl+4yBrZ0T49pAlFGsB PnXW0pXXzWqE/qU3vja+ZHOrUSzt4wMXYxAA7qsPdaVKiZrwxHCgg0LXJ36FmAlZkP4A 8gUbrfaxVuCe58S/OdXOD1VZItjj29F1xLv+/jDEJXSxBvfaIwFEe8Zsv8kOwcw/+NSI hh/FXmkOY9gDZGcK+pTbmT8dcQL7r63NbirnpRnusDuYRvYF54VV3lIS3JE+OsOitQtz KjPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664086; x=1740268886; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CLskJS7NaQB4gx7iCFIleGp2eUUyNj3sDlYnjboU4bU=; b=BQxwqU8A/1ex5AyjvOcu7y10ORnwJFGROuHlehmCNpeDwdCkqbmQKq4tUA0S6MIFmK sHqPp6bFxVtSx+6AX8GQuY0m/oV6oXJs+OgyeUZWzDFPWewnehi4aKv+BdTXX4eCQdYN 8gQE4xCmgsax+KnVUTsALosnwJ8FgConlNfcyy+hqxw9uQz/o9+plogLAO+hHiq7EkfN hXoeXnNXz/HtedojpxJr3JXyCKdtOyiQ2uOFVGgnml+LZ+2nSofcFnaV+X0lxdzmqjmj 2GgNY2JEijQ2iSVHqTYLBAyJIVbZSWfubR9KQH2gpXAg/YYuutNc56CR2jyGFT5uAaCF 8jRQ== X-Gm-Message-State: AOJu0YykyDyZha4mg31Ke4LhhOwS5bpB6X52D4jdSVfFV7D9CUMzJeVe HFofVbPBU08/2sbs+XTxJhxabmGUaurjBkHV7UFNw5HmwYvlPC0eaZLzb9izQgOBrZNfgQa29CV h X-Gm-Gg: ASbGncuR0O+YkhL3luCbi+7JEXofLixVjhcSS40pVuBUeq5Qa9jvVSB6znSPYKpgKFJ cJ+ykf1l43JOjyFjBqwmJUsAutOVuB0HAwwrW+wV+4C5dI9eTaAqYubaTfG2IMPIL3musJ34f/U OAVLTt02mlH0t81svzV9Uu3h5bf5V+XWHYG+NRfDMG9bdQTuYzSFRzuDV9MyTMMzTAuyVcX6aP+ YWWRmkt6vvy9ra9IG8bHwo3pr/BhHd68QQn19DFqAKwov5Uj74ZZvuI7WHe+OVL7Q6juooaI3yZ 1kgPbk6X9ouOnXHKBvhxAv8d7kboUDWMOWdFysQVWvjCjTM= X-Received: by 2002:a17:902:f64a:b0:21f:6c3:aefb with SMTP id d9443c01a7336-221040bd763mr83141795ad.35.1739664086205; Sat, 15 Feb 2025 16:01:26 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:25 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Fabiano Rosas Subject: [PULL 20/24] elfload: Fix alignment when unmapping excess reservation Date: Sat, 15 Feb 2025 16:01:04 -0800 Message-ID: <20250216000109.2606518-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Fabiano Rosas When complying with the alignment requested in the ELF and unmapping the excess reservation, having align_end not aligned to the guest page causes the unmap to be rejected by the alignment check at target_munmap and later brk adjustments hit an EEXIST. Fix by aligning the start of region to be unmapped. Fixes: c81d1fafa6 ("linux-user: Honor elf alignment when placing images") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1913 Signed-off-by: Fabiano Rosas [rth: Align load_end as well.] Signed-off-by: Richard Henderson Message-ID: <20250213143558.10504-1-farosas@suse.de> --- linux-user/elfload.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index a2c152e5ad..8799e4ea27 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3351,8 +3351,8 @@ static void load_elf_image(const char *image_name, const ImageSource *src, if (align_size != reserve_size) { abi_ulong align_addr = ROUND_UP(load_addr, align); - abi_ulong align_end = align_addr + reserve_size; - abi_ulong load_end = load_addr + align_size; + abi_ulong align_end = TARGET_PAGE_ALIGN(align_addr + reserve_size); + abi_ulong load_end = TARGET_PAGE_ALIGN(load_addr + align_size); if (align_addr != load_addr) { target_munmap(load_addr, align_addr - load_addr); From patchwork Sun Feb 16 00:01:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865542 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp521169wri; Sat, 15 Feb 2025 16:09:18 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXep0SvoPZCiFCXR/WkH3b8SEep3hkzwjpGGPKAzp6fiKXHdWpXy+6DyQNq8YETpmqX/AZkwQ==@linaro.org X-Google-Smtp-Source: AGHT+IHQwjTnNziJ7BiWoIJWRF9bUHLqkC5C6hQ1Q0NAAyLWt4pa0N7X68N+YMA3ftwLN6wBG9Tv X-Received: by 2002:a05:620a:4487:b0:7c0:53c5:ecc with SMTP id af79cd13be357-7c08aab4645mr701069985a.51.1739664558622; Sat, 15 Feb 2025 16:09:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664558; cv=none; d=google.com; s=arc-20240605; b=YRatP+sSps3S6bPIDiT8SN8Tj4vDOM+FWeAsSKwFT4/edfDQ6NTmx+YNQhTy0j0B2E i3ak3f/gDSBA5szW8sFTmL4Ql6wsflPBpWM/DnrIFExglj3ExXrQzukEVhNlte7qTIoG hcsCfq4wAAOWEfjqgpQ1b+uyaEAxAv/kwvG5fsq1AvL78+mr2qCJOFOyRfTIU/iEgVnS lo12uIqcTLnctUkqLTmUa96+nhEycaiWmAuWFulR47+s121FCW3lSb8tHPc2I283kLaB kjXxinjXt9JoCOMV05BCGUT5FulxP2azrQXuY8Y6QjIdePD0FZZV4PtODmrnYifxoRZB I8BA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rHMuLXwDxnjUgeWyF7p2JwNyxJ+JG8MBxC5p4lqjmmU=; fh=IB3WlE9bbmmgtCSkpY8aqI4QYCKoqbha83gT4/CExAQ=; b=I0MRbkd406xQhQiT4d9mPbGi0yMWApz9qcXzAR5phdpNAzt5om5HHVHYDep4KA8eTp b0xzmIdiBzBP0+7zmtrMZqC3bcjCKUKW4kUoOtnetKcKDEUs8KB6PtuRmT3syy0gaW/O ZHK9RZO9y69YNDRfFCc1g/CVeKbYS7fabPkBuF0SkmjV4QYrMuUGktNa+AuvcU39dKz4 ykisEa2mUgXTr9GZbw3LM8C0kPH70I+ZgqszYB5LNWwVOMarjLlaM18NoH5G6qx/88aw VF9V4iy9gU6M1KMNtl54PGMhOzuknfboOwAIoWTqmUmFNopb/2vxadgcXbwFPdSGc51o 7V8Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qrA5O42a; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d9a21c8si60902526d6.178.2025.02.15.16.09.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:09:18 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qrA5O42a; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6d-0007kL-Gk; Sat, 15 Feb 2025 19:01:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6L-0007fh-SC for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 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 1tjS6I-0006IL-5X for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-2fbfa8c73a6so6105073a91.2 for ; Sat, 15 Feb 2025 16:01:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664087; x=1740268887; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rHMuLXwDxnjUgeWyF7p2JwNyxJ+JG8MBxC5p4lqjmmU=; b=qrA5O42a2L2yJmd4NdJIRNq9ZDFnSrmdKPXflGH7CELNLUvgjIKSIgb1uHmaqBQZrn Zqgn+MKfumyCR7oppzY0SPh71cL5DHnnwkJrgUiPa7qx8cCzAaqsj4CQIDPchC4bX0ls VHfUBIQxG98a5RFFyo7DugJFy+xebhGRad0N6gtU3gE5oFM0dq0dTap/bz6Rp4ytP2H7 MrZAu5nlFrDYNChTp+ThvQidOZBsBnpl2f1VxygbvzeXvyyK8MdMWQs/4s2icZ2AZCq5 imGbDbAbRB0Z9/mp8r69ghDJtphOR12u0TOSLXjLym0AT+J4FnRNRQnwOqt7+h7P3kHt y6YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664087; x=1740268887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rHMuLXwDxnjUgeWyF7p2JwNyxJ+JG8MBxC5p4lqjmmU=; b=ewsdW/xJmlyjYC4t5OT9yuwqAonLTHHdjsBKoAXjfDs1D4kuUNN15dGI4Jhq/px8Dd pVTrYWwyP2THSdY4Ng7yjBlo7Lla7SsDpueIntFqYsHRrnxiF3xvCNl8TN3NoundwCFT eI1SYVVhgjlrex362mO76LwGCzzU0TyhhlEfoHpst+h5ssZgvlxE1R6TUJMqjeVkP/Jn ARSaY+ROoXd6NzV+pmN92y3H8p7kgdPNe5PgCyRBhxfHrTxFG3zkqRfNplhqKGfGvZHa 32vYUCiOxUUrjsdacGkCjsbeEJ6LRjSg4IkQYVgmadD0xvZIQS7AHYRFp8ziX9slh/1T Jrlg== X-Gm-Message-State: AOJu0Yw15Nn3QVGh1DR6jG3mn6PelG7wbN6BCWvEhkkjGvhqanPHgaG6 k/XRr3E5cfQh/MkdhscyGrq92Ohjw3hWnHm9ANmGuf00kLEqGTh0k3l/pFwmpki3C6F3ve7vsDn o X-Gm-Gg: ASbGncsAUO9/jNbHvpglqQzB1Fx+Aejot/SpfNiOz1VYYzxs6oHkFRAarx0qG9454E3 zt0RZX0aTa2rnN9XYbc4tDSGZKkmjOGh13jdfyGwKjtpXc/WQGXw9vRCk8jCHzj1Ehx/p4URWpV usFbP0cW0MZiNsiKYuZsE6Wq6e1DhVrohGnks72nU2ktqMoArKzo21rOm22G/2yvFOwQlkRPEkf sO8L38jQx/ALoEAwm7PWeULzmDr9R/5rJV3sBJ297Dk2kxSVURAtJ5H02AmuyXB8AodziLHl8D5 KkqYyWmK2WO0lQOkV/7+zrQLzqPKY5SEczkc/ILp6ulpVlA= X-Received: by 2002:a17:90b:1e02:b0:2ee:c4f2:a76d with SMTP id 98e67ed59e1d1-2fc40f21e2cmr6199252a91.21.1739664086911; Sat, 15 Feb 2025 16:01:26 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:26 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Andreas Schwab , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Subject: [PULL 21/24] linux-user: Move TARGET_SA_RESTORER out of generic/signal.h Date: Sat, 15 Feb 2025 16:01:05 -0800 Message-ID: <20250216000109.2606518-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Andreas Schwab SA_RESTORER and the associated sa_restorer field of struct sigaction are an obsolete feature, not expected to be used by future architectures. They are also absent on RISC-V, LoongArch, Hexagon and OpenRISC, but defined due to their use of generic/signal.h. This leads to corrupted data and out-of-bounds accesses. Move the definition of TARGET_SA_RESTORER out of generic/signal.h into the target_signal.h files that need it. Note that m68k has the sa_restorer field, but does not use it and does not define SA_RESTORER. Reported-by: Thomas Weißschuh Signed-off-by: Andreas Schwab Reviewed-by: Thomas Weißschuh Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: --- linux-user/aarch64/target_signal.h | 2 ++ linux-user/arm/target_signal.h | 2 ++ linux-user/generic/signal.h | 1 - linux-user/i386/target_signal.h | 2 ++ linux-user/m68k/target_signal.h | 1 + linux-user/microblaze/target_signal.h | 2 ++ linux-user/ppc/target_signal.h | 2 ++ linux-user/s390x/target_signal.h | 2 ++ linux-user/sh4/target_signal.h | 2 ++ linux-user/x86_64/target_signal.h | 2 ++ linux-user/xtensa/target_signal.h | 2 ++ 11 files changed, 19 insertions(+), 1 deletion(-) diff --git a/linux-user/aarch64/target_signal.h b/linux-user/aarch64/target_signal.h index 40e399d990..6f66a50bfd 100644 --- a/linux-user/aarch64/target_signal.h +++ b/linux-user/aarch64/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_SEGV_MTEAERR 8 /* Asynchronous ARM MTE error */ #define TARGET_SEGV_MTESERR 9 /* Synchronous ARM MTE exception */ diff --git a/linux-user/arm/target_signal.h b/linux-user/arm/target_signal.h index 0e6351d9f7..ff1810b1fe 100644 --- a/linux-user/arm/target_signal.h +++ b/linux-user/arm/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SETUP_FRAME #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 diff --git a/linux-user/generic/signal.h b/linux-user/generic/signal.h index 6fd05b77bb..b34740258e 100644 --- a/linux-user/generic/signal.h +++ b/linux-user/generic/signal.h @@ -15,7 +15,6 @@ #define TARGET_SA_RESTART 0x10000000 #define TARGET_SA_NODEFER 0x40000000 #define TARGET_SA_RESETHAND 0x80000000 -#define TARGET_SA_RESTORER 0x04000000 #define TARGET_SIGHUP 1 #define TARGET_SIGINT 2 diff --git a/linux-user/i386/target_signal.h b/linux-user/i386/target_signal.h index 9315cba241..eee792ef63 100644 --- a/linux-user/i386/target_signal.h +++ b/linux-user/i386/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SETUP_FRAME #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 diff --git a/linux-user/m68k/target_signal.h b/linux-user/m68k/target_signal.h index 6e0f4b74e3..b05b9303b0 100644 --- a/linux-user/m68k/target_signal.h +++ b/linux-user/m68k/target_signal.h @@ -3,6 +3,7 @@ #include "../generic/signal.h" +#define TARGET_ARCH_HAS_SA_RESTORER 1 #define TARGET_ARCH_HAS_SETUP_FRAME #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 diff --git a/linux-user/microblaze/target_signal.h b/linux-user/microblaze/target_signal.h index 7dc5c45f00..ffe4442213 100644 --- a/linux-user/microblaze/target_signal.h +++ b/linux-user/microblaze/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 #endif /* MICROBLAZE_TARGET_SIGNAL_H */ diff --git a/linux-user/ppc/target_signal.h b/linux-user/ppc/target_signal.h index 5be24e152b..53fae473f3 100644 --- a/linux-user/ppc/target_signal.h +++ b/linux-user/ppc/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #if !defined(TARGET_PPC64) #define TARGET_ARCH_HAS_SETUP_FRAME #endif diff --git a/linux-user/s390x/target_signal.h b/linux-user/s390x/target_signal.h index 41e0e34a55..738e0673f4 100644 --- a/linux-user/s390x/target_signal.h +++ b/linux-user/s390x/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SETUP_FRAME #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 diff --git a/linux-user/sh4/target_signal.h b/linux-user/sh4/target_signal.h index eee6a1a7cd..0bde417fd1 100644 --- a/linux-user/sh4/target_signal.h +++ b/linux-user/sh4/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SETUP_FRAME #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 diff --git a/linux-user/x86_64/target_signal.h b/linux-user/x86_64/target_signal.h index 9d9717406f..0af100c661 100644 --- a/linux-user/x86_64/target_signal.h +++ b/linux-user/x86_64/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + /* For x86_64, use of SA_RESTORER is mandatory. */ #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0 diff --git a/linux-user/xtensa/target_signal.h b/linux-user/xtensa/target_signal.h index e4b1bea5cb..8a198bf8ac 100644 --- a/linux-user/xtensa/target_signal.h +++ b/linux-user/xtensa/target_signal.h @@ -3,6 +3,8 @@ #include "../generic/signal.h" +#define TARGET_SA_RESTORER 0x04000000 + #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 #endif From patchwork Sun Feb 16 00:01:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865522 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp519552wri; Sat, 15 Feb 2025 16:03:19 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWbT11XOLJr77tR0NvDqJ0G0yGIZNpGDroBcW1FUSbGiz9PavnZgePYVFb3lxrs/fwDliePvg==@linaro.org X-Google-Smtp-Source: AGHT+IHJkVaYxBjICimCcOMvd7XZlrHNv4uUSTwS0pczhpcCMzAPFkTu67teUfBtxokZDk4uxmCv X-Received: by 2002:ad4:5d4b:0:b0:6e6:6686:afcf with SMTP id 6a1803df08f44-6e66cc7fde8mr71729626d6.4.1739664199464; Sat, 15 Feb 2025 16:03:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664199; cv=none; d=google.com; s=arc-20240605; b=JzWj7bCLy416vZLC0pMuOOZhLc9KzS8mWhWv3xrP3Ikk/7GBf4SIKAwMTGbh9j7sB7 /CW+TP+AQLLbgo+HugI1gYAcxiw5g+dN2t+wPhg7I0sNao0PWPdxNYQ3af+VP9oKhR9y KMugdmDZzr4o5Vk3RdEeErO97M4vfIxZJrDYw67pxejEQJ9M3lnQu4C0TKAH1hv03b98 /y4rml9wJUY90+0UUkDyiZWJ2p18vfoPrOyz78PTT4AmPZ81Um3TAxP1CIOL/NveLq6R x2DROaIkCy3FVc4ORySNpErZM6T8QjVDzVlnQtttxaavQ1wsGcPs8WMstX6PYkWGSjX3 ZiyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rukBaoFAhTzDmJvULpWTGzngQp4v55URg/psH7yIqjg=; fh=xwRBlt4L563sUy1Alik2dsv73Z4i7YBtYiE06SUifN0=; b=k5iHvlbtUva1uqo6v4Gb/mLtlx5WPXc665L2mbqP4PiNWk1B8/U+cHCfn9Lc7l9RcK bKzL73W7jX58WFgjRK60oZjgdNhNNvdRCoTP0+CgzfBFEeDcM6UMynrCksJE8ENve7N9 n1Mdz8gTItKvL24LkZQgNxtNDFjmQ2VtRmFD39ddL3GbjcRvA8mm1DOYgzetz/QhZ6GH d0aHry0AHYU7Z+FZXTUZvjKrND2/N3XTUfnB+thEjrod5C1Ll7kdFwXK8vtEaYvVlDmN 5lqOiFiy/HWDzk7FfU4HZc8PuWC8JwzMk8dpKUuCQ/sBU4ANUjTi8CKJnslegjIMK28K mAaw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=akkxytO3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d733d96si60996966d6.90.2025.02.15.16.03.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:03:19 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=akkxytO3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS70-0008DO-M9; Sat, 15 Feb 2025 19:02:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6N-0007gZ-8r for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:41 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0006IT-Te for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:39 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-220c8cf98bbso65732745ad.1 for ; Sat, 15 Feb 2025 16:01:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664087; x=1740268887; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rukBaoFAhTzDmJvULpWTGzngQp4v55URg/psH7yIqjg=; b=akkxytO360qN3nPUhn8V84Aq7NiuZewAXV9gJBgGzhQscQPVfy1FUX4Jyq2dMfxjpi kDSkqKLCAfz7ct+ovysCHBbhexj1zoMtxIueYx7OPnsJn1bcJHzOKAn67raMgT52GZaD C4QnbszIHVqwMdJ63YqSud1gTYQ4z4DbSInsyM4247JdKPuXSM5gwbWXNJC1LdB5BMwL oHYCsE3VpyM0uTd9vSVAmSXMri0WKeTUAFoHUSk78GMsHObbprS32snbRAiRSpy2E65N 0yt4uMWJ//jFRJAO4ODYolLEEonSRS9OyBM0zhVHWCmLtJfxWP27QnZQ5Yw8mdOgMw8L 2g/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664087; x=1740268887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rukBaoFAhTzDmJvULpWTGzngQp4v55URg/psH7yIqjg=; b=Gnc08yBnf+a+vsRx8OrRcQfFwQVkVriqOtBhyjjrRgN1atQffTX3Fp/yM2jaN2XWEW wYQLhbD6HTec8SI0PKP9M/2NUg1/4yr2qh8H8hRkAdaLjJvVq9BgBLDgm0CykF9RUP7D npLP776g29SUprYDR1itoT4xALr91txHNT9r6zR65iSzxUb5bADaGkR8VatZzj1dBuCG 1JPMSehr1QCY0s1EPtADf0AKeb/cFBknHhHJE99LA4kFej8WCQ9nJLhaNIcXFV/AIZgH RdqKIVgh+E2bQZzuA/x1ZrYDsqp3OuA25GZhC3Sm1zAot+00jJXTJybGqQqKo8Lr4niW u0uQ== X-Gm-Message-State: AOJu0YycWqJq6KT1vIotietCOvM6suKPhyWS4FF9AX1E+RHXGtzL1AGf t6W9N4t8sRLnaMDjdgA1pOyqc6ZjO/s/MkFvP11yqqfDn6dc0eX2zSZvm5lnXoYLV5QrjoZyXRt l X-Gm-Gg: ASbGncv19CtT7Ym1s/tRDwHZtnYisrUB7eLB1mS2me6UttBpLvIgcVilB6w54TbMu5b STwRY91SvnVp4odk45WHXtDFI/t+z2uuBEiOHz8cguDPTVqLZiwbs6p7GfKdXfsVDwybCLPnWPt SYtA75YsaJUcmJ6YHaGHaLR88op3xRR6E1FmGIYs0GyVfVtSH8tH2K1d0j0HUY28M8rtrOP5BBw oCw0Qo9f5lrH2pXIO3HimG7JIp/slznB5HSrZMDlHobE8EdUth8RY8twRKR/yX40zxp47Qlwa/B 15y8yC7T5us7tpq4p+SDTBh5+qzE+S59gfm/Ah/iHmICuPI= X-Received: by 2002:a17:902:d58b:b0:21f:dbb:20a6 with SMTP id d9443c01a7336-221040ab935mr82479675ad.33.1739664087560; Sat, 15 Feb 2025 16:01:27 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:27 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mikael Szreder , Artyom Tarasenko Subject: [PULL 22/24] target/sparc: Fix register selection for all F*TOx and FxTO* instructions Date: Sat, 15 Feb 2025 16:01:06 -0800 Message-ID: <20250216000109.2606518-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Mikael Szreder A bug was introduced in commit 0bba7572d40d which causes the fdtox and fqtox instructions to incorrectly select the destination registers. More information and a test program can be found in issue #2802. Fixes: 0bba7572d40d ("target/sparc: Perform DFPREG/QFPREG in decodetree") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2802 Signed-off-by: Mikael Szreder Acked-by: Artyom Tarasenko [rth: Squash patches together, since the second fixes a typo in the first.] Signed-off-by: Richard Henderson Message-ID: <20250205090333.19626-3-git@miszr.win> --- target/sparc/insns.decode | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 989c20b44a..cfcdf6690e 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -321,12 +321,12 @@ FdMULq 10 ..... 110100 ..... 0 0110 1110 ..... @q_d_d FNHADDs 10 ..... 110100 ..... 0 0111 0001 ..... @r_r_r FNHADDd 10 ..... 110100 ..... 0 0111 0010 ..... @d_d_d FNsMULd 10 ..... 110100 ..... 0 0111 1001 ..... @d_r_r -FsTOx 10 ..... 110100 00000 0 1000 0001 ..... @r_r2 -FdTOx 10 ..... 110100 00000 0 1000 0010 ..... @r_d2 -FqTOx 10 ..... 110100 00000 0 1000 0011 ..... @r_q2 -FxTOs 10 ..... 110100 00000 0 1000 0100 ..... @r_r2 -FxTOd 10 ..... 110100 00000 0 1000 1000 ..... @d_r2 -FxTOq 10 ..... 110100 00000 0 1000 1100 ..... @q_r2 +FsTOx 10 ..... 110100 00000 0 1000 0001 ..... @d_r2 +FdTOx 10 ..... 110100 00000 0 1000 0010 ..... @d_d2 +FqTOx 10 ..... 110100 00000 0 1000 0011 ..... @d_q2 +FxTOs 10 ..... 110100 00000 0 1000 0100 ..... @r_d2 +FxTOd 10 ..... 110100 00000 0 1000 1000 ..... @d_d2 +FxTOq 10 ..... 110100 00000 0 1000 1100 ..... @q_d2 FiTOs 10 ..... 110100 00000 0 1100 0100 ..... @r_r2 FdTOs 10 ..... 110100 00000 0 1100 0110 ..... @r_d2 FqTOs 10 ..... 110100 00000 0 1100 0111 ..... @r_q2 From patchwork Sun Feb 16 00:01:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865541 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp521125wri; Sat, 15 Feb 2025 16:09:07 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVlO5Pr5LyF5p0O2yyRSzfKslSD2VzR5iYw9CvYJonfG/358y/alM0PYLefTBeYwRjM6xsvQQ==@linaro.org X-Google-Smtp-Source: AGHT+IG0GiyBBfCpHkeSJcM9+pIgihOVaMMTImO1RqaRJPqltyLowOfiu5F93PAhcvJP558yeYw+ X-Received: by 2002:a05:620a:4096:b0:7c0:5efd:1e2f with SMTP id af79cd13be357-7c08aa729demr681491385a.46.1739664547490; Sat, 15 Feb 2025 16:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664547; cv=none; d=google.com; s=arc-20240605; b=Lm48Qck8mtfkbJGn56y1V59WrxOF0TKCjA1xEt29i3QSon+Ei06c0NGpOQwgqxD3rd xrGp6w+JWfxZUMV9TV8lHbz1CCGSGFZNujwZjmiPawM12effqrxAikXrFNToFzVGLN3O XdMrDQg5tKTIQP2x4bk3ww5EgRabij3Arqfm9FbXFdPj+u7jlwZjr0y7ffrSYzNj47yw wkKxESo5xsl3VD4c656W9bP+QpUSOq/jgVR1+7CCKf0sIqCwizsV222RVeJXhtuxj8MJ snCLR+sLvNZXDmaR9CynNs1IBeouAnMtX7v3co4F2RhKE37UTyM9cFEnZCF9Du5vadXO 4F2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=LTaMzI9FdSjOEy3avv6lC58JclZ0untngvN22ozinnk=; fh=YuClpeWirpPcOeEfR20zKKnll85OCAE9rThloyDtOoE=; b=Zfaxq1ag1VRoBnU9cTo2eErNrfaRq93lf0DsQIPcw8Ytyb2aHn+i14ov/G89sw4QOt duqsF2EkG4bQSLHjLjfFjK2ZzuAfwwMG6GgiRUvNvD7v9K5UHnON3ryNOrfpaoSKg4nj VpFvx6DPCPWkJEJmqdOI45uKXT5POQgY7I3woqsAtXVHWXVSMAiWKqGEPqjESlAI6omJ sOeCLsaTt4Q+LiZ/mQuzw7gESy9s9LReB/gbCVcTcWkD6P0aqTQgQLKebTUgCIopKCdE iCmEhfYQVAZVtMQ3d8hY9UdSZh2AMb0UPPkCfU1XZsAoTN1eJd/kHzpJRsALa8ebvc5+ aSLQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=C7k+ZEMt; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c07c873abasi592045885a.206.2025.02.15.16.09.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:09:07 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=C7k+ZEMt; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007lh-80; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6L-0007fY-SD for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0006Ia-Ne for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-22104c4de96so13180635ad.3 for ; Sat, 15 Feb 2025 16:01:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664088; x=1740268888; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LTaMzI9FdSjOEy3avv6lC58JclZ0untngvN22ozinnk=; b=C7k+ZEMtD77st99VvjknqIosfWQdrY6gw/sKLr7pC8A8BmmWXwxUnfFVNbRyOc17u7 Nm+g9271ZKDxIBAqi6crQpS1+6Lbk2qZ9C1DYw6MeGxHEqTQMHxXGg8KA0aB/V3EkxdL SQJ9HTMy8SfRzVP/qKCHKcHLv2EXX5YgQYinlBjNiTkH5A5KG47VXo60HMfONCOODqoN M+hUsWdqiO/pUpXSYv/985ha6E2PgHabVSWFlHEhlTlE+j0nDB1TGMNzVMuE3rHxOwEp vJXeVP4fK+hxZECr4WIHz8JZ/k1rtCov5b7lSOnRC3HqWZU5fzzueExUACcS7C+h+TpM issg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664088; x=1740268888; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LTaMzI9FdSjOEy3avv6lC58JclZ0untngvN22ozinnk=; b=Bh2WIxEbhEq1MT7ZNCSEfRR3+4P7i+4hZQPcb+SCGONAFHNY1sFVKl9fK4IAvrikDM jkldnW0sY9+4vElUinV9T/lTW415Xf57sU9vcRt8CO3ILgVDSH4YftdDt0zEiP5wrcmo NNv8CTR8bBEnHRnBRX/g4RG+TnQaD+jd7+0TIwrYK5yMCnxi1zsnaYoKCM1knydelqKG +yMwLiLFSppVoSl2gi4oqQGkvbNzSHmP6P3TFUmzT1e02DmLX9AzLvf5mY9VYAHLDuFG T7PJUP3uqqyAQevvPllEbeMqdVOu3j4bLgFnstsH7oZ7/1d14Djeqj3cBy40UqZ5CagK X+FA== X-Gm-Message-State: AOJu0YyrVdjiQ9Bk0UB0xxhKfAOF6RgDIE+bX+nt+qU2Su94xNHujtXG iS7tvC7Ux8sYgsD/2c9Z/c9U1asXD7v6yMpL1O7kxMMNqR7YSKhfV4T8/rSDFW4hFwSe7G36T4M 1 X-Gm-Gg: ASbGncv9FPShNzPsyqG+YGQkiDUl/wK7xKSPZN7RkW7Gl7t5SLj1FzlJAFg/ygsEQD2 s0h25mNEgrRsTf4O1meXK8CVmyIQH5k7fzab4Wv/AVgDQ4UDMxtrUTQ/3wwOzdKap29bXq9KTLu AdsaVlwK+/Tf0kfHaiRcDyH0G0fZlXdFpl21RBI+bj1PwSH7YV2F7uEfU+FE72U2mQGUcn+hDry 0+FQW5oa/FmWneCI2+o4ZSW7LLM0KwvacIB4Sn3ECoiOTaxBwgUWpAFZQjn5befSU7a9OIEffja nPlpS4mknFHT5i+u5gRx9HA54ABMGf3sN337b1gxuWEGGwA= X-Received: by 2002:a17:903:2341:b0:215:19ae:77bf with SMTP id d9443c01a7336-22104048152mr71532635ad.19.1739664088297; Sat, 15 Feb 2025 16:01:28 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:27 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mikael Szreder Subject: [PULL 23/24] target/sparc: Fix gdbstub incorrectly handling registers f32-f62 Date: Sat, 15 Feb 2025 16:01:07 -0800 Message-ID: <20250216000109.2606518-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Mikael Szreder The gdbstub implementation for the Sparc architecture would incorrectly calculate the the floating point register offset. This resulted in, for example, registers f32 and f34 to point to the same value. The issue was caused by the confusion between even register numbers and even register indexes. For example, the register index of f32 is 64 and f34 is 65. Fixes: 30038fd81808 ("target-sparc: Change fpr representation to doubles.") Signed-off-by: Mikael Szreder Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250214070343.11501-1-git@miszr.win> --- target/sparc/gdbstub.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/target/sparc/gdbstub.c b/target/sparc/gdbstub.c index ec0036e9ef..134617fb23 100644 --- a/target/sparc/gdbstub.c +++ b/target/sparc/gdbstub.c @@ -79,8 +79,13 @@ int sparc_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) } } if (n < 80) { - /* f32-f62 (double width, even numbers only) */ - return gdb_get_reg64(mem_buf, env->fpr[(n - 32) / 2].ll); + /* f32-f62 (16 double width registers, even register numbers only) + * n == 64: f32 : env->fpr[16] + * n == 65: f34 : env->fpr[17] + * etc... + * n == 79: f62 : env->fpr[31] + */ + return gdb_get_reg64(mem_buf, env->fpr[(n - 64) + 16].ll); } switch (n) { case 80: @@ -173,8 +178,13 @@ int sparc_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) } return 4; } else if (n < 80) { - /* f32-f62 (double width, even numbers only) */ - env->fpr[(n - 32) / 2].ll = tmp; + /* f32-f62 (16 double width registers, even register numbers only) + * n == 64: f32 : env->fpr[16] + * n == 65: f34 : env->fpr[17] + * etc... + * n == 79: f62 : env->fpr[31] + */ + env->fpr[(n - 64) + 16].ll = tmp; } else { switch (n) { case 80: From patchwork Sun Feb 16 00:01:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 865533 Delivered-To: patch@linaro.org Received: by 2002:a5d:64e6:0:b0:38f:210b:807b with SMTP id g6csp520052wri; Sat, 15 Feb 2025 16:05:08 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUmOjINMf4WWYeBhpoRXJbsZRgLsytmfDtdXG1QcREQhJ8qNWmJR82WY3zmoHihGtEywZGv9g==@linaro.org X-Google-Smtp-Source: AGHT+IGScPbMgrcNsZOcbExWYwnHtaf03tmRWOxJ5GFXABlLG9Rt2tY3dpVN8XmpfgEmjCN8wNFt X-Received: by 2002:ad4:5ae6:0:b0:6e6:659d:296 with SMTP id 6a1803df08f44-6e66cc86b35mr83370446d6.5.1739664308692; Sat, 15 Feb 2025 16:05:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739664308; cv=none; d=google.com; s=arc-20240605; b=YAYK2noiJwcpdu5EtYQKSdqkt4lgbZEIwnNR945HDYLWNdBDKgnI0vQz08825HrOvr oID1IIQfV7c4f3ZYlXHsFogPQxXbf3hcA052I53qxlbhcNXbFMzVgeTqlJo82HWh8Yp1 JYPSQWvj5muz9p3YTQzWRJVLbNuxuTs496OmQdmv1LQHq00P2UmN0vgf1lQ3YzSsOkNW Daf9GPwdbiS6cH6VSier8cgbnMcdwkDVlqeNO/dWCPCRysnIgpxKUNKU6PGCK+NbQaGb jrh/Clpa+sEu29Yr/q3sm9M75PiCNpn97x+ndqMSdsoKXUkrscFUA6OwB7aOcxcIzSQy U6FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jFWOgm7cwZ/f43Ltoxf8K/SGg9Wf6xR2m2O9XTNwnuM=; fh=BCs+wvEZt5rkBhfX27gsniXySkweGfmkv5PoYOXC8d8=; b=dlChx3zFcbQu0JWVdUkE2u/jvQzhFvQjZkONz8jucIc4MI9yCOng7g2t4axYYuyouk aHVgUTp9Su7MgVAmpiQQCWKjf1jSQpgWu9SXuVrx0qbdGlA2eymw/mUS8eeJcKPLcjbo a9Q9V0xJ08ysaU/FcnaRV+PzAD7I8pKb6PD6cI2DOhF18uue2AO9siD/XirrK6Nkciyy X/vJ+jRS9A6on1PEYVieDL4BhuZISLfVtt1IHS4SyBZLdZUMGFvXdB1KzHtfs632+p5A jFISEj0iCuh9LekgKUkqLlvxwfqVu6VZi7pwIfBLQU5r0G8YEm4Q1DthqBLoaQ7OnJ77 NfVg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Du3YMUDD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e65d9a211bsi61873716d6.183.2025.02.15.16.05.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Feb 2025 16:05:08 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Du3YMUDD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tjS6g-0007mH-Tf; Sat, 15 Feb 2025 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tjS6L-0007fW-RS for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tjS6J-0006Ik-NN for qemu-devel@nongnu.org; Sat, 15 Feb 2025 19:01:37 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-221206dbd7eso1308555ad.2 for ; Sat, 15 Feb 2025 16:01:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739664089; x=1740268889; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jFWOgm7cwZ/f43Ltoxf8K/SGg9Wf6xR2m2O9XTNwnuM=; b=Du3YMUDDAU9DHfAYt+BZigKH+MB0+ix3jczOLTtlya4pEGPQDfYgfxtlKoFVzeLbyC sXGLPSXseRkifvZSye8y982p3JBorLEVENCPbDBK5WqLlJoEt9AFMHwIXxajRWNyhAFx yQed3YCwggUKEcYMy8qK6s5bH7WNA609lys5myRHcGGLo14YKcqFtOIariv1bktSjy5Z rAU8SuW4FwB7hBuswAuiLWecUUzq7JQOfnS3olxtz3CEouJRFRv3WVvLL5QmbTi276Cg WO23XEvUhGyHQnFLiw/Ex+9/BmAGPOvIIyZF7K9qIL8CGSm4gsZoccr2gYEYc8f2clTa OIdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739664089; x=1740268889; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jFWOgm7cwZ/f43Ltoxf8K/SGg9Wf6xR2m2O9XTNwnuM=; b=u9QmtcYuABt5Me8jlw7kmLdRj3ba6Ad+5w7Lz7pmGn7104+HEvbvnxiJkcwzbb4ayW inCp0aNCufD/86Uwu+xAcr2oQYcW0o78SI9BLCWcNOQY08MZ3KWOGloPJCxENT6qZJgr RkoI7mAkyEPb5TXSkHvnsJdWI4yAzqg+XququYTBPcnmY58vy1w8C1uvN8e9k6RfMSr9 +87UKXftZLNKWvRPWI4tD1fdcizy8Nkva8Wdm3Tr7x7FfKhThNbGat8wQBE0u9mbicuP +BbJ+7R2y/y4dBH9aAF4lLyGs+4Acz7szfWduInPJEFfDuXRhRuO19+Zpx/+kA/Exi88 nAlw== X-Gm-Message-State: AOJu0Yyn+0QQbEij0LbgiNPlmMpHX7NHYNF8m85AWWWeuV4zj1r9a5Gf xKfjR8k+YbeiMFQ3mhqcn6Xmo6BXTCqWjpJ9dnbodlLn/dPDoSeJTYjIcGZMeuEzuLsRFdcrUfA X X-Gm-Gg: ASbGnctqxM3nrs6IaETQvj2x2Gy6Il26XtroM6UecY0YXg8gVm7aO4d+4lijNejPOSL rEsMznO6+ZGsX0QRK7jlH0xa9qdi4GDCZuTA/WHOr6BSxzKSqRpXQCodXy8FBG6hiDIB8Gfz1/H XgerIblhWN/+YEDmds0r/96ojwx9D/wTf0VuJsHFjFQtF2TCgieAgzhOqaJCSx1sUy+LcTtSdHo FXSUiZPgo6y6xlVhhPUtsGrMm9HwhkTyCUk8VNZA5xSn18+f+0DQyzzQl7F/EVbdDKW2D+ughyT V8nf1kyLNzAAfrOwmT+wuhJJF9yNc6rFQa6x0nSq+PLTxkc= X-Received: by 2002:a17:902:fc4e:b0:216:7926:8d69 with SMTP id d9443c01a7336-2210409d456mr80105305ad.47.1739664089098; Sat, 15 Feb 2025 16:01:29 -0800 (PST) Received: from stoup.. (71-212-39-66.tukw.qwest.net. [71.212.39.66]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5366729sm48960315ad.79.2025.02.15.16.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Feb 2025 16:01:28 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Artyom Tarasenko Subject: [PULL 24/24] target/sparc: fake UltraSPARC T1 PCR and PIC registers Date: Sat, 15 Feb 2025 16:01:08 -0800 Message-ID: <20250216000109.2606518-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250216000109.2606518-1-richard.henderson@linaro.org> References: <20250216000109.2606518-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Artyom Tarasenko Fake access to PCR Performance Control Register and PIC Performance Instrumentation Counter. Ignore writes in privileged mode, and return 0 on reads. This allows booting Tribblix, MilaX and v9os under Niagara target. Signed-off-by: Artyom Tarasenko Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250209211248.50383-1-atar4qemu@gmail.com> --- target/sparc/translate.c | 19 +++++++++++++++++++ target/sparc/insns.decode | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 7e5c7351cb..bfe63649db 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2882,6 +2882,14 @@ static TCGv do_rd_leon3_config(DisasContext *dc, TCGv dst) TRANS(RDASR17, ASR17, do_rd_special, true, a->rd, do_rd_leon3_config) +static TCGv do_rdpic(DisasContext *dc, TCGv dst) +{ + return tcg_constant_tl(0); +} + +TRANS(RDPIC, HYPV, do_rd_special, supervisor(dc), a->rd, do_rdpic) + + static TCGv do_rdccr(DisasContext *dc, TCGv dst) { gen_helper_rdccr(dst, tcg_env); @@ -3315,6 +3323,17 @@ static void do_wrfprs(DisasContext *dc, TCGv src) TRANS(WRFPRS, 64, do_wr_special, a, true, do_wrfprs) +static bool do_priv_nop(DisasContext *dc, bool priv) +{ + if (!priv) { + return raise_priv(dc); + } + return advance_pc(dc); +} + +TRANS(WRPCR, HYPV, do_priv_nop, supervisor(dc)) +TRANS(WRPIC, HYPV, do_priv_nop, supervisor(dc)) + static void do_wrgsr(DisasContext *dc, TCGv src) { gen_trap_ifnofpu(dc); diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index cfcdf6690e..9e39d23273 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -96,7 +96,10 @@ CALL 01 i:s30 RDTICK 10 rd:5 101000 00100 0 0000000000000 RDPC 10 rd:5 101000 00101 0 0000000000000 RDFPRS 10 rd:5 101000 00110 0 0000000000000 - RDASR17 10 rd:5 101000 10001 0 0000000000000 + { + RDASR17 10 rd:5 101000 10001 0 0000000000000 + RDPIC 10 rd:5 101000 10001 0 0000000000000 + } RDGSR 10 rd:5 101000 10011 0 0000000000000 RDSOFTINT 10 rd:5 101000 10110 0 0000000000000 RDTICK_CMPR 10 rd:5 101000 10111 0 0000000000000 @@ -114,6 +117,8 @@ CALL 01 i:s30 WRCCR 10 00010 110000 ..... . ............. @n_r_ri WRASI 10 00011 110000 ..... . ............. @n_r_ri WRFPRS 10 00110 110000 ..... . ............. @n_r_ri + WRPCR 10 10000 110000 01000 0 0000000000000 + WRPIC 10 10001 110000 01000 0 0000000000000 { WRGSR 10 10011 110000 ..... . ............. @n_r_ri WRPOWERDOWN 10 10011 110000 ..... . ............. @n_r_ri