From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344599; cv=none; d=zohomail.com; s=zohoarc; b=KVNUBIHNIyOJGbqEXsWeFpukqUKw6rPd7ewO7R5U4coywhfTewogx0qEAWwAfS4aL40oKVqRHZFqDq2YZZAK9Donla5NPtjBbAMXzA9Sq0bf9jzRD0TOnNZq+IRa1FJxo5s8eorNhhB+EIqhyp56zXkZTXOkB40EHRcaXfyf68E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344599; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0m2rAXMoagFHDfOq9qhvJe8XyC+YxtbYvXg3PJbo7Lg=; b=TTxLlWJbVncTj35wYCYjBQ1l2ONxjjnzXof3Lkc8yqsn5Q616ttj7NxfxJbrvgHoDFr03Z4Yegb69onrkKGgD74QBOraG+7smAWtyYbNZLz40floNkQGHnnfRwTAGfnb/B2sO/nFPPiGWvgnn6O2y/vpAnXki96UyL91D8CURSM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344599544842.1316638110466; Sun, 13 Sep 2026 17:09:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFG-00031B-VB; Sun, 13 Sep 2026 20:08:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFB-00030N-Vu for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:22 -0400 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 1x5uFA-0006s3-2k for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:21 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so2369923a91.0 for ; Sun, 13 Sep 2026 17:08:19 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344498; x=1789949298; 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:content-type; bh=0m2rAXMoagFHDfOq9qhvJe8XyC+YxtbYvXg3PJbo7Lg=; b=FgbRllSuT14AJkl0jExjoYSrA5ew0FmfdKXWx5HeDiPUn5/y6W0uQlCkGN7FMqfGwt GX8yGgKp51Fct8tijXTiwVKRwN7DyC2XnnQ8w49WRlp8eAVIbil4i0xntsgg2pHNtMD4 jU2sYOokRenBpL2AxjFKOHO6Xq4aHSqzH3OjjSNOV1GaI6tYXXSM/rs2Y3GfgXtitmbz /ZiUYVsAtGm8upHiZVVmuDZ2LPwI7IWS/hOMsmxJvy1rhewqNkcSAfoDTxyeJyF/07dE 5Db4URkHPWiIEXPFD5yFjuz0MBIesR9BjUx5A2nABH9/g3QkMDUP1YzCdOND0B5P+czj K57A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344498; x=1789949298; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=0m2rAXMoagFHDfOq9qhvJe8XyC+YxtbYvXg3PJbo7Lg=; b=Vx/q+AJfySaK1J/LWLQzNWzPUlO/Sv9PcLD4AFa1Tmsmm9XtgvML1nk/uaGsFyMzTW XVIMvsP8FYvaEzj77X20luLi0326spTFtXCWXGmeAk40M6e0w8OWcKeaGKJi5oWneWzr 1Ab3Jd235dX9EEFsyunSfDVMUG1x8FdANkmyQj1nLas4RXNNwjjvsnqIOpdXmzIOMAC8 9SKNSf2ytbv72geFCitU1m5KOaK97WAtAjuhqv7JsSHKsk7B7a00rAGCQSLpnBRf7en+ QVQ65mEO9JKiaPrNhf2/dXQ8CbamLFKLpXsZBNyyjbwX4rgdQwxjVktnrbV5nAA+lqeC CFsg== X-Gm-Message-State: AFuF++kaBctM9TqCm983JhBstYAJtj2OnlhF2T5QLCJZ6k0VbA7oqqYi 8fAqXIS+t1WLb3JsAAup9Er3Q0tFiRsM5YfR+RfLEp3K1HRDZu2FGYOZ50UvjMAFYfAMl8M0B6J vd1DM X-Gm-Gg: AYBFou0M9U8TIaTxkB8OAFKP9dD0yynkGt4ivxQjSkmuaDL7F5PmD7+ZFweKuShUc9a Qc8i4vjkxqGD/6wFWVifWKU9YxN69Isoizo0+numpFHymSX078901M4eascxguO5uD6oloDtLQk fTG0ruMgtrnRgguw5CLfKYBskKNbThZ78oFgPa5F4iBoI38WBy17mHVd8gA4imI5SAevhHF1SC8 gykUwdyuUD+idGhzfeRKZwz90hBpYeKmmW3DPUhrdn3Wib6FHGJ65FPhIM6c46K2JeiNWitKHih dHB4FoxSiGsC64ig8M9jMFMeGj+cdzTFakZOui4joGT4cIeMniUo1LAQ1O0h7D/X3Xd7RbQ73gi tBXknKz+ojbZmkU3vNV/J/4HyKxLG69WDXxOjJVTxcMTdIy0nrOCHUlMxmNnSTKoqaoLd4nC7hL k4M1Fsm7S/iXb2z8Z3olXn2QJo1RYccOvvxlIW/esuwKNgT3qDt1EDMWpaK5eIW4fvDQgPtUjQ9 cjYd1oX3YWB5WKQSg== X-Received: by 2002:a17:90b:2e0e:b0:38e:250b:122f with SMTP id 98e67ed59e1d1-39dec056382mr553110a91.16.1789344498332; Sun, 13 Sep 2026 17:08:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 01/11] tcg/riscv64: Return tcg_insn_unit from insn encoders Date: Sun, 13 Sep 2026 14:08:04 -1000 Message-ID: <20260914000814.785155-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344600518158500 Content-Type: text/plain; charset="utf-8" Returning int32_t was logically incorrect. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 47 ++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index 2ce9d47a633..a26503fa1ed 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -438,28 +438,28 @@ static bool tcg_target_const_match(int64_t val, int c= t, =20 /* Type-R */ =20 -static int32_t encode_r(RISCVInsn opc, TCGReg rd, TCGReg rs1, TCGReg rs2) +static tcg_insn_unit encode_r(RISCVInsn opc, TCGReg rd, TCGReg rs1, TCGReg= rs2) { return opc | (rd & 0x1f) << 7 | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 2= 0; } =20 /* Type-I */ =20 -static int32_t encode_imm12(uint32_t imm) +static tcg_insn_unit encode_imm12(uint32_t imm) { return (imm & 0xfff) << 20; } =20 -static int32_t encode_i(RISCVInsn opc, TCGReg rd, TCGReg rs1, uint32_t imm) +static tcg_insn_unit encode_i(RISCVInsn opc, TCGReg rd, TCGReg rs1, uint32= _t imm) { return opc | (rd & 0x1f) << 7 | (rs1 & 0x1f) << 15 | encode_imm12(imm); } =20 /* Type-S */ =20 -static int32_t encode_simm12(uint32_t imm) +static tcg_insn_unit encode_simm12(uint32_t imm) { - int32_t ret =3D 0; + tcg_insn_unit ret =3D 0; =20 ret |=3D (imm & 0xFE0) << 20; ret |=3D (imm & 0x1F) << 7; @@ -467,16 +467,16 @@ static int32_t encode_simm12(uint32_t imm) return ret; } =20 -static int32_t encode_s(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint32_t im= m) +static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint3= 2_t imm) { return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_simm12(i= mm); } =20 /* Type-SB */ =20 -static int32_t encode_sbimm12(uint32_t imm) +static tcg_insn_unit encode_sbimm12(uint32_t imm) { - int32_t ret =3D 0; + tcg_insn_unit ret =3D 0; =20 ret |=3D (imm & 0x1000) << 19; ret |=3D (imm & 0x7e0) << 20; @@ -486,28 +486,28 @@ static int32_t encode_sbimm12(uint32_t imm) return ret; } =20 -static int32_t encode_sb(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint32_t i= mm) +static tcg_insn_unit encode_sb(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint= 32_t imm) { return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_sbimm12(= imm); } =20 /* Type-U */ =20 -static int32_t encode_uimm20(uint32_t imm) +static tcg_insn_unit encode_uimm20(uint32_t imm) { return imm & 0xfffff000; } =20 -static int32_t encode_u(RISCVInsn opc, TCGReg rd, uint32_t imm) +static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd, uint32_t imm) { return opc | (rd & 0x1f) << 7 | encode_uimm20(imm); } =20 /* Type-UJ */ =20 -static int32_t encode_ujimm20(uint32_t imm) +static tcg_insn_unit encode_ujimm20(uint32_t imm) { - int32_t ret =3D 0; + tcg_insn_unit ret =3D 0; =20 ret |=3D (imm & 0x0007fe) << (21 - 1); ret |=3D (imm & 0x000800) << (20 - 11); @@ -517,7 +517,7 @@ static int32_t encode_ujimm20(uint32_t imm) return ret; } =20 -static int32_t encode_uj(RISCVInsn opc, TCGReg rd, uint32_t imm) +static tcg_insn_unit encode_uj(RISCVInsn opc, TCGReg rd, uint32_t imm) { return opc | (rd & 0x1f) << 7 | encode_ujimm20(imm); } @@ -525,8 +525,8 @@ static int32_t encode_uj(RISCVInsn opc, TCGReg rd, uint= 32_t imm) =20 /* Type-OPIVI */ =20 -static int32_t encode_vi(RISCVInsn opc, TCGReg rd, int32_t imm, - TCGReg vs2, bool vm) +static tcg_insn_unit encode_vi(RISCVInsn opc, TCGReg rd, int32_t imm, + TCGReg vs2, bool vm) { return opc | (rd & 0x1f) << 7 | (imm & 0x1f) << 15 | (vs2 & 0x1f) << 20 | (vm << 25); @@ -534,8 +534,8 @@ static int32_t encode_vi(RISCVInsn opc, TCGReg rd, int3= 2_t imm, =20 /* Type-OPIVV/OPMVV/OPIVX/OPMVX, Vector load and store */ =20 -static int32_t encode_v(RISCVInsn opc, TCGReg d, TCGReg s1, - TCGReg s2, bool vm) +static tcg_insn_unit encode_v(RISCVInsn opc, TCGReg d, TCGReg s1, + TCGReg s2, bool vm) { return opc | (d & 0x1f) << 7 | (s1 & 0x1f) << 15 | (s2 & 0x1f) << 20 | (vm << 25); @@ -543,20 +543,19 @@ static int32_t encode_v(RISCVInsn opc, TCGReg d, TCGR= eg s1, =20 /* Vector vtype */ =20 -static uint32_t encode_vtype(bool vta, bool vma, - MemOp vsew, RISCVVlmul vlmul) +static uint32_t encode_vtype(bool vta, bool vma, MemOp vsew, RISCVVlmul vl= mul) { return vma << 7 | vta << 6 | vsew << 3 | vlmul; } =20 -static int32_t encode_vset(RISCVInsn opc, TCGReg rd, - TCGArg rs1, uint32_t vtype) +static tcg_insn_unit encode_vset(RISCVInsn opc, TCGReg rd, + TCGArg rs1, uint32_t vtype) { return opc | (rd & 0x1f) << 7 | (rs1 & 0x1f) << 15 | (vtype & 0x7ff) <= < 20; } =20 -static int32_t encode_vseti(RISCVInsn opc, TCGReg rd, - uint32_t uimm, uint32_t vtype) +static tcg_insn_unit encode_vseti(RISCVInsn opc, TCGReg rd, + uint32_t uimm, uint32_t vtype) { return opc | (rd & 0x1f) << 7 | (uimm & 0x1f) << 15 | (vtype & 0x3ff) = << 20; } --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344599; cv=none; d=zohomail.com; s=zohoarc; b=lRmL1T4w3egAHLdu1PpiHuBh/j5dLbQzruCKC/SLGufKDiH+vKonRMQSt+K8AmvOQodnEsRzTdImK9l2Llrh0fMzJ8n4ZZ3PE4vjoxav9hLtd+C6OxGCB3pH5UCyyUhkLHZ7a0mCLe8q2Y2o2yJROpQXNhUCQi9kssC+14FiLHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344599; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7+CcwxXPo43h/KNUQ7Zn18bG5lRkYVCqnQ1Dy2GQs4Q=; b=Ev55mvVWg2kJJEcJodOG4hCTjUTrnNdmuBszfZ2KyaE6dtuVSvuoqrJOrupy7XFCbJnhTOBLdW0Of0nHhN1Nx6t1iNjEIil9949tMMtmbkbe6MIbISVYNonHKEBcbC9/idML+WwVdZzG74M5bdg5MLsbTENjXv90Nut4QVy1qwU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344599868717.7533180303287; Sun, 13 Sep 2026 17:09:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFI-00031S-7A; Sun, 13 Sep 2026 20:08:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFD-00030d-HF for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:23 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFB-0006s7-7c for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:22 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccb65437so848773a91.3 for ; Sun, 13 Sep 2026 17:08:20 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344500; x=1789949300; 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:content-type; bh=7+CcwxXPo43h/KNUQ7Zn18bG5lRkYVCqnQ1Dy2GQs4Q=; b=bpCo7RjrQZ4hQCJR57xwFxwx8bWB2VYjQaYvZ9FIdwNWZvAEXloZOWgCSp6M9UDI22 BCdt1QuScDQgWn2BZOVK13FJut5Mlro5UknKcFbdLjctqYw8XJjVcbr2n/XnLFlwuJWc sGCi/W+sMTvTbG27MucG7n8NWhPsmXo4whqAH4bramkwURgveVfHK3lO7U0uMphvppTi p1+GUhHo+VLxlr0H5RUf8nv7YfvKs0vLWfET179BX6wISY362JRp4uNohwet+IreWEE2 X0j8YoUKmKkyhkp3igqo3h7JAsBV0Bwi3KrPg78+faGLTGj3LGW9BpHVrrzIMXMINcsi p4HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344500; x=1789949300; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=7+CcwxXPo43h/KNUQ7Zn18bG5lRkYVCqnQ1Dy2GQs4Q=; b=mICF/k1SJq0Zt1bWCEsbyL7covCR4U4/KRkxjNfbZtGdMAIKuxfvJ5bYYvpNnaStO2 ZieQ1EzI8o3va2hk486vyc+K0j6LTbFTQgzAxDILLRE4mpxaEhjvqoG4NErIQUZL8gT5 9AW3LAApAJNsBKeTaKtEQFhsd1rczmr7IawSZeejQQLhEj/Db/ZBk2vPhPM7Pt3jLA1s fdqf8sKkOEWL4qlqFuWDMVFJ3+p9FzF0r9MGEOAVx89oA6x7FKfimrwBmhm7Eb4vyiLB ZL9SYUe39GakLRAQlhD6ZXDh22tC+cfWAVV52GiC+iKhSuBxrs5RVHMEKTKjJyQSmUy2 fCCA== X-Gm-Message-State: AFuF++nMl1hIOXqWJF/gYeTR4cQrLdIloViSTdNJ+8SseLSF1DbNgjT0 9/9hG2rauKtW2wXUYlzxluUKr1YfiVut3w0l2q8vqwFCmwRSXWmHxWsX6O9ZvQDq/zQkHo1pbxe 18rPo5eU= X-Gm-Gg: AYBFou3EoKIJdml7tkR0BQ7xDztBPBHRxSuiamhqh0XbECqkJ2F5QBZ9vmcWWfqQJgf l4DglzgSnLXK8xVkS5dSSZEnvtvFTQr9nlu17FcTaw8l4gKjT4ipxSGYHFCaQBMVYOLQRQqDXVO J6v/hMlJSW3hF9d3WJ6kZybPc4UU91PJVYWuqOypyRcwa9kCIcGaSS6pZx4r0rqRAi8O90BAmUR L7HBHYtvF9T6i79ocJdb0lf2kZfuAX0v524xBQPyTPrbwr9wD5tCjkEUUn8MdsZ6C3fO+kshpvb dyuKfrRKIQSCO+WI+pcu3VnEw2YAceQ5H5O+L/Dgn+ElTR+9M8vxVcmXL816JPSYg84O+5Mx5Hw eS/wO0cj2Z/GycPWoVvIf15YfeswwBeqwrn+umaIibcSKU2LOmQjV8VHmHFSkGqTJVf4uDLR58Q /6rTLGIWZxTrwQSLlaRHYurboDtYmTKL8V5jv5f5xUvQd30vR4gh7EQJkUYkqavnKnlE/6DeIGv 5j7FLj8 X-Received: by 2002:a17:90b:3f4d:b0:38e:97f0:aa4b with SMTP id 98e67ed59e1d1-39dec064f1amr554836a91.13.1789344499652; Sun, 13 Sep 2026 17:08:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 02/11] tcg/riscv64: Rename sb-type to b-type format Date: Sun, 13 Sep 2026 14:08:05 -1000 Message-ID: <20260914000814.785155-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344600399158500 Content-Type: text/plain; charset="utf-8" The current riscv documentation calls this b-type. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index a26503fa1ed..a10b433f2ff 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -472,9 +472,9 @@ static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg rs1= , TCGReg rs2, uint32_t im return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_simm12(i= mm); } =20 -/* Type-SB */ +/* Type-B */ =20 -static tcg_insn_unit encode_sbimm12(uint32_t imm) +static tcg_insn_unit encode_bimm12(uint32_t imm) { tcg_insn_unit ret =3D 0; =20 @@ -486,9 +486,9 @@ static tcg_insn_unit encode_sbimm12(uint32_t imm) return ret; } =20 -static tcg_insn_unit encode_sb(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint= 32_t imm) +static tcg_insn_unit encode_b(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint3= 2_t imm) { - return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_sbimm12(= imm); + return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_bimm12(i= mm); } =20 /* Type-U */ @@ -585,7 +585,7 @@ static void tcg_out_opc_store(TCGContext *s, RISCVInsn = opc, static void tcg_out_opc_branch(TCGContext *s, RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint32_t imm) { - tcg_out32(s, encode_sb(opc, rs1, rs2, imm)); + tcg_out32(s, encode_b(opc, rs1, rs2, imm)); } =20 static void tcg_out_opc_upper(TCGContext *s, RISCVInsn opc, @@ -612,14 +612,14 @@ static void tcg_out_nop_fill(tcg_insn_unit *p, int co= unt) * Relocations */ =20 -static bool reloc_sbimm12(tcg_insn_unit *src_rw, const tcg_insn_unit *targ= et) +static bool reloc_bimm12(tcg_insn_unit *src_rw, const tcg_insn_unit *targe= t) { const tcg_insn_unit *src_rx =3D tcg_splitwx_to_rx(src_rw); intptr_t offset =3D (intptr_t)target - (intptr_t)src_rx; =20 tcg_debug_assert((offset & 1) =3D=3D 0); if (offset =3D=3D sextreg(offset, 0, 12)) { - *src_rw |=3D encode_sbimm12(offset); + *src_rw |=3D encode_bimm12(offset); return true; } =20 @@ -662,7 +662,7 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int ty= pe, tcg_debug_assert(addend =3D=3D 0); switch (type) { case R_RISCV_BRANCH: - return reloc_sbimm12(code_ptr, (tcg_insn_unit *)value); + return reloc_bimm12(code_ptr, (tcg_insn_unit *)value); case R_RISCV_JAL: return reloc_jimm20(code_ptr, (tcg_insn_unit *)value); case R_RISCV_CALL: @@ -1644,7 +1644,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, = TCGLabelQemuLdst *l) MemOp opc =3D get_memop(l->oi); =20 /* resolve label address */ - if (!reloc_sbimm12(l->label_ptr[0], tcg_splitwx_to_rx(s->code_ptr))) { + if (!reloc_bimm12(l->label_ptr[0], tcg_splitwx_to_rx(s->code_ptr))) { return false; } =20 @@ -1662,7 +1662,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, = TCGLabelQemuLdst *l) MemOp opc =3D get_memop(l->oi); =20 /* resolve label address */ - if (!reloc_sbimm12(l->label_ptr[0], tcg_splitwx_to_rx(s->code_ptr))) { + if (!reloc_bimm12(l->label_ptr[0], tcg_splitwx_to_rx(s->code_ptr))) { return false; } =20 --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344551; cv=none; d=zohomail.com; s=zohoarc; b=is6y2AfXkuyvBjuGZCu1rtDRUTUIluv7CCNGlLoyyjjppQlvzbHggxEVyaFe0lLh+4PpgyeL+r4o2/j8+X4P1NZLlXZcPZYT2aeaufdszF/a6BkBjy+qff/ArhViUYlPz7VutAyeC+ROxrqJJtSFDMet6tD3q/2IRnH37G46OTU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344551; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5xEbEy2sAnJ0uzzrJQuBzI/Eaa3crDuL6b/2mmoZJrA=; b=E2CbAHfsxpV57fW+gT45QxXeZsmExO+PCk89ttDtYuKlXi/mJDubHSulAvrJLWylDxRmOKOOF7p6/bhtLFH52zp+lApu54exVxh5vUNPO6rBJR0n0TJ8V+sGjnH36fPgegUwszDf7KZJU52VC4YMrWcttzcFoC1HhxGF84vyK3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344551401588.8327736381286; Sun, 13 Sep 2026 17:09:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFK-00031f-NH; Sun, 13 Sep 2026 20:08:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFE-00030r-UM for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:25 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFD-0006sL-A2 for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:24 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc1cea4bfd1so1071961a12.0 for ; Sun, 13 Sep 2026 17:08:22 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344501; x=1789949301; 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:content-type; bh=5xEbEy2sAnJ0uzzrJQuBzI/Eaa3crDuL6b/2mmoZJrA=; b=GeB8VmtsFi/myzLg6jottxWnUh5n71m7H6BkVQDrmhHgftzVXY/6UkMvoBLLRDNOGB LhZXhInygw/I0ojI73T/zQ2C6UShfw4HLrvOAl/F68f8/wOc1G072RZDvKG53QxTO+5d 85E3A30cFQq3dkMWndksATLQ74bWdTiw3CxvPaEDaC4xKVLGYse/EV38QF6Qp6685gU2 9WduyXdO+F3AnjkQavFokgGBUgfegQB3yR1s4Zh7d7fPYci4ekWxRinkZdXg6JWFQ2Uu OrVOlWifyohK3tQdh2Fdz16gYsL9DfoGJmOlACyZfmlXGdxsxp/hmY/nMGgoLXQi6AWx DhWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344501; x=1789949301; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=5xEbEy2sAnJ0uzzrJQuBzI/Eaa3crDuL6b/2mmoZJrA=; b=LsslJllVgiq4OQEiEdlI39I3FyfZhlphNu3IA0VQPshTjPlIfiZLORcP60b/BDm/wS wVLquN3aKgONbcgPfEkRN4CNEg910uIw7q1ylnBG14Mi3sBMIW3xZHARGLzFG+oRMlOR zVe+nlqd8KbG/ZEbSSGjdxe74gtIDgRVzzxfrrPAzMhuKnsIIEiTbwA7x262i4cCTFd1 tP90BNB6Uz/usgESYOGqFrXmgL4w1M4RnADEAr2P27IR5j0ZbLhlJwCah0RVU1GgHErZ 8Fh9r2yF7uYgnT4okJMkYRiAx6HSoU5LV2pHVHhqh9w6EKhJgoj7mF/2bfB8vjPdflUt gzng== X-Gm-Message-State: AFuF++kXb72mzhLpmgqhopAih2LA+/RpUUNvSLIsQ+42gi5zn3GEUgtB hGiy0QLZ44YUVmP3Z8benR+OQZ7NoeetYtEjSXaLTAhpAv1mJWTiIyrOBL7Q0WOSS5Qy8zsa0Fb jtVO7lqM= X-Gm-Gg: AYBFou3pLmURnMSIi5L2RfU3nVmQK4mGH6XnTAj66btsNbYnHG5zMm7/zx5SMPXKugE dEH+YjNLTYeKyomWO0mW9+YX4R+HSsnZRv63Qglxo2saWTmWQDh677sJiiqjJvRgkGXeigcM5P3 Iq8tvP5x/UKB5GcmE8LV2937jyi2TnyDhDK9Bc8UCjPSP19EnKVm70pyxhjc3H4nHFQClckq7wx cAQNYNaZxuIQTHI2DijabcK5js2/uYHfDUm/i/5eMlXIzAf10ReHV3s/T3XnxoNmvOALjulhACO 9VuLs7tI8Xsw929Tj44J0cNgH+nQio0azL7o4dOak/W7vkWJUWcYfRZpNJsovOUF2rsNMI2ngtH GrUtER1SV95ZI7U5CM8tn26020F5V1nzvVeLZiackjlDpctzt8ASMYrTq1WtF9KlnRC+do6/4E3 q4kd6zyrEAIOpE8B0kqJu9fdpCAsGPncIBM0s+9TWvgsTTcE+TEM27OkMJ5Nb1PZJWeKh2i9mB+ E/eP0A= X-Received: by 2002:a17:90b:2885:b0:398:b46d:48c0 with SMTP id 98e67ed59e1d1-39dec0849e5mr593283a91.18.1789344501316; Sun, 13 Sep 2026 17:08:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 03/11] tcg/riscv64: Rename uj-type to j-type format Date: Sun, 13 Sep 2026 14:08:06 -1000 Message-ID: <20260914000814.785155-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344552307158500 Content-Type: text/plain; charset="utf-8" The current riscv documentation calls this j-type. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index a10b433f2ff..f77fded1dfa 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -503,9 +503,9 @@ static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd,= uint32_t imm) return opc | (rd & 0x1f) << 7 | encode_uimm20(imm); } =20 -/* Type-UJ */ +/* Type-J */ =20 -static tcg_insn_unit encode_ujimm20(uint32_t imm) +static tcg_insn_unit encode_jimm20(uint32_t imm) { tcg_insn_unit ret =3D 0; =20 @@ -517,9 +517,9 @@ static tcg_insn_unit encode_ujimm20(uint32_t imm) return ret; } =20 -static tcg_insn_unit encode_uj(RISCVInsn opc, TCGReg rd, uint32_t imm) +static tcg_insn_unit encode_j(RISCVInsn opc, TCGReg rd, uint32_t imm) { - return opc | (rd & 0x1f) << 7 | encode_ujimm20(imm); + return opc | (rd & 0x1f) << 7 | encode_jimm20(imm); } =20 =20 @@ -597,7 +597,7 @@ static void tcg_out_opc_upper(TCGContext *s, RISCVInsn = opc, static void tcg_out_opc_jump(TCGContext *s, RISCVInsn opc, TCGReg rd, uint32_t imm) { - tcg_out32(s, encode_uj(opc, rd, imm)); + tcg_out32(s, encode_j(opc, rd, imm)); } =20 static void tcg_out_nop_fill(tcg_insn_unit *p, int count) @@ -633,7 +633,7 @@ static bool reloc_jimm20(tcg_insn_unit *src_rw, const t= cg_insn_unit *target) =20 tcg_debug_assert((offset & 1) =3D=3D 0); if (offset =3D=3D sextreg(offset, 0, 20)) { - *src_rw |=3D encode_ujimm20(offset); + *src_rw |=3D encode_jimm20(offset); return true; } =20 @@ -1958,7 +1958,7 @@ void tb_target_set_jmp_target(const TranslationBlock = *tb, int n, =20 /* Either directly branch, or fall through to indirect branch. */ if (offset =3D=3D sextreg(offset, 0, 20)) { - insn =3D encode_uj(OPC_JAL, TCG_REG_ZERO, offset); + insn =3D encode_j(OPC_JAL, TCG_REG_ZERO, offset); } else { insn =3D OPC_NOP; } --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344582; cv=none; d=zohomail.com; s=zohoarc; b=HxstGNPiOLxsp7wvJkG2seNSM+aU8vmkRCUgIw9vCKSxtWWx28TEnSqKhs15kfUDr8LGJQtVikXbWIWZFoZd5B0r4q/Fz4dw7EwXfuUdRC4f9oZCTfGcU+c/GthBGqdRfWR4q6WNzkQp2ReIUEiWPSzHAXrNvJSxsroUfcKz2mE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344582; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8OcTNzghpuIE4ECsgWviRRjONmA9ec2AkFt+k5E+bEw=; b=HOWKDe0qBXCAXWwwaKX+KhmJ/eXZTk3KX+fDAla1yQPGWEmrg3wb3iv4ay8oK7miat6IitjCDyy3qyJDDvf6t4kG9UkgKYFhfQQ3N92cP+RivpNvxLEb9CyVE8vaq7uDtumzRRGOT7J6bpfHjAwsG+gQKH1/39opJftvgnUAiXQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344582156283.89954293901394; Sun, 13 Sep 2026 17:09:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFN-00033I-2l; Sun, 13 Sep 2026 20:08:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFF-00031A-TT for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:26 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFE-0006sS-2W for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:25 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-39b9184fa80so1387887a91.2 for ; Sun, 13 Sep 2026 17:08:23 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344503; x=1789949303; 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:content-type; bh=8OcTNzghpuIE4ECsgWviRRjONmA9ec2AkFt+k5E+bEw=; b=hudMWNXOmys2gtuBjcHJZu2lz+nx8MT49mI4ifVddabgTtO8ue6BnzeqSV3PW77drV zVbaVocmlMScDQlDybZKb3/kdqrleLxkhmBP+SXJP2jFBS9dqAfFQYPDqvrap/VpLB69 Q8crFvJcgMbDqbnsgZg3YWJbay19mkLz0YC4mA7F4/HL3iCk7nZ6efQgWl8L/kYPXGEH aHXOOe6sS7d5e+5ySr3dAvQIkDzRkFBKgqX/+B+2PzMZCBcqD7XCNTJk/gacoHbwFMpB JdPzVbv9S3Tv3Ct2P3IEY0kbOoW/us/7RAvhfrKNiHUbs//ptWuzhl5rULK9/bXFIAmj 35tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344503; x=1789949303; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=8OcTNzghpuIE4ECsgWviRRjONmA9ec2AkFt+k5E+bEw=; b=ovvkjsX+cpuC5mNItYCRdV93n+1XLmA+/GX/SmiOxg8n74h5FwoUVDLmB92fjhGUHb VbmWI2ks7Nf92EhVyKfQZtcR4GWy705M54jk/JSSEoul3dbuRYdNEeq9U2EGsZPBMJfa BLQcj+3Iw4HMN+fJWaZfP82oLkU2JiU2ME1LWfonZbA/P5oJ186nAXjbYRzKGqt3sNKT ZFdoWDpXXj0tp31PatCWcX+wkDjESoiOLfNzMS8EIW1N9xbNzut4q5tbclSv3BApKJvG 8ytIp1NDf5j5Rx7bZvoXiKmzRuqX93gplX9SR6yIWwMsIXN0GNpgG/z20vDT2JVbhuHl JiaA== X-Gm-Message-State: AFuF++kMWoxvRAh0SVFyvJ7IqklZW/EcfFh9ccaPn/YLICApSPX8WdzU FMpdR7x+JZ7ZG4HJwXm/MxzbwcTqn30ve8QczvE2rJ5nxKGc8tGKvPd04wXLMkxdkbr8WmyDaA7 JwtuckDE= X-Gm-Gg: AYBFou0G0BXeGpXIs4rCGX5e/UaBtk32nWfeUbvVKqTqaw45OximELOHtoWuuCgnNnk 5cLxDjCiRPDW2HlcELv6lH2cKv1XuUoAVRNoaZb9DNZt8txnhA6j7XQwXWXVVEeS2+VcE5z7TzO jOJr/VjRpq/69PUVA946ebDy15pvLkBM65D5Z6aB0TPyyIK1XN60nx8loVcstQ4eC9STXl7pvbu SEgq8/c16FZFAVq9Svvg5dIB1gBWoG+T2oLk0n8jZAN2O0MnMQmwz8fGbX0KuEj1cRgH+YERGfk bj+VCypxIiwUXFLinKzo47aiG8UGB7hfcNcNLQnuXQBP4e3OTaFA5C3lOjiwzWh+VDgGHr6WWco 5BdzFCPwAMOoN+ahHKWmrwEDlMMwAJBa7YKg/AQ7vQIjv+vVGQiFUnwVIycWj2MLJHafdwRxU8M QdlScvHfIdjeysWUcO2l0PL/zkll489BOqwSAQWzT/bPjtwMY4v5AhzA4Uv31PNAUjm65C+Dl1N 5zFjGJL X-Received: by 2002:a17:90b:3b85:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-39debdd9c94mr602044a91.0.1789344502624; Sun, 13 Sep 2026 17:08:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 04/11] tcg/riscv64: Use signed type for encoding immediates Date: Sun, 13 Sep 2026 14:08:07 -1000 Message-ID: <20260914000814.785155-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344584348158500 Content-Type: text/plain; charset="utf-8" The immediate operands in the 5 base instruction formats are all signed, so passing an unsigned type was logically incorrect. Use tcg_target_long not int32_t to avoid truncation, which will become relevant later. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index f77fded1dfa..99bc658c264 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -445,19 +445,20 @@ static tcg_insn_unit encode_r(RISCVInsn opc, TCGReg r= d, TCGReg rs1, TCGReg rs2) =20 /* Type-I */ =20 -static tcg_insn_unit encode_imm12(uint32_t imm) +static tcg_insn_unit encode_imm12(tcg_target_long imm) { return (imm & 0xfff) << 20; } =20 -static tcg_insn_unit encode_i(RISCVInsn opc, TCGReg rd, TCGReg rs1, uint32= _t imm) +static tcg_insn_unit encode_i(RISCVInsn opc, TCGReg rd, + TCGReg rs1, tcg_target_long imm) { return opc | (rd & 0x1f) << 7 | (rs1 & 0x1f) << 15 | encode_imm12(imm); } =20 /* Type-S */ =20 -static tcg_insn_unit encode_simm12(uint32_t imm) +static tcg_insn_unit encode_simm12(tcg_target_long imm) { tcg_insn_unit ret =3D 0; =20 @@ -467,14 +468,15 @@ static tcg_insn_unit encode_simm12(uint32_t imm) return ret; } =20 -static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint3= 2_t imm) +static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg rs1, + TCGReg rs2, tcg_target_long imm) { return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_simm12(i= mm); } =20 /* Type-B */ =20 -static tcg_insn_unit encode_bimm12(uint32_t imm) +static tcg_insn_unit encode_bimm12(tcg_target_long imm) { tcg_insn_unit ret =3D 0; =20 @@ -486,26 +488,27 @@ static tcg_insn_unit encode_bimm12(uint32_t imm) return ret; } =20 -static tcg_insn_unit encode_b(RISCVInsn opc, TCGReg rs1, TCGReg rs2, uint3= 2_t imm) +static tcg_insn_unit encode_b(RISCVInsn opc, TCGReg rs1, + TCGReg rs2, tcg_target_long imm) { return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_bimm12(i= mm); } =20 /* Type-U */ =20 -static tcg_insn_unit encode_uimm20(uint32_t imm) +static tcg_insn_unit encode_uimm20(tcg_target_long imm) { return imm & 0xfffff000; } =20 -static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd, uint32_t imm) +static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd, tcg_target_long im= m) { return opc | (rd & 0x1f) << 7 | encode_uimm20(imm); } =20 /* Type-J */ =20 -static tcg_insn_unit encode_jimm20(uint32_t imm) +static tcg_insn_unit encode_jimm20(tcg_target_long imm) { tcg_insn_unit ret =3D 0; =20 @@ -517,7 +520,7 @@ static tcg_insn_unit encode_jimm20(uint32_t imm) return ret; } =20 -static tcg_insn_unit encode_j(RISCVInsn opc, TCGReg rd, uint32_t imm) +static tcg_insn_unit encode_j(RISCVInsn opc, TCGReg rd, tcg_target_long im= m) { return opc | (rd & 0x1f) << 7 | encode_jimm20(imm); } @@ -571,31 +574,31 @@ static void tcg_out_opc_reg(TCGContext *s, RISCVInsn = opc, } =20 static void tcg_out_opc_imm(TCGContext *s, RISCVInsn opc, - TCGReg rd, TCGReg rs1, TCGArg imm) + TCGReg rd, TCGReg rs1, tcg_target_long imm) { tcg_out32(s, encode_i(opc, rd, rs1, imm)); } =20 static void tcg_out_opc_store(TCGContext *s, RISCVInsn opc, - TCGReg rs1, TCGReg rs2, uint32_t imm) + TCGReg rs1, TCGReg rs2, tcg_target_long imm) { tcg_out32(s, encode_s(opc, rs1, rs2, imm)); } =20 static void tcg_out_opc_branch(TCGContext *s, RISCVInsn opc, - TCGReg rs1, TCGReg rs2, uint32_t imm) + TCGReg rs1, TCGReg rs2, tcg_target_long imm) { tcg_out32(s, encode_b(opc, rs1, rs2, imm)); } =20 static void tcg_out_opc_upper(TCGContext *s, RISCVInsn opc, - TCGReg rd, uint32_t imm) + TCGReg rd, tcg_target_long imm) { tcg_out32(s, encode_u(opc, rd, imm)); } =20 static void tcg_out_opc_jump(TCGContext *s, RISCVInsn opc, - TCGReg rd, uint32_t imm) + TCGReg rd, tcg_target_long imm) { tcg_out32(s, encode_j(opc, rd, imm)); } --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344599; cv=none; d=zohomail.com; s=zohoarc; b=TxlYIzjVBftXiLbP615c6aB9GpjWfifwTrD9v+BymVpQnXZwQKUOV6ZuTYKzoY8Xh2u4NGF4IEQ60oo4x7+Koz8DveugD8CygeoQaw6rcU3KBpZyBQFwnMTVAozzLMbAl888uINjRSddNSHXhtTK/y5I7oQt262lRdmh6JhkmC8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344599; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AXBRafcE8TuclebNUywibHP0dHCt3C5G32QauiWhFAI=; b=iP4SSU57vgCE3XILA8ifCQZlir65cPBi9BqeAf5aU4zWkcHh1eLRFo62IhVr/1eW0G8naEVGt+6qrXgMN24PlT+CIXB2WVbRBMuXjB9MBtS2hiUxNM0MccuqXQJP1++q5ZodfnyWsrc1m6KdjuW4lBBIy3YsG1V/BIKiZQ59LSY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344599253965.0781551784872; Sun, 13 Sep 2026 17:09:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFO-00033T-RC; Sun, 13 Sep 2026 20:08:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFI-00031U-FJ for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:29 -0400 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 1x5uFG-0006sg-7S for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:27 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2dcff8f44f2so40738755ad.1 for ; Sun, 13 Sep 2026 17:08:25 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344504; x=1789949304; 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:content-type; bh=AXBRafcE8TuclebNUywibHP0dHCt3C5G32QauiWhFAI=; b=xD1T0VKosLq/BDEBB6AwZPAvkEfX19F3nf0eLJmotj4qqNfcjhU/eshCWAuRlMDkzr O7YuM6pk72xk0fZydHUwfZqHwcZcmOPxqnAvTZaJMMFCMF7osByICzlIafHWEvVuy1lT wO2/+ZaKKgNoeROBdv31/c0OWpADhalzID3vUabILPkmwEiWpFN01WgMSbZlPFjKX7PG v3N9CX7YK5256FHYq2RmU2XP9hs4XjVYVL19qaXBv5q4JhZtxhqDW0Pg9M6yZm62efVI YtGPZqvrb/yxS+XayC4tEHRBKB8AHJRHwmo4UgWvSjK0mIs8TM129HlqlrGMxW2R1oSS bzSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344504; x=1789949304; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=AXBRafcE8TuclebNUywibHP0dHCt3C5G32QauiWhFAI=; b=GWSJNc+tSDxf0rMz2D6Hl+/7pYS6WP4nLVQc4GgdqX2u3i22HqOq9v8oZgtYRTNtiP xg7pMyS7xEHoa6VfWj1XQ62cKP6pev01dWyY2vU5ta0aoRMKOAYU9nUhkZkOQGpaBq41 j+n3rsnceMzxXgW7bVRMVw4VxDGGORK44yXPHLCrPeteqvNR037YBXCYyu3XcBBwMhw+ oTEM260e636+8lAbELxSn/Z724ORpdCvOTWw30O+F2lvG6egTIP9IER5CqwdBQRp5NI0 YVnHhvj/8AryG2XprNnpy6Q8t/JBxCpG/A0XvGLkg2ix832CSuC2Z+kCZga+hNdwm+4/ XvIw== X-Gm-Message-State: AFuF++nCzpNxlasLiH/2+Bd/32GCgItosPNJfPDQS6WWoSNs6WKK6BuS OdWZIS2WHPtMRp0GS0D58AqTNedAfCVn0AVKDxHHtqkPEfefMqJavBNhFf/GpJdrHM971kS284/ cnRRnEsw= X-Gm-Gg: AYBFou02lqphU+7IGtq2JJ94/pggq5qF9lee8hIkwSPDXX40f2Bn/JEkFuI/uyzNLtr zvemhSHkP62u8SYbcfUfau64EQJONMv9Pw5xi7+Klm7GNIpFGNRVgJ8Uz2bCjTlFypSiW48rnia xl4ounE3TXRSdm1wfg+XngJTAAk750z2BEiDEwRvfHDdhQWNLMLC52BF5Tf962+fL1+ClKW8aZh uYy5G7Oe1xJh6df1l/aW/NZm3rRxZuwd1vi3S2lUZFrJtCDAW55JKA2+EKi3Q44cEuWL5Cui3Ti +MeNfvo1XIwJ4PtSdCunHcs1D3GH7Ury0+NK/yyy6vATjcG7WgSGIVqoo3sCT+1Apuupe2hOkBx 0ZtfLhGWNAWj78RAqk8cJHInX9ILJOH/SZeL2/5m1/7MffthYuZjE1hsZq0rmC1FW3oH2OebhOR XbxMo/5cajQMjrk8ZjgqaHdbglY29zWp5QE9ND5p7I2HX6y6wMDwxiQxkAoU6F+5Ki12lqEGfPt d8Cul0= X-Received: by 2002:a17:90b:2541:b0:396:61f1:da5c with SMTP id 98e67ed59e1d1-39debf6bb19mr545681a91.4.1789344504366; Sun, 13 Sep 2026 17:08:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 05/11] tcg/riscv64: Adjust sign of lui immediate in tcg_out_movi Date: Sun, 13 Sep 2026 14:08:08 -1000 Message-ID: <20260914000814.785155-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344600453158500 Content-Type: text/plain; charset="utf-8" No real bug fix here, as we've already shown the full value fits in int32_t, but simple subtraction in tcg_target_long may produce a positive out-of-range intermediate. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index 99bc658c264..d0c9d8e9cd2 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -792,21 +792,22 @@ static bool tcg_out_mov(TCGContext *s, TCGType type, = TCGReg ret, TCGReg arg) static void tcg_out_movi(TCGContext *s, TCGType type, TCGReg rd, tcg_target_long val) { - tcg_target_long lo, hi, tmp; + tcg_target_long tmp; + int32_t lo, hi; int shift, ret; =20 if (type =3D=3D TCG_TYPE_I32) { val =3D (int32_t)val; } =20 - lo =3D sextreg(val, 0, 12); + lo =3D sextract32(val, 0, 12); if (val =3D=3D lo) { tcg_out_opc_imm(s, OPC_ADDI, rd, TCG_REG_ZERO, lo); return; } =20 - hi =3D val - lo; if (val =3D=3D (int32_t)val) { + hi =3D val - lo; tcg_out_opc_upper(s, OPC_LUI, rd, hi); if (lo !=3D 0) { tcg_out_opc_imm(s, OPC_ADDIW, rd, rd, lo); --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344575; cv=none; d=zohomail.com; s=zohoarc; b=WHQY9d5/Cv3GTdPYrwKxdwDVfyxiTzU4XCtVWqqmvFQa1tZA8y4v+NFwoaCnAaj41Nwm/4W6ITrzbLY6Syrh63eiyLyOFFI/n4MTLr3z8umXewSy4o+f84KS2Wqn0wp96FntJwr33V47hmO38laQ+5TcKbz21FP0TjHK3VCkNqE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344575; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/Ze0fMD2c+qbFsutTZ9K+gj42ocGU0WO8SgAfduUTTw=; b=HSKGRlQ7u1IXSZZT7b/lB0EdYRleaDB3eSl6fBg9yAKeKNROSvlNlseHDjsLxFtGS3MZuCBin7o/Z5//6qYbnAF4Zmez6PS01juyASpwH/FUPg8Yf7ARKyv/LwGm38ZijRzWDYKEQ8C8cDqK6rdWbJbJ/z5IDRnsf0DeXxn1Tlw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344575492465.7005502957992; Sun, 13 Sep 2026 17:09:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFQ-00033v-Cw; Sun, 13 Sep 2026 20:08:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFJ-00031e-7v for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:29 -0400 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFH-0006sq-Cc for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:28 -0400 Received: by mail-pj2-x11.google.com with SMTP id 98e67ed59e1d1-396ccc09d65so1417668a91.3 for ; Sun, 13 Sep 2026 17:08:26 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344506; x=1789949306; 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:content-type; bh=/Ze0fMD2c+qbFsutTZ9K+gj42ocGU0WO8SgAfduUTTw=; b=aQa00CWBQb/oZUTG1r1jrNPyWTJL23GKhSbTMXnrqeWMCof+pR9Uu5YbaqVPp0d4Fj Zgwi2+ARXq/imAU1w8BcZIPsZFSo44XegoRhGX7vJxlIPeIsyKa6Xvy2tbojYPr2ngZh SIqh87LEiTVpcQY+MXR5DWRC+uuvOOogreMb8yARAJKhHghzu7FMHU7SzOza3lS7b6/d jbrbXiWfh/LTLw76MaLRQzMf5zSaXZJV/dQ90vWkMhWKDg1zMd3kdfG1CqLGoxlaTAgm Jyo9RvnhdQaySaYqZ+rJzbH+Ay3opWtppBUEf0smkQZEWMw/NiQJ+UXKr7ttZjnFkYsS eDrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344506; x=1789949306; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=/Ze0fMD2c+qbFsutTZ9K+gj42ocGU0WO8SgAfduUTTw=; b=DyHru3MsEdn7Nm26DShsMgKtkuz4TxvhkFfqEfcmQBWxPBWDF5HEwmHXtlnw3VhIEq QdvXL2XcJySIvYPaGy6Ke0UN9KNemYicSBexCWBF6Wv04z8aWuo2GkMUyfm/z/vfwuap nJZIYvoy7Sx+Po65pL/L5oXebYiuvyxGKajXmq2xOEEHR50SfzE5MWIrDQ/hVPzLHiM4 sXXnJE28j2iM9mjOBH1rIqZCZB/Brr9r76fRHQmVUlt33nyGwX0HDpqeNShzVB99q1Jr v3TwuRnZ2A1FlMjValyaJog7PT3Uv42fv+j+eh54W1YDtRO8CgC2oXYzSXbPkKGUvoNr LBDQ== X-Gm-Message-State: AFuF++k8oWmeZm0o6rP7xCvK/dhYuee4DwFami9ukElK8qwbprLyd+AP rCd1qAg3s1j/k3Bz7KYMMWSY8yCTtvJZw7FPKBnqNA3ofCZAiuNb9ufbBF8Ihc8WyUEqqbkLO4v Vqcfi1mg= X-Gm-Gg: AYBFou1g0N8DlQPrdN+cPImj/itot1l85g5XA79Jsh6TEwEn2D6fRoSy9tO912dq3ji hz6fF4qg9Fms+2kaqgX3r7uFWrG/A3SN/1frs4kVVfhHugY1J+TvmhhFax64ElDCKqZSB2U8uLs S/5MjVLZRx+dPXEnR1bmIZmIntRAdM9Mj+HmXMm9Qn+SdBHsX548TMqphqtQ3rEE0ckNMD5OeHK qXRTILikHRVRe/7JPCQCiCr31g4IGsa9DdH1C0bGJr4/z9p20GPZomFB64euInka9G3fjzcYVse BMSSE3wiDjmc/P59kiHjhvEaE9ijzITUVzKJ/QM4KjzqfT79wjjpXso26rUknmadm/oBCL34NBl nKkIY+kaTzOdxUEK5mE7Jc5Z1gEAy8lV1Kxg06J//eDlp34h4TFOka169Av/qoEKT7a/57ZQzR6 0VRa0EH/xtem8bs2TYp+3k0v4nUPXedR593RrYhQvBwOR1rTJJ5u4uBzVw5WV96dlcsnTwTxB0o NvbEZY= X-Received: by 2002:a17:90b:3c4f:b0:398:9bd4:d12 with SMTP id 98e67ed59e1d1-39dec0972d0mr600377a91.17.1789344505911; Sun, 13 Sep 2026 17:08:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 06/11] tcg/riscv64: Assert immediate in range for [isu]-type insns Date: Sun, 13 Sep 2026 14:08:09 -1000 Message-ID: <20260914000814.785155-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::11; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x11.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344578490158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index d0c9d8e9cd2..a5ed1e95722 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -447,6 +447,7 @@ static tcg_insn_unit encode_r(RISCVInsn opc, TCGReg rd,= TCGReg rs1, TCGReg rs2) =20 static tcg_insn_unit encode_imm12(tcg_target_long imm) { + tcg_debug_assert(imm =3D=3D sextract32(imm, 0, 12)); return (imm & 0xfff) << 20; } =20 @@ -462,6 +463,7 @@ static tcg_insn_unit encode_simm12(tcg_target_long imm) { tcg_insn_unit ret =3D 0; =20 + tcg_debug_assert(imm =3D=3D sextract32(imm, 0, 12)); ret |=3D (imm & 0xFE0) << 20; ret |=3D (imm & 0x1F) << 7; =20 @@ -498,7 +500,8 @@ static tcg_insn_unit encode_b(RISCVInsn opc, TCGReg rs1, =20 static tcg_insn_unit encode_uimm20(tcg_target_long imm) { - return imm & 0xfffff000; + tcg_debug_assert(imm =3D=3D (int32_t)imm && (imm & 0xfff) =3D=3D 0); + return imm & 0xfffff000u; } =20 static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd, tcg_target_long im= m) --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344561; cv=none; d=zohomail.com; s=zohoarc; b=IBihqAL1v4gVqhi3U7a3cT9/WUk8GFIEs4HFtfg3xqFI58Y2Q18qqnVWnehxHhqQNzF7Cg+c7bgVeTVg6tqHJZI9QbAM8qoNcIUSgKDYmjSCaR8WuUVnTLf6cc1F4MkuDQN6g57Y/oe/n2b2KeYOIjyt79JNKpoUQucsEHcAFp4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344561; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7rzauUj35o1eVBCcwJF0HTD6HkIw7xx+rAbULRW0WPg=; b=TbAAaXPvksCu0rvMyXFTOskvyk7sj4C3T0KiwQcxLtwo3m5gLXCWTP5DnjGcTDg/6cERXIY7oZS8ozOWzERmklXhWHdBI1QdR3NrZNyoJNJOlK2PL6AWimtwCWMZoWtndTyoq72iYt1qwGzKbt0M6yr6XfqyDZl2cU4p3Ujpv38= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178934456169480.31315423329738; Sun, 13 Sep 2026 17:09:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFQ-00033w-Cq; Sun, 13 Sep 2026 20:08:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFK-00031n-QO for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:31 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFJ-0006sw-11 for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:30 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so2369981a91.0 for ; Sun, 13 Sep 2026 17:08:28 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344507; x=1789949307; 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:content-type; bh=7rzauUj35o1eVBCcwJF0HTD6HkIw7xx+rAbULRW0WPg=; b=JE7eT9xEn+56IyEV8YYX16iM3jmwvH4QOwGnwDZYUUhTbslEfzHa4LeLB0mSVKqb08 r++8n95S12ZZpshvW0wrzC++ZPuH8cWjYV17eV5L8ZbqQyJh2KETBtf4HKlUw+zeHKwG tieNABVIak+7cmp7dW69oxuShDzflsexskaXY5DgcafZFYbX3j1vFJIYhNnFD7e//XV9 5rLqtKsQdP3c3raKdDnCOwtRk1RmjivyacbVEArNqo44DnxAJpIYBM73GjV6LTi/kDRE Jme4FGOZiZxFXRMI2xNvnZr3P/N+mr0YeNBISG4N50GBF3Th+cuugqT2byeD+9tGAfwm mQUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344507; x=1789949307; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=7rzauUj35o1eVBCcwJF0HTD6HkIw7xx+rAbULRW0WPg=; b=nkq3bcEkrY7ayxNP8MsJFcgYe2mR+yvSSVvAE/9s6ZgE9DrZdyWHKt1x6+tkzMRVR2 WG/try5BeZJgOzgpCvRZyHvBKgioBmnn4JFxdkn0VrzRJADmQ6/jqnPsKCt6pDJTyg1F e8phZ4B9VCp9Olz/SpcroxOSeCjrQgTcxiH+2V22088nGYqcTHSETYvcR6xPHN9PkX0s px+om0oBJufO7RWUMCZrZY0PCZhfBoJ78ubg8+7HXRyI5lO1xkecw2vyVuUMSY4WtkoC rsogm8Ki2VeXsZdWgScxJhWLPP018fBnNCDOlarYzH9gtnDuusdi7hWBRyc9jGcG0BZe V+ZA== X-Gm-Message-State: AFuF++kjp4cRHCe8iuTrUBxVZ2a6XNXcFHWaa0QNJoYyArYznO9BMkDd cMcGrVgjiQJUOJYMdvaRdt8BqRkQZ0Q1EeIzUn0C/POlNXfFgYD1x459SXeKF29NJSrMUq7jvHC 6mMdJthQ= X-Gm-Gg: AYBFou1l1VioUphuPdVEouk73o1/Ol6MOZkBHfi2PP6fR3g7fUGJgmU4AFIqNWtXoq0 eQEG8bpFTTb9zVJC/GlV/+q8NpYNT0Ph4iptXk4VulmmID6zG+6kiumINyJS2AJbWlwUb+nrhS/ TZeoEs7ZSo2rP278YDZWDFs5ZHH7eiIW2NQJybejFPgi1mnbPAlwLIiDjzYBGxEShlFrV7erT0A /hK9nJ+jFb1oF/5dqjZXvhnSxCnbdiaStDuqmzWypWDaDB3DZMRUlzYWegXxdXCeoXej6+hf+9t a9mOIL02bKOVytqX06R9oxSslvVLWMmctqgkyOExlDDIbbrJz7MCJVEA6SgZ75huoIG99Qm0Ehv PW4SL/fEHu+0AJdsFZ+DlUL6uy3EFB4dX9ij7RymHweXMCWfFVt6lmVa/kT1+aPaRklO4SzMMMq +rIlv8EHI3qfUlW8NTSsMdU+9MXRV53S+EqpUvHXnlVDEa2LsGNZuMn+elPRS7iNPsIiwxkzRT/ JCOsn0= X-Received: by 2002:a17:90a:dfc8:b0:396:b98b:a3c2 with SMTP id 98e67ed59e1d1-39debfa3e51mr575644a91.8.1789344507227; Sun, 13 Sep 2026 17:08:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 07/11] tcg/riscv64: Return success from encode_jimm Date: Sun, 13 Sep 2026 14:08:10 -1000 Message-ID: <20260914000814.785155-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344562721158500 Content-Type: text/plain; charset="utf-8" Centralize the range test for this encoding. Directly OR into the insn value. Assert success in encode_j. Use encode_jimm in tcg_out_call_int. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 46 ++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index a5ed1e95722..09bfce79bb7 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -511,24 +511,26 @@ static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg r= d, tcg_target_long imm) =20 /* Type-J */ =20 -static tcg_insn_unit encode_jimm20(tcg_target_long imm) +static bool encode_jimm20(tcg_insn_unit *insn, tcg_target_long imm) { - tcg_insn_unit ret =3D 0; - - ret |=3D (imm & 0x0007fe) << (21 - 1); - ret |=3D (imm & 0x000800) << (20 - 11); - ret |=3D (imm & 0x0ff000) << (12 - 12); - ret |=3D (imm & 0x100000) << (31 - 20); - - return ret; + if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 20)) { + *insn |=3D ((imm & 0x0007fe) << (21 - 1) + | (imm & 0x000800) << (20 - 11) + | (imm & 0x0ff000) << (12 - 12) + | (imm & 0x100000) << (31 - 20)); + return true; + } + return false; } =20 static tcg_insn_unit encode_j(RISCVInsn opc, TCGReg rd, tcg_target_long im= m) { - return opc | (rd & 0x1f) << 7 | encode_jimm20(imm); + tcg_insn_unit insn =3D opc | (rd & 0x1f) << 7; + bool ok =3D encode_jimm20(&insn, imm); + tcg_debug_assert(ok); + return insn; } =20 - /* Type-OPIVI */ =20 static tcg_insn_unit encode_vi(RISCVInsn opc, TCGReg rd, int32_t imm, @@ -638,12 +640,7 @@ static bool reloc_jimm20(tcg_insn_unit *src_rw, const = tcg_insn_unit *target) intptr_t offset =3D (intptr_t)target - (intptr_t)src_rx; =20 tcg_debug_assert((offset & 1) =3D=3D 0); - if (offset =3D=3D sextreg(offset, 0, 20)) { - *src_rw |=3D encode_jimm20(offset); - return true; - } - - return false; + return encode_jimm20(src_rw, offset); } =20 static bool reloc_call(tcg_insn_unit *src_rw, const tcg_insn_unit *target) @@ -1577,14 +1574,15 @@ static void tcg_out_call_int(TCGContext *s, const t= cg_insn_unit *arg, bool tail) { TCGReg link =3D tail ? TCG_REG_ZERO : TCG_REG_RA; ptrdiff_t offset =3D tcg_pcrel_diff(s, arg); + tcg_insn_unit insn =3D encode_j(OPC_JAL, link, 0); int ret; =20 init_setting_vtype(s); =20 tcg_debug_assert((offset & 1) =3D=3D 0); - if (offset =3D=3D sextreg(offset, 0, 20)) { - /* short jump: -2097150 to 2097152 */ - tcg_out_opc_jump(s, OPC_JAL, link, offset); + if (encode_jimm20(&insn, offset)) { + /* short jump */ + tcg_out32(s, insn); } else if (offset =3D=3D (int32_t)offset) { /* long jump: -2147483646 to 2147483648 */ tcg_out_opc_upper(s, OPC_AUIPC, TCG_REG_TMP0, 0); @@ -1961,15 +1959,13 @@ void tb_target_set_jmp_target(const TranslationBloc= k *tb, int n, { uintptr_t addr =3D tb->jmp_target_addr[n]; ptrdiff_t offset =3D addr - jmp_rx; - tcg_insn_unit insn; + tcg_insn_unit insn =3D OPC_JAL; /* rd =3D TCG_REG_ZERO */ =20 /* Either directly branch, or fall through to indirect branch. */ - if (offset =3D=3D sextreg(offset, 0, 20)) { - insn =3D encode_j(OPC_JAL, TCG_REG_ZERO, offset); - } else { + if (!encode_jimm20(&insn, offset)) { insn =3D OPC_NOP; } - qatomic_set((uint32_t *)jmp_rw, insn); + qatomic_set((tcg_insn_unit *)jmp_rw, insn); flush_idcache_range(jmp_rx, jmp_rw, 4); } =20 --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344549; cv=none; d=zohomail.com; s=zohoarc; b=djYZuQtJvWVvFlbtocRvxl1fCw/OHJekqfFQqF5Yghe3YtO1pniKwROuTNRtsHMZ0mC6TI4lPISpbNIeOhN/XcmktxDXSQLlZuq50rpdeq69GUSBjwPln+cNpufCzWOf1TZKBuDAZbaZe/guMMpG9GjysewUZwaWBRtTpqT9mtQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344549; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jCURvq3peylDGPhQ7UrlrETYmQ0E5EKE8owoGQOGrkg=; b=iQr4yMG0ZK4GAGvqBCr0vZs/Nw8PKovvmu6vOLEw4WZ6T3ZSU9Za2DC3jAPRb9qxUiQfuUAVqVFICgecItChHtf6r5Mgo+jsJqPa9jYl0PJzZNHw9jH47Kyy07Wg+UBFp0crYx4MYMHbWTG5dxNlyNhwZYQcNmV76rSleyymUQM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17893445491027.667036769010451; Sun, 13 Sep 2026 17:09:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFQ-00033y-DI; Sun, 13 Sep 2026 20:08:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFL-00032W-Vj for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:32 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFK-0006tC-5u for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:31 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-38a0c7e841fso4137777a91.2 for ; Sun, 13 Sep 2026 17:08:29 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344509; x=1789949309; 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:content-type; bh=jCURvq3peylDGPhQ7UrlrETYmQ0E5EKE8owoGQOGrkg=; b=AaEMwBHhEJUuslsmQlIcMTw2wgY3Pzewif6wf9RDFat0B9IkYyQbJ07OZG5BM5/jSM 0c6EumQDBqVMiKtkH0MPirma2e3L1URCcn53Ejm+kAzxJ70MHsLeCk7nzVRqtAn3km18 17tWUfQVDHeabbY5BxpaMwGe2P27YbWSifIGFiP5HWrUVFaO3+dZK6ijl56Wsig02jR1 IQXK7q3ivRe247HK1r3ycpxuGhy+fwMRaKeVDJ9+YSDV9NYI8cbww9y/VKI21Ik099Ts g9jI3uaLf8gg9PLDBHV7u8jg01V4IZSCOG1OOSPPk+SIYwoD/T9AI34CuNndc/qg83b6 GcWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344509; x=1789949309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=jCURvq3peylDGPhQ7UrlrETYmQ0E5EKE8owoGQOGrkg=; b=oaGr2O8ilg/RlvkKZzSXy5ToOSK8/0krdvsQxGxDlO1h5qKZ9wO9npy9g80S5ABrjz 9X7YcBmLGc86NTOua7g7kUgqy9tD4jgHD+BdIEKRhg4jnEjuWQSeIRs/Rm4OUVl20GzR bGAGHcGVBfWn7z3REOWPQL8OUlof7pmGQwaU8zbc33yqlBSlgnl9wyMjhO1E0EdofSUU R0YN/MSWc7OtvRWMzo78jaa6tMbUva7a47SnBSAXT4jSUU67qfLdE4yRI59XVK3wVurY ZFep9Ulo/FAixh5AsWknfAXNV77oKi3piGRuCxX0yH5XGNhO4gBdDB+snitTep7BkN+X fvng== X-Gm-Message-State: AFuF++lj20ImQK7jcGm2QwB5a8aaVh3Kzhr1alvkT1uHaqXWbW6sDJo4 hHSBl/YlG8zjt6AuV+2/BGXHXSOljCp+kIn1E3+x0ii+kM2C308pKmakrswzYkbtgIj1p/dM0pr udqa5RHw= X-Gm-Gg: AYBFou0cqsw2cfmhTpU+PWiBgHfKLnMoVeeUEZkVFua40pAUciNoGv1iRsgIg8p0jDI dfqRVS/yGjBFXvQeCxhuANTZUQnXKezDtKE3uCyQq6Oe4bNsLDuo/fxAbaZvAJ9tE6FLEAfObe7 uJ9fufbwmTWDL6/+YPo537L6sYS4RtdJEKtuXEoPagNIVvMy3uqNtyRpJpgYjbY+xB+ip838Kmp XTBR/jAPUWQtKOPcMUXAH6PFAHu5YDYvM7GtFeSkKYMnB+HykczWEj5xxS72IMhYiK7KuP0EVt0 wF+dha1TZoC9bGLs3S+VybW01Q+1eK011kI9IsdI7sfFFI8eG8pcbRV31UmoCu/IDZOoz5Jkz9j bmntvqw+5dtJgRJFRA6IrVlXJQp6K1YKpNqNKv/RXiV6JW5kHq3uKw4j4TLBqCoL5Yo4pNSXVEZ xp13KJGG5c3CoW+boJM+L7muQ9GvO74uI/mc7ZU77UeiunbKBIPrqMgdWpGI9lNKr7P+ZMSZjdj fObyFAk4tC03F4eDQ== X-Received: by 2002:a17:90b:2885:b0:398:9be5:b419 with SMTP id 98e67ed59e1d1-39dec0bf165mr583034a91.20.1789344508633; Sun, 13 Sep 2026 17:08:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 08/11] tcg/riscv64: Return success from encode_bimm Date: Sun, 13 Sep 2026 14:08:11 -1000 Message-ID: <20260914000814.785155-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344552385158500 Content-Type: text/plain; charset="utf-8" Centralize the range test for this encoding. Directly OR into the insn value. Assert success in encode_b. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index 09bfce79bb7..e8e1480016c 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -478,22 +478,25 @@ static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg r= s1, =20 /* Type-B */ =20 -static tcg_insn_unit encode_bimm12(tcg_target_long imm) +static bool encode_bimm12(tcg_insn_unit *insn, tcg_target_long imm) { - tcg_insn_unit ret =3D 0; - - ret |=3D (imm & 0x1000) << 19; - ret |=3D (imm & 0x7e0) << 20; - ret |=3D (imm & 0x1e) << 7; - ret |=3D (imm & 0x800) >> 4; - - return ret; + if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 12)) { + *insn |=3D ((imm & 0x1000) << 19 + | (imm & 0x7e0) << 20 + | (imm & 0x1e) << 7 + | (imm & 0x800) >> 4); + return true; + } + return false; } =20 static tcg_insn_unit encode_b(RISCVInsn opc, TCGReg rs1, TCGReg rs2, tcg_target_long imm) { - return opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20 | encode_bimm12(i= mm); + tcg_insn_unit insn =3D opc | (rs1 & 0x1f) << 15 | (rs2 & 0x1f) << 20; + bool ok =3D encode_bimm12(&insn, imm); + tcg_debug_assert(ok); + return insn; } =20 /* Type-U */ @@ -626,12 +629,7 @@ static bool reloc_bimm12(tcg_insn_unit *src_rw, const = tcg_insn_unit *target) intptr_t offset =3D (intptr_t)target - (intptr_t)src_rx; =20 tcg_debug_assert((offset & 1) =3D=3D 0); - if (offset =3D=3D sextreg(offset, 0, 12)) { - *src_rw |=3D encode_bimm12(offset); - return true; - } - - return false; + return encode_bimm12(src_rw, offset); } =20 static bool reloc_jimm20(tcg_insn_unit *src_rw, const tcg_insn_unit *targe= t) --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344583; cv=none; d=zohomail.com; s=zohoarc; b=Vs30aRIHO3krmu9/h7RFRbLn0T46X33kBfrTwGKVz2HJKdo+19spGboqLSYwhtEXP402X5VfCo0AoEG844vtvvk8SAp2MB/0k7UykD6QJE1zpSIYcs/kf3X4y7GAfx4dxKgwYAmSESLy5t8y0lxNdX8jl6Ho16SPHzaZgNSM4Zo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344583; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NISPAeUPvsgRNajDvmHaQc1XWEGMuFuhN2VPCZGR4LA=; b=VgyhrUVbb7uvFPgEjZ4aEQgFVzB+2fIqFlzTcwfdohheEeoND6e39jJBUEIahQCCdzJqMJeF/G7SaQP/0WDUz8FQ+C7XYBaRFeqhJ6RRvgVNF8oSVjha/s3Tci6+D/rl6mjx2lZtTVAgTGkTbi7gpGbbSgeJTkPBiIaeo002Bqs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344582905141.1614075617823; Sun, 13 Sep 2026 17:09:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFW-00035G-H1; Sun, 13 Sep 2026 20:08:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFN-00033H-0M for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:33 -0400 Received: from mail-pg1-x531.google.com ([2607:f8b0:4864:20::531]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFL-0006tL-Fw for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:32 -0400 Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-cc149372c14so1674291a12.1 for ; Sun, 13 Sep 2026 17:08:31 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344510; x=1789949310; 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:content-type; bh=NISPAeUPvsgRNajDvmHaQc1XWEGMuFuhN2VPCZGR4LA=; b=ONS+qabT40qrkH+G6kZ3yZVYXtkpU/yJw335nLAMuO2ctWPS2xiZ7DNSxDfepNqiy8 BJmmtqjC9+fxiR0Cks8nmCqKPxzeEKMrDfr44aKaq8tRyHsI6zs+ZjEVCgY/k3nHJR25 eojrkrqP2yi4Xet675zhRhuZVt8Xs1YiNe5hejNfe723fYazn6a/gbF0dUcuh1RokMXk yTubqYsTz5Wf/9DS2AnLARAVeur9cDvqbRSb72WNX7uhq0Kg7qKPETc0zApqqO3CNV4t bVtzSZ1GLpEE7LxBTqZBHvn4o1kbYNBzCxh0/gqlSwx8rmZBMHr6pHFr4QMIbV/D2Qka eV+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344510; x=1789949310; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=NISPAeUPvsgRNajDvmHaQc1XWEGMuFuhN2VPCZGR4LA=; b=NSmptWjZIERDcTvg/qyS2u7kndRyY3E85urC70Sc41I4GK7AHLUNMUqEhQ7qY7dslZ KL22VYZ+yuIiJXfAwTQykLFdLSHTpP7VALhlGEd4B+W2c1BKe0uS5buqG61lyLqktnKw J4Bc67CiyO7WWjPtwrFFWKncD5JmvYXh6IHJEBxYe5iHTn8qpM7zcOa6lwsXu4Ol79ZS tvOQQZJSTJUsV/BcGEeF/GGSDNSVWL+nbw1uBOOS/r+qp227x7An0kkL/VGYYXO87qE9 dywOOpgdUqKM5XeR5JnQbBwdbO+Q/sKQvsPxu4JXdsCKbGeXk2lXEJhNV1ptoRKmjFal XiUg== X-Gm-Message-State: AFuF++kV8V4e5+chZ4jnUcGiAH6AIVEnlGA26i/RzGmTQXnayrAGywWb P5nUEYzuvUEjjAbB9i/4UhqGSA2LoqE8+9kjPelaTKRZE5PDEkPjatcbw7F89nUJY9A6ZKkIEss XKwbA83o= X-Gm-Gg: AYBFou29mRbZQp0S0rAWDj+KfzocK0W0efqOpkIXZY33nQRmZqw6BQh2qxBKLrFTocJ zHuAsf1BBSmIRbysPzo9pxRV4AcN6rhGVYhD/noPAzRDRzQ55CU3MiaxUYI4tSitx/+CgG5TPJW QIk1hWjQ7QcZDoCkiVvO1+gNMOXZf28JhPY/0uuIANkdub6szKZZCFT2EANOPkQ4SJBeY4bNHy2 YTAJkv2PUs/b1xzdkReKCoHrRYgUr0W1azOBKoJNp9ljpzKyOKbmL6yHH6UF+K3B+WID5yHhTw0 Xbq3z4oTDZ5IlKh5MmKIpgc3x6JHRjf+tLWB8QtxgnUU2/rfB7IBwBZuJ6XtFNmTIwpL2oiDUx6 +M9zN7PS07Vjaodbl3/ISoalGZzR9siNsDSdiDnGl3AYpZNN5uouDLXCDGuCSEJxOgUvBGRYtfh BizpWp/pFaXekvpNtB/H6RsDx41vzxa8nMCUFCu+ABp9m80ZZk9KS3DHb6jzdul6xHEt+qBc/pt aIZj/fk X-Received: by 2002:a05:6a20:6a26:b0:3da:5eda:d167 with SMTP id adf61e73a8af0-3daed1515e3mr27460656637.5.1789344509851; Sun, 13 Sep 2026 17:08:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 09/11] tcg/riscv64: Fix off-by-one in branch range tests Date: Sun, 13 Sep 2026 14:08:12 -1000 Message-ID: <20260914000814.785155-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::531; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x531.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344584396158500 Content-Type: text/plain; charset="utf-8" We tested the size of the field encoding, not the actual range of values. Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index e8e1480016c..c167ff5237a 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -480,7 +480,8 @@ static tcg_insn_unit encode_s(RISCVInsn opc, TCGReg rs1, =20 static bool encode_bimm12(tcg_insn_unit *insn, tcg_target_long imm) { - if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 12)) { + /* The 13-bit immediate is stored in 12 bits, with bit 0 zero. */ + if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 13)) { *insn |=3D ((imm & 0x1000) << 19 | (imm & 0x7e0) << 20 | (imm & 0x1e) << 7 @@ -516,7 +517,8 @@ static tcg_insn_unit encode_u(RISCVInsn opc, TCGReg rd,= tcg_target_long imm) =20 static bool encode_jimm20(tcg_insn_unit *insn, tcg_target_long imm) { - if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 20)) { + /* The 21-bit immediate is stored in 20 bits, with bit 0 zero. */ + if ((imm & 1) =3D=3D 0 && imm =3D=3D sextract32(imm, 0, 21)) { *insn |=3D ((imm & 0x0007fe) << (21 - 1) | (imm & 0x000800) << (20 - 11) | (imm & 0x0ff000) << (12 - 12) --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344549; cv=none; d=zohomail.com; s=zohoarc; b=dkuH8fhZOX7bQUv4hj7nGdNHuXugofbdXv47MFRpzfAEY+tGHO8dyBGaHSg39pOsiQSWl/mdzlPjN+Tt7l+OnyYYR2thH4ZXU27zv9cZLj/iZQcgJsA7Kj2W6FDBrjA/+tCl1Qtloqsr403Dgiw3qgG+AEiQLhPyl3XXMYhi3AM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344549; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2z9m/YOpcToSgBJOfPpTljwJ75aRrsoL4rxY7if3/dA=; b=O2qJBx6uDTBaAXCjM6GsT5O3GNFkftgPHAY0j/fw2q8NfSMX/YsqtD+kyW/YBITVwmsSxEKhvRD2ye6mc7T0rrsFYhciHtZUWOlQfoytexVM17D+SAcvli9krbR4lzf2WQLD6wBVYRJB2fdw5QuWl1wVd+4swgq1B0aigamifMQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344549103605.9193017670236; Sun, 13 Sep 2026 17:09:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFY-00035s-MJ; Sun, 13 Sep 2026 20:08:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFO-00033S-6k for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:34 -0400 Received: from mail-pz2-x10.google.com ([2607:f8b0:4864:3b::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFM-0006tW-Fb for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:33 -0400 Received: by mail-pz2-x10.google.com with SMTP id 41be03b00d2f7-cc4aa0f1a94so930264a12.2 for ; Sun, 13 Sep 2026 17:08:32 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344511; x=1789949311; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=2z9m/YOpcToSgBJOfPpTljwJ75aRrsoL4rxY7if3/dA=; b=aMAOmfTL4llwsw+oeDpKpEi75dFGGqduynKqTQzJXH23zQm0EilY1ukfn/IWCLIVJu Ftata7/aFNePz9QL/lpO4xe9N0KwCCICKo6yjnI/q5jRbsw6u8gksJoAVeOZTzMjgoHa qIoeK+B7Rzvnq7Q/otWpTcRRZgs9qUcMYTM7fuphcbdOc9CLOudL+b+xS9hTVT08kbfv ofKIob2am+Uy2E41B3uBx6qNeDeD1lH9bjHKPlRdowT4rrNW1GSy1PsDaS6HXj6Vhbnp psexLrk6WGkCf26771uMGAHtpOz7b+OGXdC75GYqxWfRwUs+SLRUA6u1tjphJ2t5I7z7 yp/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344511; x=1789949311; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=2z9m/YOpcToSgBJOfPpTljwJ75aRrsoL4rxY7if3/dA=; b=hJxnMtrR9lVIQrux7mSNZWygnaXNkgghqYRP0zAIjBvvWEgAo1wHbovCbY5G80k3Mr XdfNblxxWX6OjbrEqEBqCqm+ZUFR/sLVy42Hs2/jmAejnUQE33pJk+W26wp4Lx4Fxns7 eVtrR8e7h4pVBjaxLmT+gfZaRMOYgSxu3ZL8zAOtGyvb8erFas6upvxFIVeOoFM3NP7+ 0LYCQqpvnubiEs1YLYm4ctYXFw+IjvAayeJCNwDh3lIiGVWswMvQ64MIU9zSCsg1sOzf 5I+uQMah70EPVmAh6oki92UHrj7DG8/NssPmGVdD7WZdwqYUNjEs4yLYJx1+2dS+ZqvS BGlQ== X-Gm-Message-State: AFuF++kpUNd61OKgS+k/FW/NfrnZRtrGVAgGwES2iMoguN/iN4aBvrOY be+dL3AyQygXgp4x1FXx/knn5NZRdZhOXxoET2St1wkOS+SwgufCmSmInJgmJPZTyruDTADBifA TUuMDHHI= X-Gm-Gg: AYBFou0v0cK5voENRg9O8FvjCDKpzE9kInP4DL7GQ0DWRbzQorTIqZCh5MOIPmt5BvS F6e9+5IkTc3P7/xOkmjY2epi5jLHoFFgxZ1jYa8iZmNuum+XWHz/VBfeYN9Ht/TWbJt2Smi6huY OKsiAvrlnXtS4eHxkYxjtEShcueb/oP+axYhGofoIQgJiKtXhcHwdGWnBVr/UQ4ynjO0PRiMW35 9AZyd8q2h56pBvHvPbbnfcEbwy1VC32tZmwywQ87DB3bJ7/LkHq83ikcqAUhTY9bX/mJNXdpZTm zUpPr6lAVJz/41AUduYWdMY2SyU4NXCV+HOkO1uU8S1p2l6wRqXv2ueL6+j4h44fjx7mi2fr1VZ Ql5aMhyBu3c8TRrAw6mPxzticj5aM5fL7mnuqUO6nqRFxTRoHXQ2C895X+/0TOZzVkf0bpmwEZ3 U8I57GwpVpAltgLXS1fOC3UozH5MtoSh2a4TDl+uv6vbZYpg5vqSAEUMDOdrxGUqf4LUvSRRzIV PWVgrE= X-Received: by 2002:a05:6a20:72a4:b0:3da:1e7b:ea27 with SMTP id adf61e73a8af0-3db0e485bb5mr16576419637.21.1789344511079; Sun, 13 Sep 2026 17:08:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 10/11] tcg/riscv64: Validate AUIPC relocation range Date: Sun, 13 Sep 2026 14:08:13 -1000 Message-ID: <20260914000814.785155-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:3b::10; envelope-from=richard.henderson@linaro.org; helo=mail-pz2-x10.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344551058158500 From: Max Chou reloc_call splits a PC-relative offset into a signed 12-bit low immediate and an AUIPC contribution. When the low immediate carries into bit 31, the existing 32-bit arithmetic can accept an unencodable positive 0x80000000 AUIPC contribution. Keep the split in pointer-width arithmetic and reject it unless the rounded upper contribution is representable as signed 32-bit. Factor this validation into split_auipc_offset so reloc_call retains its existing failure contract. Fixes: dfa8e74f9463 ("tcg/riscv: Add the relocation functions") Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Max Chou [rth: Pass target as intptr_t to split_auipc_offset.] Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index c167ff5237a..7754bcf39f2 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -643,14 +643,28 @@ static bool reloc_jimm20(tcg_insn_unit *src_rw, const= tcg_insn_unit *target) return encode_jimm20(src_rw, offset); } =20 -static bool reloc_call(tcg_insn_unit *src_rw, const tcg_insn_unit *target) +static bool split_auipc_offset(tcg_insn_unit *src_rw, intptr_t target, + int32_t *ret_hi, int32_t *ret_lo) { const tcg_insn_unit *src_rx =3D tcg_splitwx_to_rx(src_rw); - intptr_t offset =3D (intptr_t)target - (intptr_t)src_rx; - int32_t lo =3D sextreg(offset, 0, 12); - int32_t hi =3D offset - lo; + intptr_t offset =3D target - (intptr_t)src_rx; + int32_t lo =3D sextract32(offset, 0, 12); + intptr_t hi =3D offset - lo; =20 - if (offset =3D=3D hi + lo) { + /* AUIPC sign-extends its 20-bit immediate after shifting by 12. */ + if (hi =3D=3D (int32_t)hi) { + *ret_lo =3D lo; + *ret_hi =3D hi; + return true; + } + return false; +} + +static bool reloc_call(tcg_insn_unit *src_rw, const tcg_insn_unit *target) +{ + int32_t lo, hi; + + if (split_auipc_offset(src_rw, (intptr_t)target, &hi, &lo)) { src_rw[0] |=3D encode_uimm20(hi); src_rw[1] |=3D encode_imm12(lo); return true; --=20 2.53.0 From nobody Sat Sep 26 20:52:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1789344598; cv=none; d=zohomail.com; s=zohoarc; b=IqIw/Is3jiop49+u9Mk33QHWy+ZL4u4HP9xWVxIccRiBP+KsbGot+E6n1fqte+95uFk6VJqxsWLvPKWeFp6ZMr5eDSbpYFh03NxphfBOflipE5+sEHZ4+DNp6m7oNNf/W4RTO4aDt0RuJCZ/rJasSSHTG6afQqPVYUrHURciaPo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789344598; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lRKC1NjwzkFYnwd3q3kKfMylXeO+schj/guqn+zGtj0=; b=gZJQikZ3NjEbKz4lMMiWch75iBTDclP2YIOJGlDQzVw3+SLYQAjBe1Aee2C6CVvhL0+M7Ic/NGAKic0+jjMWJFAYAHhhwXX317jtxrKxeBN5i9eaNP5rfhJUR5otmzO8vYO63ScEmwv/SC5VxJxMu3ZNH8pKprAsPn1j73vthms= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789344598216104.9487822003423; Sun, 13 Sep 2026 17:09:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5uFU-00034w-0v; Sun, 13 Sep 2026 20:08:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5uFP-00033s-KR for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:36 -0400 Received: from mail-pj2-x10.google.com ([2607:f8b0:4864:39::10]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1x5uFN-0006tj-NI for qemu-devel@nongnu.org; Sun, 13 Sep 2026 20:08:35 -0400 Received: by mail-pj2-x10.google.com with SMTP id 98e67ed59e1d1-396ccc09d65so1417716a91.3 for ; Sun, 13 Sep 2026 17:08:33 -0700 (PDT) Received: from stoup ([2603:800c:7900:ed00:1665:91c0:9a80:f870]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-14382741839sm4937677c88.6.2026.09.13.17.08.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 17:08:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1789344512; x=1789949312; 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:content-type; bh=lRKC1NjwzkFYnwd3q3kKfMylXeO+schj/guqn+zGtj0=; b=kibiIW+aYcHNA3DowabFwJ1mN8VMVGdBM4TIp26W7O8LhmvRFNHtVFzKlEzEPBc78X r3ntO3HY2og93Zd1VsRQB+YdmgC728OU1zU/T9K4IpgROhTqcLUsv7z6dul/9k2TLf+S 1Z2tCcJ8K6NrKCxrpBBuPM1qVLG0dOKrurYNlmPFw33YN59TVrcedxWXf9jNBIvDPmS7 No+V+FK0lwM1zkz/xS0JhPoSgWAASR3M2ohX4dhrZRBA8A05aR/QLwgUhewldP8ALq8M XJjQuiFwDKzJKqA6mc+zs3IwO0ZBxo8jZyntF+gyXT/qz+RERYxdrP9ueeF6ZgDXk+EK 4zXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789344512; x=1789949312; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=lRKC1NjwzkFYnwd3q3kKfMylXeO+schj/guqn+zGtj0=; b=VqKzDemRr1g35NwI+vB8wNlhKxzy7mP3s//LfSVU9xH6D9hHgPRUAUSY3gBn3dMqN2 sS2OPrG6Orc93xWKY0xE22MjkYttSfuKJlG02twpC20hI7cToq3zAcLQbYi5Z15iqftk ywjHXXIYYI1lbieM4cGbw/OAnizUXHnODFN2o5uNkMVV4nNvuEugRvFDxZNy5hZ8q1yM DtuXaYq8vnrJcaY/h8is387aVpmuLxL/PITiHBz8xMIlOK9DuOyREelIDuy33uUbRiBf Qu64ExhjoW15TKAk9Fu+opb5kSBBxZav9QSrx0WL4kNaq0W6FvlImfc1xf6su4ONkW6Y TLuw== X-Gm-Message-State: AFuF++lM1wnJNTvQqkum+FGpZy/6rZE+zhiPDISFRpKpcbNp5CSJSa/L tXHOtGHd631TCyMo+gzJiiYZM3O85+ZB7dTpYt3P8bcShTxft41BMrcGiB7LJALBOrGpjlk/CQU iyAMa X-Gm-Gg: AYBFou1a6J/1FMGEJjfGto+B8qzXMZSt1JKkbvU90NaSadNTCJAO8I8i7YIPRpeZ3Ok h76t1jyA3Nz/fUDtqen3Lgw8FouQPNnoCLq/2/KXfps83YGVeh5C/3mEHlGKPxkMBMGMW7RhtvR 2VIYRPZGLp8aMkgWcimQakByg6x7H0pX0li3HrH5r/Ihkajw5POyhjFgbJQhLE/DAh5wlFqG4xf +l6wlEqSzjy/xHcbYTAq4vD5c57tBs9sFbxagIxNibx6ZUJvZVrsXju8Zo5Fwjai6HFweg6VbA9 u2PdbpPQYWKflB0GtFtntH1lmSjoQQjLDPw7lXmCTRy+2VQ+urnqhaLEKRj+vv88DKv57FLyeqe AiONahpXi/O19VEGC+5KZ156gXg4ugFni6e9Yf2IRvZGMywBA6xQkAfI6MUFScA0+7V0grX7Xj/ F692lQQ8ubxuO5+5N1quToPrsPfAMv0xgFEHbDNo5Hkcc51OsTQVxtKhpPqZNArM1UEeHMXp57E xqFPUE= X-Received: by 2002:a17:90b:3b92:b0:392:ca3b:370a with SMTP id 98e67ed59e1d1-39debf6b6dbmr596647a91.2.1789344512377; Sun, 13 Sep 2026 17:08:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: max.chou@sifive.com, palmer@dabbelt.com, daniel.barboza@oss.qualcomm.com, Alistair.Francis@wdc.com, philmd@oss.qualcomm.com Subject: [PATCH v3 11/11] tcg/riscv64: Fall back when AUIPC pairs are out of range Date: Sun, 13 Sep 2026 14:08:14 -1000 Message-ID: <20260914000814.785155-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914000814.785155-1-richard.henderson@linaro.org> References: <20260914000814.785155-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:39::10; envelope-from=richard.henderson@linaro.org; helo=mail-pj2-x10.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1789344598472158500 Content-Type: text/plain; charset="utf-8" From: Max Chou tcg_out_movi, tcg_out_call_int, and tcg_out_ldst only check whether a PC-relative displacement is signed 32-bit before emitting an AUIPC pair. This does not account for rounding the signed 12-bit immediate, which can require an unencodable positive 0x80000000 AUIPC contribution. Validate the split and emit the pair only when it fits. Fixes: dfa8e74f9463 ("tcg/riscv: Add the relocation functions") Signed-off-by: Max Chou [rth: Drop 'ret' local variables; update tcg_out_ldst too.] Signed-off-by: Richard Henderson --- tcg/riscv64/tcg-target.c.inc | 54 +++++++++++++++++------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/tcg/riscv64/tcg-target.c.inc b/tcg/riscv64/tcg-target.c.inc index 7754bcf39f2..682d9e8320b 100644 --- a/tcg/riscv64/tcg-target.c.inc +++ b/tcg/riscv64/tcg-target.c.inc @@ -808,7 +808,7 @@ static void tcg_out_movi(TCGContext *s, TCGType type, T= CGReg rd, { tcg_target_long tmp; int32_t lo, hi; - int shift, ret; + int shift; =20 if (type =3D=3D TCG_TYPE_I32) { val =3D (int32_t)val; @@ -829,12 +829,9 @@ static void tcg_out_movi(TCGContext *s, TCGType type, = TCGReg rd, return; } =20 - tmp =3D tcg_pcrel_diff(s, (void *)val); - if (tmp =3D=3D (int32_t)tmp) { - tcg_out_opc_upper(s, OPC_AUIPC, rd, 0); - tcg_out_opc_imm(s, OPC_ADDI, rd, rd, 0); - ret =3D reloc_call(s->code_ptr - 2, (const tcg_insn_unit *)val); - tcg_debug_assert(ret =3D=3D true); + if (split_auipc_offset(s->code_ptr, val, &hi, &lo)) { + tcg_out_opc_upper(s, OPC_AUIPC, rd, hi); + tcg_out_opc_imm(s, OPC_ADDI, rd, rd, lo); return; } =20 @@ -952,16 +949,16 @@ static void tcg_out_extrl_i64_i32(TCGContext *s, TCGR= eg ret, TCGReg arg) static void tcg_out_ldst(TCGContext *s, RISCVInsn opc, TCGReg data, TCGReg addr, intptr_t offset) { - intptr_t imm12 =3D sextreg(offset, 0, 12); + int32_t lo =3D sextract32(offset, 0, 12); =20 - if (offset !=3D imm12) { - intptr_t diff =3D tcg_pcrel_diff(s, (void *)offset); + if (offset !=3D lo) { + int32_t hi; =20 - if (addr =3D=3D TCG_REG_ZERO && diff =3D=3D (int32_t)diff) { - imm12 =3D sextreg(diff, 0, 12); - tcg_out_opc_upper(s, OPC_AUIPC, TCG_REG_TMP2, diff - imm12); + if (addr =3D=3D TCG_REG_ZERO && + split_auipc_offset(s->code_ptr, offset, &hi, &lo)) { + tcg_out_opc_upper(s, OPC_AUIPC, TCG_REG_TMP2, hi); } else { - tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_TMP2, offset - imm12); + tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_TMP2, offset - lo); if (addr !=3D TCG_REG_ZERO) { tcg_out_opc_reg(s, OPC_ADD, TCG_REG_TMP2, TCG_REG_TMP2, ad= dr); } @@ -974,7 +971,7 @@ static void tcg_out_ldst(TCGContext *s, RISCVInsn opc, = TCGReg data, case OPC_SH: case OPC_SW: case OPC_SD: - tcg_out_opc_store(s, opc, addr, data, imm12); + tcg_out_opc_store(s, opc, addr, data, lo); break; case OPC_LB: case OPC_LBU: @@ -983,7 +980,7 @@ static void tcg_out_ldst(TCGContext *s, RISCVInsn opc, = TCGReg data, case OPC_LW: case OPC_LWU: case OPC_LD: - tcg_out_opc_imm(s, opc, data, addr, imm12); + tcg_out_opc_imm(s, opc, data, addr, lo); break; default: g_assert_not_reached(); @@ -1589,7 +1586,7 @@ static void tcg_out_call_int(TCGContext *s, const tcg= _insn_unit *arg, bool tail) TCGReg link =3D tail ? TCG_REG_ZERO : TCG_REG_RA; ptrdiff_t offset =3D tcg_pcrel_diff(s, arg); tcg_insn_unit insn =3D encode_j(OPC_JAL, link, 0); - int ret; + int32_t lo, hi; =20 init_setting_vtype(s); =20 @@ -1597,19 +1594,18 @@ static void tcg_out_call_int(TCGContext *s, const t= cg_insn_unit *arg, bool tail) if (encode_jimm20(&insn, offset)) { /* short jump */ tcg_out32(s, insn); - } else if (offset =3D=3D (int32_t)offset) { - /* long jump: -2147483646 to 2147483648 */ - tcg_out_opc_upper(s, OPC_AUIPC, TCG_REG_TMP0, 0); - tcg_out_opc_imm(s, OPC_JALR, link, TCG_REG_TMP0, 0); - ret =3D reloc_call(s->code_ptr - 2, arg); - tcg_debug_assert(ret =3D=3D true); - } else { - /* far jump: 64-bit */ - tcg_target_long imm =3D sextreg((tcg_target_long)arg, 0, 12); - tcg_target_long base =3D (tcg_target_long)arg - imm; - tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_TMP0, base); - tcg_out_opc_imm(s, OPC_JALR, link, TCG_REG_TMP0, imm); + return; } + + if (split_auipc_offset(s->code_ptr, (intptr_t)arg, &hi, &lo)) { + /* long jump */ + tcg_out_opc_upper(s, OPC_AUIPC, TCG_REG_TMP0, hi); + } else { + /* far jump */ + lo =3D sextract32((intptr_t)arg, 0, 12); + tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_TMP0, (intptr_t)arg - lo); + } + tcg_out_opc_imm(s, OPC_JALR, link, TCG_REG_TMP0, lo); } =20 static void tcg_out_call(TCGContext *s, const tcg_insn_unit *arg, --=20 2.53.0