From nobody Mon Feb 9 19:56:55 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=1626194632; cv=none; d=zohomail.com; s=zohoarc; b=IL3Xy/tNKakHtpzSfjxYMAx/W6bKo3ALAdgPfBrCdOeYELNVxHi50FAcoi+h5T00G3touoU2PsYl85p1ssGLtMvzz5VqaRTR9JGbWWgakW+pQ5Q9kTAmWDIq++eiY1hM18H/Qh44olVaa4xZi0MzIncZIvtjTrZbIVIrLO4rtCA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194632; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CpJOU5mZm1ReiYCrMc7/11RGyN8K++oSudXAQV3mu7Q=; b=axlHHXhIfDNa90jx9nOHoa1ExBJtFU3gRnUvKJWK9OfSI5tOMfZqZIbn9bW5Yfy457nIVIBXLg4QqXCFRHyWCnhqhvy16e6TnEDvsFH9oDOqugK0fPhH8Ez4TXMeBOTLhF8qGwDSjcjMhjkzlJBWdGp2VAL3+CgXwLtbzU4FhXs= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194632612457.0606872322702; Tue, 13 Jul 2021 09:43:52 -0700 (PDT) Received: from localhost ([::1]:56040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LVf-0000wW-EI for importer@patchew.org; Tue, 13 Jul 2021 12:43:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41048) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LU9-0006oX-DX for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:17 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:38463) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU7-0005c8-9J for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:17 -0400 Received: by mail-pl1-x633.google.com with SMTP id u3so6275313plf.5 for ; Tue, 13 Jul 2021 09:42:13 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CpJOU5mZm1ReiYCrMc7/11RGyN8K++oSudXAQV3mu7Q=; b=hLxrnRie01rUw0Ssrf52r0Z7c7gQHYYgLUuk6O9Z+ktdE7tbWegJHrZrGrR8OtKQCQ 8DbXiy7lkDI8Tm/drJLDQGuMxr0wTtK00ms+KrogSyvXFUTQzsrlqTTeuerZxGqWxxj9 ScYgC22MzCps09HggWbUFGTbOqHRAlGeU7fxOV9MVf79le+ZYset3k3/zEjDIQCa0llf d0T8VjAL1+kVp7hDJiGK8sKLUv8YQJFvHpe7RqLQitlpR1ZQdK1BpNitzeMSI7zK/r6W ClOoydvo2XlMFPsOD71RTeqnUTby2SOTJ9nGzCykQ3YvEdR1F11PVjAATgY7tpIZZLxg 0z7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CpJOU5mZm1ReiYCrMc7/11RGyN8K++oSudXAQV3mu7Q=; b=KThmnx8gvz0357cBs1QTcOAVefSUb1wDdJc/B7vMzQwe2/3MTKQOqFYGKIJo2Qh0Zi iLaxmIYB4Hsd/bRHVf5JivyLVcMNxv9pi49PCEIX+JUUlcFZ4iYX5C60ScUTI54rBuRz En8egvaexCs39pXeA+C5X0dwjNt4qhJqsX8XJfOvWYTSmQ466AVoshQotTEmtiGne37x pzqEdUIE+DcV3D+Avkw+TPfhs8Ci84IZLCTRfgwoVJhESftLAuk5QRNtYIxqOA+u4ECs tXGvyojsDuLeVpFoqHK9JU0sL7L5ZJVSAYI2sodWS23fmJlkq34E+57jRNi+ktQAEKwa SkjA== X-Gm-Message-State: AOAM53376Ygz5LGJerFWahQxJmpr92uJLJ60WIV78mDSu564U5+eJ7+L 3eo5W+MQfB0Kea9D3dpnu1//29pHUWbmuw== X-Google-Smtp-Source: ABdhPJyk2yI6/8TEjO/hixS4ubKKkDn7y8PoXUwov1A473MIK2B3dtTUT+ydhD2fOM3UGHzn1bGgXA== X-Received: by 2002:a17:90a:4404:: with SMTP id s4mr236811pjg.218.1626194532823; Tue, 13 Jul 2021 09:42:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 01/14] target/i386: Tidy hw_breakpoint_remove Date: Tue, 13 Jul 2021 09:41:58 -0700 Message-Id: <20210713164211.1520109-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dmitry Voronetskiy Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194634976100001 Content-Type: text/plain; charset="utf-8" From: Dmitry Voronetskiy Since cpu_breakpoint and cpu_watchpoint are in a union, the code should access only one of them. Signed-off-by: Dmitry Voronetskiy Message-Id: <20210613180838.21349-1-davoronetskiy@gmail.com> Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson --- target/i386/tcg/sysemu/bpt_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/i386/tcg/sysemu/bpt_helper.c b/target/i386/tcg/sysemu/b= pt_helper.c index 624f90b789..4d96a48a3c 100644 --- a/target/i386/tcg/sysemu/bpt_helper.c +++ b/target/i386/tcg/sysemu/bpt_helper.c @@ -109,9 +109,9 @@ static void hw_breakpoint_remove(CPUX86State *env, int = index) =20 case DR7_TYPE_DATA_WR: case DR7_TYPE_DATA_RW: - if (env->cpu_breakpoint[index]) { + if (env->cpu_watchpoint[index]) { cpu_watchpoint_remove_by_ref(cs, env->cpu_watchpoint[index]); - env->cpu_breakpoint[index] =3D NULL; + env->cpu_watchpoint[index] =3D NULL; } break; =20 --=20 2.25.1 From nobody Mon Feb 9 19:56:55 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=1626194638; cv=none; d=zohomail.com; s=zohoarc; b=UIbpn0SdrTZFmNFXWjsN79hQ6yHIQQidylaWp3uqe9HccVgV++is6Y30Vizjyi+d22AxzdANlLfY0P4Zqx2uqMuhZ7f2NcL/W1Cxny9Zcp7v4Vri32rY350fffr4GGs7JXVu/uMfdABnjoaoqk9+KailWQ4TguwykLR4V1zV5WY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194638; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gdg2+FI6wU7Qn9o6Cy0BNLACOKnRn0YbZqg7tl+kffE=; b=Q/AtgsrGoBx7y4YXZ/jpT6fnylAx+OrcHPMVwi/aE8a5WWnDIwQEz1FjCAoqw/5ZUMykdGb8P966w8AIgJxYMfsag7M+qYGIwSncDLcNLFKZKvMl6CI9VtT7ECbXZvmxAdZ6zSH4L7ynXnYHGNtMyQb3O2Y1MTj0cn/Xy8EQ40c= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194638835272.3457042974403; Tue, 13 Jul 2021 09:43:58 -0700 (PDT) Received: from localhost ([::1]:56540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LVl-0001IK-Cl for importer@patchew.org; Tue, 13 Jul 2021 12:43:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41124) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUC-0006sO-5r for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:20 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:46811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU7-0005dY-NF for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:19 -0400 Received: by mail-pf1-x432.google.com with SMTP id x16so20148799pfa.13 for ; Tue, 13 Jul 2021 09:42:14 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gdg2+FI6wU7Qn9o6Cy0BNLACOKnRn0YbZqg7tl+kffE=; b=BgmnzWPMqJ+7TPG+6Ghfo9ZHizVB3Vn2krXAf56MpSERZxe/SxtI2vGHeBUkyLb5zf w01iffLWH1XuufjZqQeAIFxRy5F7uHuC5TURSB5Zsax4O/iMWp0+sHkMuF4VJb6GMmNh feTrQNzRhYXlcb407p0wNB4nowzxvgqAz311Hz/Ry6ZXcKTH3gqMwVETz9U860XvyXpj 87w+4oj0XKSr0YUSyT/6D5f3jGavvudJvV31l8Ja1W8xLFZNHvJ+KJrCrCZFfGWy6d3Z g7IsKM3kTmj1E30h7EVqTicciUbFoFEFB/7KwUCUp6EHnDZZ2R/GR2AQMCEwZe0wyS7V uInA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gdg2+FI6wU7Qn9o6Cy0BNLACOKnRn0YbZqg7tl+kffE=; b=pnTMFeJFJoJXGrKtCKCAEJwOwolXQOTEamX6YNyH5nxKPAu6WGoFuLyPzmCl4bJm4A ga8UWmE4buNchAWFsc6gGZ1afjHD4HySBdjMTFvuRFybQAL3KZVWTYyL+lgZuNGucnBF XFiQp9PO4iZ4p95dNxsYdU7Nd4uXL24hY0bJLL2q/1mzmU0iXpEvAf1XKPTMeBEPo8yZ Lup5APvQtG10NI9BPNBv9U4ZP5Mkq2mKVQZEQpMIaQE6StLvcFwMQ9BwXG3GOkgNFurn q9upmUKXev3PBW9KT30/o3xvzLBydJXWIKg2araOWGwSNbZF6YK/3QJUy++OptctrK7p gigQ== X-Gm-Message-State: AOAM531gvqIF+5ybpt+sdwaCSEZ2bexZ2DyG5+xlWccXSovW2zJ0rUbi MUEtFDXj1oRudKc7gB4z8wO8jugP5uUW6Q== X-Google-Smtp-Source: ABdhPJymNy4aJlIMU8BLPCwSoFEQ+2G8sCTWSyhD2mNa0qVaYTLfZA7ms9P+PRpBK2f2Hm/oFs3quw== X-Received: by 2002:a05:6a00:234f:b029:32d:fceb:4f8a with SMTP id j15-20020a056a00234fb029032dfceb4f8amr3757465pfj.11.1626194533571; Tue, 13 Jul 2021 09:42:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 02/14] target/i386: Trivial code motion and code style fix Date: Tue, 13 Jul 2021 09:41:59 -0700 Message-Id: <20210713164211.1520109-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ziqiao Kong Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194639446100001 Content-Type: text/plain; charset="utf-8" From: Ziqiao Kong A new pair of braces has to be added to declare variables in the case block. The code style is also fixed according to the transalte.c itself during the code motion. Signed-off-by: Ziqiao Kong Message-Id: <20210530150112.74411-1-ziqiaokong@gmail.com> Signed-off-by: Richard Henderson --- target/i386/tcg/translate.c | 933 ++++++++++++++++++------------------ 1 file changed, 472 insertions(+), 461 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index 3814ce2a3e..a43e577019 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -5919,503 +5919,514 @@ static target_ulong disas_insn(DisasContext *s, C= PUState *cpu) /************************/ /* floats */ case 0xd8 ... 0xdf: - if (s->flags & (HF_EM_MASK | HF_TS_MASK)) { - /* if CR0.EM or CR0.TS are set, generate an FPU exception */ - /* XXX: what to do if illegal op ? */ - gen_exception(s, EXCP07_PREX, pc_start - s->cs_base); - break; - } - modrm =3D x86_ldub_code(env, s); - mod =3D (modrm >> 6) & 3; - rm =3D modrm & 7; - op =3D ((b & 7) << 3) | ((modrm >> 3) & 7); - if (mod !=3D 3) { - /* memory op */ - gen_lea_modrm(env, s, modrm); - switch(op) { - case 0x00 ... 0x07: /* fxxxs */ - case 0x10 ... 0x17: /* fixxxl */ - case 0x20 ... 0x27: /* fxxxl */ - case 0x30 ... 0x37: /* fixxx */ - { - int op1; - op1 =3D op & 7; - - switch(op >> 4) { - case 0: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - gen_helper_flds_FT0(cpu_env, s->tmp2_i32); - break; - case 1: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - gen_helper_fildl_FT0(cpu_env, s->tmp2_i32); - break; - case 2: - tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, - s->mem_index, MO_LEQ); - gen_helper_fldl_FT0(cpu_env, s->tmp1_i64); - break; - case 3: - default: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LESW); - gen_helper_fildl_FT0(cpu_env, s->tmp2_i32); - break; - } - - gen_helper_fp_arith_ST0_FT0(op1); - if (op1 =3D=3D 3) { - /* fcomp needs pop */ - gen_helper_fpop(cpu_env); - } - } + { + if (s->flags & (HF_EM_MASK | HF_TS_MASK)) { + /* if CR0.EM or CR0.TS are set, generate an FPU exception = */ + /* XXX: what to do if illegal op ? */ + gen_exception(s, EXCP07_PREX, pc_start - s->cs_base); break; - case 0x08: /* flds */ - case 0x0a: /* fsts */ - case 0x0b: /* fstps */ - case 0x18 ... 0x1b: /* fildl, fisttpl, fistl, fistpl */ - case 0x28 ... 0x2b: /* fldl, fisttpll, fstl, fstpl */ - case 0x38 ... 0x3b: /* filds, fisttps, fists, fistps */ - switch(op & 7) { - case 0: - switch(op >> 4) { + } + modrm =3D x86_ldub_code(env, s); + mod =3D (modrm >> 6) & 3; + rm =3D modrm & 7; + op =3D ((b & 7) << 3) | ((modrm >> 3) & 7); + if (mod !=3D 3) { + /* memory op */ + gen_lea_modrm(env, s, modrm); + switch (op) { + case 0x00 ... 0x07: /* fxxxs */ + case 0x10 ... 0x17: /* fixxxl */ + case 0x20 ... 0x27: /* fxxxl */ + case 0x30 ... 0x37: /* fixxx */ + { + int op1; + op1 =3D op & 7; + + switch (op >> 4) { + case 0: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + gen_helper_flds_FT0(cpu_env, s->tmp2_i32); + break; + case 1: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + gen_helper_fildl_FT0(cpu_env, s->tmp2_i32); + break; + case 2: + tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); + gen_helper_fldl_FT0(cpu_env, s->tmp1_i64); + break; + case 3: + default: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LESW); + gen_helper_fildl_FT0(cpu_env, s->tmp2_i32); + break; + } + + gen_helper_fp_arith_ST0_FT0(op1); + if (op1 =3D=3D 3) { + /* fcomp needs pop */ + gen_helper_fpop(cpu_env); + } + } + break; + case 0x08: /* flds */ + case 0x0a: /* fsts */ + case 0x0b: /* fstps */ + case 0x18 ... 0x1b: /* fildl, fisttpl, fistl, fistpl */ + case 0x28 ... 0x2b: /* fldl, fisttpll, fstl, fstpl */ + case 0x38 ... 0x3b: /* filds, fisttps, fists, fistps */ + switch (op & 7) { case 0: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - gen_helper_flds_ST0(cpu_env, s->tmp2_i32); + switch (op >> 4) { + case 0: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + gen_helper_flds_ST0(cpu_env, s->tmp2_i32); + break; + case 1: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + gen_helper_fildl_ST0(cpu_env, s->tmp2_i32); + break; + case 2: + tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); + gen_helper_fldl_ST0(cpu_env, s->tmp1_i64); + break; + case 3: + default: + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LESW); + gen_helper_fildl_ST0(cpu_env, s->tmp2_i32); + break; + } break; case 1: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - gen_helper_fildl_ST0(cpu_env, s->tmp2_i32); + /* XXX: the corresponding CPUID bit must be tested= ! */ + switch (op >> 4) { + case 1: + gen_helper_fisttl_ST0(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + break; + case 2: + gen_helper_fisttll_ST0(s->tmp1_i64, cpu_env); + tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); + break; + case 3: + default: + gen_helper_fistt_ST0(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUW); + break; + } + gen_helper_fpop(cpu_env); break; - case 2: - tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, - s->mem_index, MO_LEQ); - gen_helper_fldl_ST0(cpu_env, s->tmp1_i64); - break; - case 3: default: - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LESW); - gen_helper_fildl_ST0(cpu_env, s->tmp2_i32); + switch (op >> 4) { + case 0: + gen_helper_fsts_ST0(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + break; + case 1: + gen_helper_fistl_ST0(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUL); + break; + case 2: + gen_helper_fstl_ST0(s->tmp1_i64, cpu_env); + tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); + break; + case 3: + default: + gen_helper_fist_ST0(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUW); + break; + } + if ((op & 7) =3D=3D 3) { + gen_helper_fpop(cpu_env); + } break; } break; - case 1: - /* XXX: the corresponding CPUID bit must be tested ! */ - switch(op >> 4) { - case 1: - gen_helper_fisttl_ST0(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - break; - case 2: - gen_helper_fisttll_ST0(s->tmp1_i64, cpu_env); - tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, - s->mem_index, MO_LEQ); - break; - case 3: - default: - gen_helper_fistt_ST0(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUW); - break; - } + case 0x0c: /* fldenv mem */ + gen_helper_fldenv(cpu_env, s->A0, + tcg_const_i32(dflag - 1)); + break; + case 0x0d: /* fldcw mem */ + tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUW); + gen_helper_fldcw(cpu_env, s->tmp2_i32); + break; + case 0x0e: /* fnstenv mem */ + gen_helper_fstenv(cpu_env, s->A0, + tcg_const_i32(dflag - 1)); + break; + case 0x0f: /* fnstcw mem */ + gen_helper_fnstcw(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUW); + break; + case 0x1d: /* fldt mem */ + gen_helper_fldt_ST0(cpu_env, s->A0); + break; + case 0x1f: /* fstpt mem */ + gen_helper_fstt_ST0(cpu_env, s->A0); + gen_helper_fpop(cpu_env); + break; + case 0x2c: /* frstor mem */ + gen_helper_frstor(cpu_env, s->A0, + tcg_const_i32(dflag - 1)); + break; + case 0x2e: /* fnsave mem */ + gen_helper_fsave(cpu_env, s->A0, + tcg_const_i32(dflag - 1)); + break; + case 0x2f: /* fnstsw mem */ + gen_helper_fnstsw(s->tmp2_i32, cpu_env); + tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, + s->mem_index, MO_LEUW); + break; + case 0x3c: /* fbld */ + gen_helper_fbld_ST0(cpu_env, s->A0); + break; + case 0x3e: /* fbstp */ + gen_helper_fbst_ST0(cpu_env, s->A0); + gen_helper_fpop(cpu_env); + break; + case 0x3d: /* fildll */ + tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); + gen_helper_fildll_ST0(cpu_env, s->tmp1_i64); + break; + case 0x3f: /* fistpll */ + gen_helper_fistll_ST0(s->tmp1_i64, cpu_env); + tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, + s->mem_index, MO_LEQ); gen_helper_fpop(cpu_env); break; default: - switch(op >> 4) { - case 0: - gen_helper_fsts_ST0(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - break; - case 1: - gen_helper_fistl_ST0(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUL); - break; - case 2: - gen_helper_fstl_ST0(s->tmp1_i64, cpu_env); - tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, - s->mem_index, MO_LEQ); - break; - case 3: - default: - gen_helper_fist_ST0(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUW); - break; - } - if ((op & 7) =3D=3D 3) - gen_helper_fpop(cpu_env); - break; + goto unknown_op; } - break; - case 0x0c: /* fldenv mem */ - gen_helper_fldenv(cpu_env, s->A0, tcg_const_i32(dflag - 1)= ); - break; - case 0x0d: /* fldcw mem */ - tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUW); - gen_helper_fldcw(cpu_env, s->tmp2_i32); - break; - case 0x0e: /* fnstenv mem */ - gen_helper_fstenv(cpu_env, s->A0, tcg_const_i32(dflag - 1)= ); - break; - case 0x0f: /* fnstcw mem */ - gen_helper_fnstcw(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUW); - break; - case 0x1d: /* fldt mem */ - gen_helper_fldt_ST0(cpu_env, s->A0); - break; - case 0x1f: /* fstpt mem */ - gen_helper_fstt_ST0(cpu_env, s->A0); - gen_helper_fpop(cpu_env); - break; - case 0x2c: /* frstor mem */ - gen_helper_frstor(cpu_env, s->A0, tcg_const_i32(dflag - 1)= ); - break; - case 0x2e: /* fnsave mem */ - gen_helper_fsave(cpu_env, s->A0, tcg_const_i32(dflag - 1)); - break; - case 0x2f: /* fnstsw mem */ - gen_helper_fnstsw(s->tmp2_i32, cpu_env); - tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, - s->mem_index, MO_LEUW); - break; - case 0x3c: /* fbld */ - gen_helper_fbld_ST0(cpu_env, s->A0); - break; - case 0x3e: /* fbstp */ - gen_helper_fbst_ST0(cpu_env, s->A0); - gen_helper_fpop(cpu_env); - break; - case 0x3d: /* fildll */ - tcg_gen_qemu_ld_i64(s->tmp1_i64, s->A0, s->mem_index, MO_L= EQ); - gen_helper_fildll_ST0(cpu_env, s->tmp1_i64); - break; - case 0x3f: /* fistpll */ - gen_helper_fistll_ST0(s->tmp1_i64, cpu_env); - tcg_gen_qemu_st_i64(s->tmp1_i64, s->A0, s->mem_index, MO_L= EQ); - gen_helper_fpop(cpu_env); - break; - default: - goto unknown_op; - } - } else { - /* register float ops */ - opreg =3D rm; + } else { + /* register float ops */ + opreg =3D rm; =20 - switch(op) { - case 0x08: /* fld sti */ - gen_helper_fpush(cpu_env); - gen_helper_fmov_ST0_STN(cpu_env, - tcg_const_i32((opreg + 1) & 7)); - break; - case 0x09: /* fxchg sti */ - case 0x29: /* fxchg4 sti, undocumented op */ - case 0x39: /* fxchg7 sti, undocumented op */ - gen_helper_fxchg_ST0_STN(cpu_env, tcg_const_i32(opreg)); - break; - case 0x0a: /* grp d9/2 */ - switch(rm) { - case 0: /* fnop */ - /* check exceptions (FreeBSD FPU probe) */ - gen_helper_fwait(cpu_env); + switch (op) { + case 0x08: /* fld sti */ + gen_helper_fpush(cpu_env); + gen_helper_fmov_ST0_STN(cpu_env, + tcg_const_i32((opreg + 1) & 7)= ); break; - default: - goto unknown_op; - } - break; - case 0x0c: /* grp d9/4 */ - switch(rm) { - case 0: /* fchs */ - gen_helper_fchs_ST0(cpu_env); + case 0x09: /* fxchg sti */ + case 0x29: /* fxchg4 sti, undocumented op */ + case 0x39: /* fxchg7 sti, undocumented op */ + gen_helper_fxchg_ST0_STN(cpu_env, tcg_const_i32(opreg)= ); break; - case 1: /* fabs */ - gen_helper_fabs_ST0(cpu_env); - break; - case 4: /* ftst */ - gen_helper_fldz_FT0(cpu_env); - gen_helper_fcom_ST0_FT0(cpu_env); - break; - case 5: /* fxam */ - gen_helper_fxam_ST0(cpu_env); - break; - default: - goto unknown_op; - } - break; - case 0x0d: /* grp d9/5 */ - { - switch(rm) { - case 0: - gen_helper_fpush(cpu_env); - gen_helper_fld1_ST0(cpu_env); - break; - case 1: - gen_helper_fpush(cpu_env); - gen_helper_fldl2t_ST0(cpu_env); - break; - case 2: - gen_helper_fpush(cpu_env); - gen_helper_fldl2e_ST0(cpu_env); - break; - case 3: - gen_helper_fpush(cpu_env); - gen_helper_fldpi_ST0(cpu_env); - break; - case 4: - gen_helper_fpush(cpu_env); - gen_helper_fldlg2_ST0(cpu_env); - break; - case 5: - gen_helper_fpush(cpu_env); - gen_helper_fldln2_ST0(cpu_env); - break; - case 6: - gen_helper_fpush(cpu_env); - gen_helper_fldz_ST0(cpu_env); + case 0x0a: /* grp d9/2 */ + switch (rm) { + case 0: /* fnop */ + /* check exceptions (FreeBSD FPU probe) */ + gen_helper_fwait(cpu_env); break; default: goto unknown_op; } - } - break; - case 0x0e: /* grp d9/6 */ - switch(rm) { - case 0: /* f2xm1 */ - gen_helper_f2xm1(cpu_env); break; - case 1: /* fyl2x */ - gen_helper_fyl2x(cpu_env); - break; - case 2: /* fptan */ - gen_helper_fptan(cpu_env); - break; - case 3: /* fpatan */ - gen_helper_fpatan(cpu_env); - break; - case 4: /* fxtract */ - gen_helper_fxtract(cpu_env); - break; - case 5: /* fprem1 */ - gen_helper_fprem1(cpu_env); - break; - case 6: /* fdecstp */ - gen_helper_fdecstp(cpu_env); - break; - default: - case 7: /* fincstp */ - gen_helper_fincstp(cpu_env); - break; - } - break; - case 0x0f: /* grp d9/7 */ - switch(rm) { - case 0: /* fprem */ - gen_helper_fprem(cpu_env); - break; - case 1: /* fyl2xp1 */ - gen_helper_fyl2xp1(cpu_env); - break; - case 2: /* fsqrt */ - gen_helper_fsqrt(cpu_env); - break; - case 3: /* fsincos */ - gen_helper_fsincos(cpu_env); - break; - case 5: /* fscale */ - gen_helper_fscale(cpu_env); - break; - case 4: /* frndint */ - gen_helper_frndint(cpu_env); - break; - case 6: /* fsin */ - gen_helper_fsin(cpu_env); - break; - default: - case 7: /* fcos */ - gen_helper_fcos(cpu_env); - break; - } - break; - case 0x00: case 0x01: case 0x04 ... 0x07: /* fxxx st, sti */ - case 0x20: case 0x21: case 0x24 ... 0x27: /* fxxx sti, st */ - case 0x30: case 0x31: case 0x34 ... 0x37: /* fxxxp sti, st */ - { - int op1; - - op1 =3D op & 7; - if (op >=3D 0x20) { - gen_helper_fp_arith_STN_ST0(op1, opreg); - if (op >=3D 0x30) - gen_helper_fpop(cpu_env); - } else { - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opr= eg)); - gen_helper_fp_arith_ST0_FT0(op1); + case 0x0c: /* grp d9/4 */ + switch (rm) { + case 0: /* fchs */ + gen_helper_fchs_ST0(cpu_env); + break; + case 1: /* fabs */ + gen_helper_fabs_ST0(cpu_env); + break; + case 4: /* ftst */ + gen_helper_fldz_FT0(cpu_env); + gen_helper_fcom_ST0_FT0(cpu_env); + break; + case 5: /* fxam */ + gen_helper_fxam_ST0(cpu_env); + break; + default: + goto unknown_op; } - } - break; - case 0x02: /* fcom */ - case 0x22: /* fcom2, undocumented op */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fcom_ST0_FT0(cpu_env); - break; - case 0x03: /* fcomp */ - case 0x23: /* fcomp3, undocumented op */ - case 0x32: /* fcomp5, undocumented op */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fcom_ST0_FT0(cpu_env); - gen_helper_fpop(cpu_env); - break; - case 0x15: /* da/5 */ - switch(rm) { - case 1: /* fucompp */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(1)); - gen_helper_fucom_ST0_FT0(cpu_env); - gen_helper_fpop(cpu_env); - gen_helper_fpop(cpu_env); break; - default: - goto unknown_op; - } - break; - case 0x1c: - switch(rm) { - case 0: /* feni (287 only, just do nop here) */ + case 0x0d: /* grp d9/5 */ + { + switch (rm) { + case 0: + gen_helper_fpush(cpu_env); + gen_helper_fld1_ST0(cpu_env); + break; + case 1: + gen_helper_fpush(cpu_env); + gen_helper_fldl2t_ST0(cpu_env); + break; + case 2: + gen_helper_fpush(cpu_env); + gen_helper_fldl2e_ST0(cpu_env); + break; + case 3: + gen_helper_fpush(cpu_env); + gen_helper_fldpi_ST0(cpu_env); + break; + case 4: + gen_helper_fpush(cpu_env); + gen_helper_fldlg2_ST0(cpu_env); + break; + case 5: + gen_helper_fpush(cpu_env); + gen_helper_fldln2_ST0(cpu_env); + break; + case 6: + gen_helper_fpush(cpu_env); + gen_helper_fldz_ST0(cpu_env); + break; + default: + goto unknown_op; + } + } break; - case 1: /* fdisi (287 only, just do nop here) */ + case 0x0e: /* grp d9/6 */ + switch (rm) { + case 0: /* f2xm1 */ + gen_helper_f2xm1(cpu_env); + break; + case 1: /* fyl2x */ + gen_helper_fyl2x(cpu_env); + break; + case 2: /* fptan */ + gen_helper_fptan(cpu_env); + break; + case 3: /* fpatan */ + gen_helper_fpatan(cpu_env); + break; + case 4: /* fxtract */ + gen_helper_fxtract(cpu_env); + break; + case 5: /* fprem1 */ + gen_helper_fprem1(cpu_env); + break; + case 6: /* fdecstp */ + gen_helper_fdecstp(cpu_env); + break; + default: + case 7: /* fincstp */ + gen_helper_fincstp(cpu_env); + break; + } break; - case 2: /* fclex */ - gen_helper_fclex(cpu_env); + case 0x0f: /* grp d9/7 */ + switch (rm) { + case 0: /* fprem */ + gen_helper_fprem(cpu_env); + break; + case 1: /* fyl2xp1 */ + gen_helper_fyl2xp1(cpu_env); + break; + case 2: /* fsqrt */ + gen_helper_fsqrt(cpu_env); + break; + case 3: /* fsincos */ + gen_helper_fsincos(cpu_env); + break; + case 5: /* fscale */ + gen_helper_fscale(cpu_env); + break; + case 4: /* frndint */ + gen_helper_frndint(cpu_env); + break; + case 6: /* fsin */ + gen_helper_fsin(cpu_env); + break; + default: + case 7: /* fcos */ + gen_helper_fcos(cpu_env); + break; + } break; - case 3: /* fninit */ - gen_helper_fninit(cpu_env); + case 0x00: case 0x01: case 0x04 ... 0x07: /* fxxx st, sti = */ + case 0x20: case 0x21: case 0x24 ... 0x27: /* fxxx sti, st = */ + case 0x30: case 0x31: case 0x34 ... 0x37: /* fxxxp sti, st= */ + { + int op1; + + op1 =3D op & 7; + if (op >=3D 0x20) { + gen_helper_fp_arith_STN_ST0(op1, opreg); + if (op >=3D 0x30) { + gen_helper_fpop(cpu_env); + } + } else { + gen_helper_fmov_FT0_STN(cpu_env, + tcg_const_i32(opreg)); + gen_helper_fp_arith_ST0_FT0(op1); + } + } break; - case 4: /* fsetpm (287 only, just do nop here) */ + case 0x02: /* fcom */ + case 0x22: /* fcom2, undocumented op */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fcom_ST0_FT0(cpu_env); break; - default: - goto unknown_op; - } - break; - case 0x1d: /* fucomi */ - if (!(s->cpuid_features & CPUID_CMOV)) { - goto illegal_op; - } - gen_update_cc_op(s); - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fucomi_ST0_FT0(cpu_env); - set_cc_op(s, CC_OP_EFLAGS); - break; - case 0x1e: /* fcomi */ - if (!(s->cpuid_features & CPUID_CMOV)) { - goto illegal_op; - } - gen_update_cc_op(s); - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fcomi_ST0_FT0(cpu_env); - set_cc_op(s, CC_OP_EFLAGS); - break; - case 0x28: /* ffree sti */ - gen_helper_ffree_STN(cpu_env, tcg_const_i32(opreg)); - break; - case 0x2a: /* fst sti */ - gen_helper_fmov_STN_ST0(cpu_env, tcg_const_i32(opreg)); - break; - case 0x2b: /* fstp sti */ - case 0x0b: /* fstp1 sti, undocumented op */ - case 0x3a: /* fstp8 sti, undocumented op */ - case 0x3b: /* fstp9 sti, undocumented op */ - gen_helper_fmov_STN_ST0(cpu_env, tcg_const_i32(opreg)); - gen_helper_fpop(cpu_env); - break; - case 0x2c: /* fucom st(i) */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fucom_ST0_FT0(cpu_env); - break; - case 0x2d: /* fucomp st(i) */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fucom_ST0_FT0(cpu_env); - gen_helper_fpop(cpu_env); - break; - case 0x33: /* de/3 */ - switch(rm) { - case 1: /* fcompp */ - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(1)); + case 0x03: /* fcomp */ + case 0x23: /* fcomp3, undocumented op */ + case 0x32: /* fcomp5, undocumented op */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); gen_helper_fcom_ST0_FT0(cpu_env); gen_helper_fpop(cpu_env); - gen_helper_fpop(cpu_env); break; - default: - goto unknown_op; - } - break; - case 0x38: /* ffreep sti, undocumented op */ - gen_helper_ffree_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fpop(cpu_env); - break; - case 0x3c: /* df/4 */ - switch(rm) { - case 0: - gen_helper_fnstsw(s->tmp2_i32, cpu_env); - tcg_gen_extu_i32_tl(s->T0, s->tmp2_i32); - gen_op_mov_reg_v(s, MO_16, R_EAX, s->T0); + case 0x15: /* da/5 */ + switch (rm) { + case 1: /* fucompp */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(1)); + gen_helper_fucom_ST0_FT0(cpu_env); + gen_helper_fpop(cpu_env); + gen_helper_fpop(cpu_env); + break; + default: + goto unknown_op; + } break; - default: - goto unknown_op; - } - break; - case 0x3d: /* fucomip */ - if (!(s->cpuid_features & CPUID_CMOV)) { - goto illegal_op; - } - gen_update_cc_op(s); - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fucomi_ST0_FT0(cpu_env); - gen_helper_fpop(cpu_env); - set_cc_op(s, CC_OP_EFLAGS); - break; - case 0x3e: /* fcomip */ - if (!(s->cpuid_features & CPUID_CMOV)) { - goto illegal_op; - } - gen_update_cc_op(s); - gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); - gen_helper_fcomi_ST0_FT0(cpu_env); - gen_helper_fpop(cpu_env); - set_cc_op(s, CC_OP_EFLAGS); - break; - case 0x10 ... 0x13: /* fcmovxx */ - case 0x18 ... 0x1b: - { - int op1; - TCGLabel *l1; - static const uint8_t fcmov_cc[8] =3D { - (JCC_B << 1), - (JCC_Z << 1), - (JCC_BE << 1), - (JCC_P << 1), - }; - + case 0x1c: + switch (rm) { + case 0: /* feni (287 only, just do nop here) */ + break; + case 1: /* fdisi (287 only, just do nop here) */ + break; + case 2: /* fclex */ + gen_helper_fclex(cpu_env); + break; + case 3: /* fninit */ + gen_helper_fninit(cpu_env); + break; + case 4: /* fsetpm (287 only, just do nop here) */ + break; + default: + goto unknown_op; + } + break; + case 0x1d: /* fucomi */ if (!(s->cpuid_features & CPUID_CMOV)) { goto illegal_op; } - op1 =3D fcmov_cc[op & 3] | (((op >> 3) & 1) ^ 1); - l1 =3D gen_new_label(); - gen_jcc1_noeob(s, op1, l1); - gen_helper_fmov_ST0_STN(cpu_env, tcg_const_i32(opreg)); - gen_set_label(l1); + gen_update_cc_op(s); + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fucomi_ST0_FT0(cpu_env); + set_cc_op(s, CC_OP_EFLAGS); + break; + case 0x1e: /* fcomi */ + if (!(s->cpuid_features & CPUID_CMOV)) { + goto illegal_op; + } + gen_update_cc_op(s); + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fcomi_ST0_FT0(cpu_env); + set_cc_op(s, CC_OP_EFLAGS); + break; + case 0x28: /* ffree sti */ + gen_helper_ffree_STN(cpu_env, tcg_const_i32(opreg)); + break; + case 0x2a: /* fst sti */ + gen_helper_fmov_STN_ST0(cpu_env, tcg_const_i32(opreg)); + break; + case 0x2b: /* fstp sti */ + case 0x0b: /* fstp1 sti, undocumented op */ + case 0x3a: /* fstp8 sti, undocumented op */ + case 0x3b: /* fstp9 sti, undocumented op */ + gen_helper_fmov_STN_ST0(cpu_env, tcg_const_i32(opreg)); + gen_helper_fpop(cpu_env); + break; + case 0x2c: /* fucom st(i) */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fucom_ST0_FT0(cpu_env); + break; + case 0x2d: /* fucomp st(i) */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fucom_ST0_FT0(cpu_env); + gen_helper_fpop(cpu_env); + break; + case 0x33: /* de/3 */ + switch (rm) { + case 1: /* fcompp */ + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(1)); + gen_helper_fcom_ST0_FT0(cpu_env); + gen_helper_fpop(cpu_env); + gen_helper_fpop(cpu_env); + break; + default: + goto unknown_op; + } + break; + case 0x38: /* ffreep sti, undocumented op */ + gen_helper_ffree_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fpop(cpu_env); + break; + case 0x3c: /* df/4 */ + switch (rm) { + case 0: + gen_helper_fnstsw(s->tmp2_i32, cpu_env); + tcg_gen_extu_i32_tl(s->T0, s->tmp2_i32); + gen_op_mov_reg_v(s, MO_16, R_EAX, s->T0); + break; + default: + goto unknown_op; + } + break; + case 0x3d: /* fucomip */ + if (!(s->cpuid_features & CPUID_CMOV)) { + goto illegal_op; + } + gen_update_cc_op(s); + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fucomi_ST0_FT0(cpu_env); + gen_helper_fpop(cpu_env); + set_cc_op(s, CC_OP_EFLAGS); + break; + case 0x3e: /* fcomip */ + if (!(s->cpuid_features & CPUID_CMOV)) { + goto illegal_op; + } + gen_update_cc_op(s); + gen_helper_fmov_FT0_STN(cpu_env, tcg_const_i32(opreg)); + gen_helper_fcomi_ST0_FT0(cpu_env); + gen_helper_fpop(cpu_env); + set_cc_op(s, CC_OP_EFLAGS); + break; + case 0x10 ... 0x13: /* fcmovxx */ + case 0x18 ... 0x1b: + { + int op1; + TCGLabel *l1; + static const uint8_t fcmov_cc[8] =3D { + (JCC_B << 1), + (JCC_Z << 1), + (JCC_BE << 1), + (JCC_P << 1), + }; + + if (!(s->cpuid_features & CPUID_CMOV)) { + goto illegal_op; + } + op1 =3D fcmov_cc[op & 3] | (((op >> 3) & 1) ^ 1); + l1 =3D gen_new_label(); + gen_jcc1_noeob(s, op1, l1); + gen_helper_fmov_ST0_STN(cpu_env, tcg_const_i32(opr= eg)); + gen_set_label(l1); + } + break; + default: + goto unknown_op; } - break; - default: - goto unknown_op; } } break; --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194901; cv=none; d=zohomail.com; s=zohoarc; b=lVVFnoc6akgxQEpxhrAAMUPcO1abqy13IrEs5bFl3lQFTZpYfmbkzPsUHnTG+Zyu5cZyB1aXvgvfeDFE5uEunF4Ig7Gm8da8leHj5AgtBEaLzDVMh4O/gcNn5J4M1Ons1S+gevrhvklLf0Fv+eJ0DACYBlqPcYLvqxY6zQzdSrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194901; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cYyCuRRmAK2Rie5jBdr3R+LAqWVke2VP4TG50eB3qqU=; b=KagSBkTza0jx+oU1mYavntNJsuGHcEcMSL1b+4+1ewCuQY0ebY0zgYW3fEdwLapnfGbFlXG63FP74NxyFF1NnBSFH3VOzNYBBxtP7if6R17lcgffaqI4dy9fKk/q9hloTI3tDTDjS6yPAN4eEA2fcB8EGAfVOrNThQoG8hCgA7g= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194901962525.0872707653747; Tue, 13 Jul 2021 09:48:21 -0700 (PDT) Received: from localhost ([::1]:43072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3La0-0002hw-TA for importer@patchew.org; Tue, 13 Jul 2021 12:48:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41112) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUB-0006qy-HE for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:19 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]:35756) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU7-0005da-Nc for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:19 -0400 Received: by mail-pj1-x102c.google.com with SMTP id h1-20020a17090a3d01b0290172d33bb8bcso1827483pjc.0 for ; Tue, 13 Jul 2021 09:42:15 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cYyCuRRmAK2Rie5jBdr3R+LAqWVke2VP4TG50eB3qqU=; b=ZBiGSyRcGFJCvpFrQwW2Xizu7CILQqueQQylkF+YeKs4PT0ZPSbsRQYNKWmZjdgNwL NlhI0pE555NlsQ/dV/eKeTQfHz6g4Vay+Tf1qz92r1t4VN1mltKi+SygKuiHIp21rNNv prY1DwEYBC8JkK6Na/3T9fVR6HoQ0geP9uUHAcHdG9B0HommMkDkU6+g46Gh/Sd2QW3y Wy3YzScJACqS4jq/KYZ2oOLllcqozYGaE45sHVQGxy3qfklZg0Jr5ssIB9kM0O8Opv0m pEZ6p/k0VnLCR+pzADq6uM/K8DBqHbmjhrYKjcDwKDJwwll9kLLjns/Rn5UdN52hnBrd Vhyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cYyCuRRmAK2Rie5jBdr3R+LAqWVke2VP4TG50eB3qqU=; b=B+5FXDUv4dv2CBqByroZhGG6lnQW3cmBEF5U+FgMr1tlQF8Gd5B6erO7/GjPhTRscG R2oSZeQB0y7qOCPHQqr4zs0wGEVM8o3FwnyqFJjW84/dBghCSNWeE/WuQs+3yCAcVkKZ zTZ+eir1R5t9fRi4Rg/ZhKFxMDU/3Mu8JhiPR4BU5/nD/ai2CDPlhLHx2ZWAndqxEnbz pu3JXDSNQBbxLv+u2mpkdXxEqhA45BsaEyoVTY7UMQ83qPvHQ4GAL+i4Vz4awx2pcn/5 KmV/3toqbOfGvJhrGRlEUaoSdnM9YhHuXS8xbgoKDzMAD0B5YJ2xD9dqvRnpIcWriU0C yGEA== X-Gm-Message-State: AOAM531bQGKt1K+nimLZxuUrkTtaTH0PIafJ6tqsCTS6D0WNwDzHPKWL aumqQ1mu/z7KaVnljAvbBloLVPS7wYh/0g== X-Google-Smtp-Source: ABdhPJwjvauNIlPRrDsS5PaX4glsv8Hl9typyPnKaZ+nL1T7/CcJoKLTpisOb/kaRwbU0hZ6aGWOsA== X-Received: by 2002:a17:90b:3a89:: with SMTP id om9mr2828110pjb.91.1626194534269; Tue, 13 Jul 2021 09:42:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 03/14] target/i386: Split out do_fninit Date: Tue, 13 Jul 2021 09:42:00 -0700 Message-Id: <20210713164211.1520109-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194902568100001 Do not call helper_fninit directly from helper_xrstor. Do call the new helper from do_fsave. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/i386/tcg/fpu_helper.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/target/i386/tcg/fpu_helper.c b/target/i386/tcg/fpu_helper.c index 74bbe94b80..beb63be432 100644 --- a/target/i386/tcg/fpu_helper.c +++ b/target/i386/tcg/fpu_helper.c @@ -727,7 +727,7 @@ void helper_fwait(CPUX86State *env) } } =20 -void helper_fninit(CPUX86State *env) +static void do_fninit(CPUX86State *env) { env->fpus =3D 0; env->fpstt =3D 0; @@ -742,6 +742,11 @@ void helper_fninit(CPUX86State *env) env->fptags[7] =3D 1; } =20 +void helper_fninit(CPUX86State *env) +{ + do_fninit(env); +} + /* BCD ops */ =20 void helper_fbld_ST0(CPUX86State *env, target_ulong ptr) @@ -2451,18 +2456,7 @@ static void do_fsave(CPUX86State *env, target_ulong = ptr, int data32, ptr +=3D 10; } =20 - /* fninit */ - env->fpus =3D 0; - env->fpstt =3D 0; - cpu_set_fpuc(env, 0x37f); - env->fptags[0] =3D 1; - env->fptags[1] =3D 1; - env->fptags[2] =3D 1; - env->fptags[3] =3D 1; - env->fptags[4] =3D 1; - env->fptags[5] =3D 1; - env->fptags[6] =3D 1; - env->fptags[7] =3D 1; + do_fninit(env); } =20 void helper_fsave(CPUX86State *env, target_ulong ptr, int data32) @@ -2834,7 +2828,7 @@ void helper_xrstor(CPUX86State *env, target_ulong ptr= , uint64_t rfbm) if (xstate_bv & XSTATE_FP_MASK) { do_xrstor_fpu(env, ptr, ra); } else { - helper_fninit(env); + do_fninit(env); memset(env->fpregs, 0, sizeof(env->fpregs)); } } --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194771; cv=none; d=zohomail.com; s=zohoarc; b=cf/rtFEJ6IyzXxaWhxIH6LFbbzna9e8YQTaXXjkToDhJ6eUA4VrYUOZaWkldXxp9Zgm1IcQhFo3GkW5N++5Xu8hiPVt6bdd8FxM+W77Dixm14opJVVIec610N/piSKOB5Wy4Srzr8hf4tF1StbZdVtFRC1GTT6E4OAj17YKkkDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194771; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9Vn3OZCvKq6jSOiidVy5UivM/a7wIKe+2cpNk3bOhtM=; b=RAiiQZGO9YFv+tKMtBgP6HeMIwzhJrWPZ2wEYlgrCYupTG+cVkiFXe3C4QOokJoa8ASHlXb6eNG+x2VWGGpPGvBk4VxBZYdAtJx5PvDI76+/13ax3rXLhdv1+xMUTfHBphg8k7NK373dVIdYvZvWgVDpe3TFIdJ3CY135521ZfI= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194771091907.7609964374957; Tue, 13 Jul 2021 09:46:11 -0700 (PDT) Received: from localhost ([::1]:36996 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LXt-00076b-Vh for importer@patchew.org; Tue, 13 Jul 2021 12:46:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41136) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUC-0006sj-GF for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:21 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]:39799) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU8-0005dy-6Q for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:20 -0400 Received: by mail-pf1-x436.google.com with SMTP id b12so20158184pfv.6 for ; Tue, 13 Jul 2021 09:42:15 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9Vn3OZCvKq6jSOiidVy5UivM/a7wIKe+2cpNk3bOhtM=; b=kK9Un3gciO8zsk1qIulRH828nLWrtn7Tzye9QMDw85jBTR6LPibvcaCzeP6q0mVtDc aFjkr3yAUW+TmwcieqNoNjHyhHD4ozaAsrvc9m/Pwo6X+JI5VP9uWHOhcP1YQW6Ur7Bz QxLIPJ4JUVvNZNW0hmjiZmzxLm5iNP3ObJSO4PTjAUcG/sPIqqlWsd8qNyatuPvfWK0o K/dfViFouyFngXjJ16rSE7T08JYN7upEMtLizDwfc2oXJRJT/6H33yLeg/7X3GkRNEvt HA/o1+hUcwpMXJBaIzXKjmLhnDd2eNBPoZaOALK8FxCQOr3ZXIOuVOJ5rhqXglWvTc7t hyXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9Vn3OZCvKq6jSOiidVy5UivM/a7wIKe+2cpNk3bOhtM=; b=KB7nTJwUEGYrzohgxGi8YIFQarq7BuLo7rf0D/RgCIFiai6qfzIAuHsYyTa/HgqtJ9 x4bIpMuZwZ4BsxBl/zNR013rojIqK4eaad3ihmJUAze50hNfIeT2FobChmvC/B4zNMwX MDbh6Pv95pXLsrIre4A0knU6paNRgb8QgNYGWy4z1ja3xpbRSuGhVAsWZv2LSxl5iTvj gg+GVmf38e2rgp1SChzR/NCgW+sFubvEzmzCh0eFFfWiuJ66Gh4rGfFSYcemeebkwpiv 2GWIUPA5ok5UTcXqRYSwYt1cjBZv7NPDqEwY25mV7TG2vQzEHGsJbkEziqar1HZkMBsI MBfA== X-Gm-Message-State: AOAM531tAOnQupl4qUYStGAMU1Xlve38++E5fV9Ppm6PIXrvpzf0LZyV /WjzuXQKlntXrF3wNnYD/K4qN1HmxMU9yg== X-Google-Smtp-Source: ABdhPJyawCuFHZIFA000nJRkcHXQGK+uiA6dpObHz90pHrJW0K4KTirDcRQBhj9RhShXwpkH+Kbi1Q== X-Received: by 2002:a62:8209:0:b029:32e:54d4:7e27 with SMTP id w9-20020a6282090000b029032e54d47e27mr2507125pfd.10.1626194534880; Tue, 13 Jul 2021 09:42:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 04/14] target/i386: Correct implementation for FCS, FIP, FDS and FDP Date: Tue, 13 Jul 2021 09:42:01 -0700 Message-Id: <20210713164211.1520109-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ziqiao Kong Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194771631100001 Content-Type: text/plain; charset="utf-8" From: Ziqiao Kong Update FCS:FIP and FDS:FDP according to the Intel Manual Vol.1 8.1.8. Note that CPUID.(EAX=3D07H,ECX=3D0H):EBX[bit 13] is not implemented by design in this patch and will be added along with TCG features flag in a separate patch later. Signed-off-by: Ziqiao Kong Message-Id: <20210530150112.74411-2-ziqiaokong@gmail.com> [rth: Push FDS/FDP handling down into mod !=3D 3 case; free last_addr.] Signed-off-by: Richard Henderson --- target/i386/cpu.h | 2 ++ target/i386/tcg/fpu_helper.c | 20 ++++++++++------- target/i386/tcg/translate.c | 43 +++++++++++++++++++++++++++++++++++- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 8f3747dd28..3dc52deaef 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1437,6 +1437,8 @@ typedef struct CPUX86State { FPReg fpregs[8]; /* KVM-only so far */ uint16_t fpop; + uint16_t fpcs; + uint16_t fpds; uint64_t fpip; uint64_t fpdp; =20 diff --git a/target/i386/tcg/fpu_helper.c b/target/i386/tcg/fpu_helper.c index beb63be432..cdd8e9f947 100644 --- a/target/i386/tcg/fpu_helper.c +++ b/target/i386/tcg/fpu_helper.c @@ -731,6 +731,10 @@ static void do_fninit(CPUX86State *env) { env->fpus =3D 0; env->fpstt =3D 0; + env->fpcs =3D 0; + env->fpds =3D 0; + env->fpip =3D 0; + env->fpdp =3D 0; cpu_set_fpuc(env, 0x37f); env->fptags[0] =3D 1; env->fptags[1] =3D 1; @@ -2378,19 +2382,19 @@ static void do_fstenv(CPUX86State *env, target_ulon= g ptr, int data32, cpu_stl_data_ra(env, ptr, env->fpuc, retaddr); cpu_stl_data_ra(env, ptr + 4, fpus, retaddr); cpu_stl_data_ra(env, ptr + 8, fptag, retaddr); - cpu_stl_data_ra(env, ptr + 12, 0, retaddr); /* fpip */ - cpu_stl_data_ra(env, ptr + 16, 0, retaddr); /* fpcs */ - cpu_stl_data_ra(env, ptr + 20, 0, retaddr); /* fpoo */ - cpu_stl_data_ra(env, ptr + 24, 0, retaddr); /* fpos */ + cpu_stl_data_ra(env, ptr + 12, env->fpip, retaddr); /* fpip */ + cpu_stl_data_ra(env, ptr + 16, env->fpcs, retaddr); /* fpcs */ + cpu_stl_data_ra(env, ptr + 20, env->fpdp, retaddr); /* fpoo */ + cpu_stl_data_ra(env, ptr + 24, env->fpds, retaddr); /* fpos */ } else { /* 16 bit */ cpu_stw_data_ra(env, ptr, env->fpuc, retaddr); cpu_stw_data_ra(env, ptr + 2, fpus, retaddr); cpu_stw_data_ra(env, ptr + 4, fptag, retaddr); - cpu_stw_data_ra(env, ptr + 6, 0, retaddr); - cpu_stw_data_ra(env, ptr + 8, 0, retaddr); - cpu_stw_data_ra(env, ptr + 10, 0, retaddr); - cpu_stw_data_ra(env, ptr + 12, 0, retaddr); + cpu_stw_data_ra(env, ptr + 6, env->fpip, retaddr); + cpu_stw_data_ra(env, ptr + 8, env->fpcs, retaddr); + cpu_stw_data_ra(env, ptr + 10, env->fpdp, retaddr); + cpu_stw_data_ra(env, ptr + 12, env->fpds, retaddr); } } =20 diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index a43e577019..8520d5a1e2 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -5920,6 +5920,8 @@ static target_ulong disas_insn(DisasContext *s, CPUSt= ate *cpu) /* floats */ case 0xd8 ... 0xdf: { + bool update_fip =3D true; + if (s->flags & (HF_EM_MASK | HF_TS_MASK)) { /* if CR0.EM or CR0.TS are set, generate an FPU exception = */ /* XXX: what to do if illegal op ? */ @@ -5932,7 +5934,14 @@ static target_ulong disas_insn(DisasContext *s, CPUS= tate *cpu) op =3D ((b & 7) << 3) | ((modrm >> 3) & 7); if (mod !=3D 3) { /* memory op */ - gen_lea_modrm(env, s, modrm); + AddressParts a =3D gen_lea_modrm_0(env, s, modrm); + TCGv ea =3D gen_lea_modrm_1(s, a); + TCGv last_addr =3D tcg_temp_new(); + bool update_fdp =3D true; + + tcg_gen_mov_tl(last_addr, ea); + gen_lea_v_seg(s, s->aflag, ea, a.def_seg, s->override); + switch (op) { case 0x00 ... 0x07: /* fxxxs */ case 0x10 ... 0x17: /* fixxxl */ @@ -6060,20 +6069,24 @@ static target_ulong disas_insn(DisasContext *s, CPU= State *cpu) case 0x0c: /* fldenv mem */ gen_helper_fldenv(cpu_env, s->A0, tcg_const_i32(dflag - 1)); + update_fip =3D update_fdp =3D false; break; case 0x0d: /* fldcw mem */ tcg_gen_qemu_ld_i32(s->tmp2_i32, s->A0, s->mem_index, MO_LEUW); gen_helper_fldcw(cpu_env, s->tmp2_i32); + update_fip =3D update_fdp =3D false; break; case 0x0e: /* fnstenv mem */ gen_helper_fstenv(cpu_env, s->A0, tcg_const_i32(dflag - 1)); + update_fip =3D update_fdp =3D false; break; case 0x0f: /* fnstcw mem */ gen_helper_fnstcw(s->tmp2_i32, cpu_env); tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, s->mem_index, MO_LEUW); + update_fip =3D update_fdp =3D false; break; case 0x1d: /* fldt mem */ gen_helper_fldt_ST0(cpu_env, s->A0); @@ -6085,15 +6098,18 @@ static target_ulong disas_insn(DisasContext *s, CPU= State *cpu) case 0x2c: /* frstor mem */ gen_helper_frstor(cpu_env, s->A0, tcg_const_i32(dflag - 1)); + update_fip =3D update_fdp =3D false; break; case 0x2e: /* fnsave mem */ gen_helper_fsave(cpu_env, s->A0, tcg_const_i32(dflag - 1)); + update_fip =3D update_fdp =3D false; break; case 0x2f: /* fnstsw mem */ gen_helper_fnstsw(s->tmp2_i32, cpu_env); tcg_gen_qemu_st_i32(s->tmp2_i32, s->A0, s->mem_index, MO_LEUW); + update_fip =3D update_fdp =3D false; break; case 0x3c: /* fbld */ gen_helper_fbld_ST0(cpu_env, s->A0); @@ -6116,6 +6132,19 @@ static target_ulong disas_insn(DisasContext *s, CPUS= tate *cpu) default: goto unknown_op; } + + if (update_fdp) { + int last_seg =3D s->override >=3D 0 ? s->override : a.= def_seg; + + tcg_gen_ld_i32(s->tmp2_i32, cpu_env, + offsetof(CPUX86State, + segs[last_seg].selector)); + tcg_gen_st16_i32(s->tmp2_i32, cpu_env, + offsetof(CPUX86State, fpds)); + tcg_gen_st_tl(last_addr, cpu_env, + offsetof(CPUX86State, fpdp)); + } + tcg_temp_free(last_addr); } else { /* register float ops */ opreg =3D rm; @@ -6136,6 +6165,7 @@ static target_ulong disas_insn(DisasContext *s, CPUSt= ate *cpu) case 0: /* fnop */ /* check exceptions (FreeBSD FPU probe) */ gen_helper_fwait(cpu_env); + update_fip =3D false; break; default: goto unknown_op; @@ -6305,9 +6335,11 @@ static target_ulong disas_insn(DisasContext *s, CPUS= tate *cpu) break; case 2: /* fclex */ gen_helper_fclex(cpu_env); + update_fip =3D false; break; case 3: /* fninit */ gen_helper_fninit(cpu_env); + update_fip =3D false; break; case 4: /* fsetpm (287 only, just do nop here) */ break; @@ -6428,6 +6460,15 @@ static target_ulong disas_insn(DisasContext *s, CPUS= tate *cpu) goto unknown_op; } } + + if (update_fip) { + tcg_gen_ld_i32(s->tmp2_i32, cpu_env, + offsetof(CPUX86State, segs[R_CS].selector)); + tcg_gen_st16_i32(s->tmp2_i32, cpu_env, + offsetof(CPUX86State, fpcs)); + tcg_gen_st_tl(tcg_constant_tl(pc_start - s->cs_base), + cpu_env, offsetof(CPUX86State, fpip)); + } } break; /************************/ --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194635; cv=none; d=zohomail.com; s=zohoarc; b=HFxwYoHTHppS09i6UUpYQ6xYYdGhGQSFB2ML6n4Krv3hmn5IRquJBw4SjtvNwmKc3Bcg3m2LJyzeG10nPQnWGYzALlifCNs91GGX6dKPg8/cMCjzyTnFh+oQ9mmpEASVEP1gLxupam+DS5kdUrLpMMIJz4jJ0O5PlpRASS157N4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194635; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fkcNcRIjqT1hq788GGq0h2qjDz4eiWFcxGo3OTTzr8A=; b=mJGgX6dFdkmmIEjnr47FkHntJ1IWMRSWAf/wHpV5cRoT6lAiR8h6RRpBmMF3Z6c6BRYi1ygwpk8icDeC/hxEcKLAalViqKb0NjC4Mr6vTVY2/v4j+2RNGKuGmnMQ+5DJaL0uUyE7FvB+FhZRbcbSqW3fWmsL4yBqploWkYeJ74s= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194635952658.0973542044641; Tue, 13 Jul 2021 09:43:55 -0700 (PDT) Received: from localhost ([::1]:56398 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LVi-0001Ck-Rr for importer@patchew.org; Tue, 13 Jul 2021 12:43:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41162) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUD-0006tX-9d for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:21 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]:37833) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU9-0005em-3A for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:21 -0400 Received: by mail-pg1-x529.google.com with SMTP id t9so22131704pgn.4 for ; Tue, 13 Jul 2021 09:42:16 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=fkcNcRIjqT1hq788GGq0h2qjDz4eiWFcxGo3OTTzr8A=; b=vJiFP1392DpESS/pQdf2Zsah71V4TxeDdpfLr6//jiGhwS5iAn3MMpvXf2o1AtWsjz drzXm5KngRm7PuT8hlRNuejkcQdftoe1dEbhBVR6xBRzqrcD9ae5V4clKVX0kz1teDWe SqQliezlzPZxhdiz1iRLscpDXvPaG+SiKJp2SbdQADN28/wB/mRDL+S1dt2fJpsoxk/1 2A6dCpONwttw3GyA3aGvwAdI9PQR04zawU5vGCr67ZqpywLd0YkOLY8t6ATyhxzdqnRV KZK7DAOpwCuocFYlGvFeliEF+bldqDb3q6tw6DgMoR9RuqyUY9fRQp44HLsr9LjaITzg KUmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fkcNcRIjqT1hq788GGq0h2qjDz4eiWFcxGo3OTTzr8A=; b=bQbGoB9THH13WmNUe+5JJb7BHmXIwsc9y8NyzkRVM2dcOY20Grds1AV01hKD0A9yWc D5dxyKv8mX+letuzv3FCOsOBPa4XzC2dcJT72BOY1Mxh79rO/NZi1oLxyuSdhBR9alMe XrHWD4AJPPX2lKPX41fAfrrzEq1djvCuBUsZUFBcULkZW2IVA/LQ57mbEqr/pR2cS0fS 50Q9E66rIqaNHUd0E3ONP4MoVLqF1ibzoll3ZH/bsay/n6qr7D5FpjOOTQfbQha+pEVT 04KVxFmCB1rQSkZZtCjRACK7tH+kXBkIKtZjkyutfVGVDi6KbHule3bZ1En5RVHbSMxj OXtw== X-Gm-Message-State: AOAM531kXNpj2h7NzozYBXIlHEjfThaCBeF7t0HadMSdOlXXFF7hkJXk wi9HCxGxMHBrewYiVyEH+kfnn2MmUZpBzA== X-Google-Smtp-Source: ABdhPJw5XOpQ1zcPBzDU4frtJgLslCLJBVZcjDaAgxQphJZrjjF+X5z46PHpG+dKv+2hz9O1pNC3wA== X-Received: by 2002:a05:6a00:882:b029:32a:845:ebcc with SMTP id q2-20020a056a000882b029032a0845ebccmr5398332pfj.15.1626194535481; Tue, 13 Jul 2021 09:42:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 05/14] target/alpha: Store set into rx flag Date: Tue, 13 Jul 2021 09:42:02 -0700 Message-Id: <20210713164211.1520109-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::529; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x529.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194636995100003 Content-Type: text/plain; charset="utf-8" A paste-o meant that we wrote back the existing value of the RX flag rather than changing it to TMP. Use tcg_constant_i64 while we're at it. Signed-off-by: Richard Henderson --- target/alpha/translate.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 833d3baa7b..b439b57a66 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -1084,15 +1084,11 @@ static void gen_msk_l(DisasContext *ctx, TCGv vc, T= CGv va, int rb, bool islit, =20 static void gen_rx(DisasContext *ctx, int ra, int set) { - TCGv tmp; - if (ra !=3D 31) { ld_flag_byte(ctx->ir[ra], ENV_FLAG_RX_SHIFT); } =20 - tmp =3D tcg_const_i64(set); - st_flag_byte(ctx->ir[ra], ENV_FLAG_RX_SHIFT); - tcg_temp_free(tmp); + st_flag_byte(tcg_constant_i64(set), ENV_FLAG_RX_SHIFT); } =20 static DisasJumpType gen_call_pal(DisasContext *ctx, int palcode) --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626195065; cv=none; d=zohomail.com; s=zohoarc; b=hroxZZu8CwQYJEzFuSIZBXqDXHYIuEtP2W6QG/sCQDZg4tTpBtXwDwuQMwKjYzc4+gBmMN6tGOONbv6h7x1baxSEn+R6t90R44GJAfWnzM7aRNoog+TiOgQpUk5iAmf+zCKaPT1J+9Ru4jscPpqklnx7QFWqn+fiotNRi/dbJwM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626195065; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TQm8Lq1Aaz3TmiNuToYyV4nWNe9sSLlo6H/vCDNuu6I=; b=XWNBc6CBlFo93Y7hoRdZEXQ8dQj3PxYbentjXJ0ovdas/8QLiKThrKMRdI3DtjwcOyp0LZFFzCzq7YzX8Dg2TcBjC1tymaEauGCNvbDqA2b0abFUtZdnSia76MPg1IXLIF1/JheMGI68TLrl4tGzhXIaRtqsuHoPFlAwCNVQs7s= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626195065340152.45774346585938; Tue, 13 Jul 2021 09:51:05 -0700 (PDT) Received: from localhost ([::1]:50264 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3Lce-0007j3-0u for importer@patchew.org; Tue, 13 Jul 2021 12:51:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41114) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUB-0006rJ-NL for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:19 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]:43830) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU9-0005ew-5H for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:19 -0400 Received: by mail-pj1-x102e.google.com with SMTP id x21-20020a17090aa395b029016e25313bfcso2497066pjp.2 for ; Tue, 13 Jul 2021 09:42:16 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TQm8Lq1Aaz3TmiNuToYyV4nWNe9sSLlo6H/vCDNuu6I=; b=rP73IFhbEnPMGZLtDwUK6Ki5zio/OaNH669Z03EzVn19iN2pjLGZjYyZw5O02EXDCa N65DfgB6b5Lmn6mXVr1XZDCJ/D39VouKFzr9jMvKf3u2fB/dYr2QOXFCV5/rNXpFfIey hbJerPezhBxApgI6NIkYOxbbFdtW40uSNZZFmTXnH7PSu8Yy9kRF83Ef5/ANH2gVV6h6 6B0jaImfd8ReWLOVzXXB43nxBjUgn4gMR9oklt+nnbOV+y2K3kr+SjuczafE4dMxhsCt kF6Yx6dGwUYztiKBiGXTi4njbQtwT03iL7//KvgtOSOnVLigvzYhRxQp6v78WoU5B8FN 7wHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TQm8Lq1Aaz3TmiNuToYyV4nWNe9sSLlo6H/vCDNuu6I=; b=JwYAHf1rWrNwmYusNn+698eOgEnaEF1l+ZKku0EpurOg7MkGlatwdel0f+TvPhpHtd qLxT3XPEeYCCP9BWuMOevKTqeX21O0z14bZ6R5qWRJ5gQnFph+zBn2jp1mdzZxbxGu2S wp0f+uRSecVy+88TtuMbDbU979Iffo9oH9heX8t/YjcQhiDDypaE1BtTfJcTEZgNQOBm +/XSdjfaEI9mkpSOp8tQv1gTYmGX8qdnaEUgBiwwqBBgFRmFlg11Ux7zRBmZWnfoUQ4O Lpcytv2YJsNCgw2TrOUGN7mhodoaghTKowCcojQ6HUY0YsLIABzIBj8EMgPCfYRISY2Z XKnw== X-Gm-Message-State: AOAM533tthJ3J0W4OMs5kX7cXkEOeWVrJGxNcnlJox9DzO7oh7pAt8Dv S8Csj5O3S+LyivIW6Dzkc5n27dCiUClEYQ== X-Google-Smtp-Source: ABdhPJyjJOfAQm0t1tejbZo7oePZrQwj/dQzoDroe+3jcVztFDCRUf+XhWHTvuBLDxObmaUOaWhYZg== X-Received: by 2002:a17:90a:4884:: with SMTP id b4mr206230pjh.173.1626194535958; Tue, 13 Jul 2021 09:42:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 06/14] target/alpha: Use dest_sink for HW_RET temporary Date: Tue, 13 Jul 2021 09:42:03 -0700 Message-Id: <20210713164211.1520109-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626195067602100001 Content-Type: text/plain; charset="utf-8" This temp is automatically freed, just like ctx->lit. But we're about to remove ctx->lit, so use sink instead. Signed-off-by: Richard Henderson --- target/alpha/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index b439b57a66..64c4865dda 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -2717,7 +2717,7 @@ static DisasJumpType translate_one(DisasContext *ctx,= uint32_t insn) /* Pre-EV6 CPUs interpreted this as HW_REI, loading the return address from EXC_ADDR. This turns out to be useful for our emulation PALcode, so continue to accept it. */ - ctx->lit =3D vb =3D tcg_temp_new(); + vb =3D dest_sink(ctx); tcg_gen_ld_i64(vb, cpu_env, offsetof(CPUAlphaState, exc_addr)); } else { vb =3D load_gpr(ctx, rb); --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194920; cv=none; d=zohomail.com; s=zohoarc; b=Pk2qxF/zX1MwCxIL2uGmXDCFyseUA6x3i7KfEulVa1bM9i4HvKCrh0Hz6dJhdpGClOoqSXgryL2ijJmlcQw/xG6Bj5Uza8n0mbG4abROxN3Hn1NEb7WdJ+LyqJYwt/cw+GhNS04Fj4eP2WP3G68kXoMyr/8u4AK+JfUhRVrP1s4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194920; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UXF13QTS5AJHAq5VT/9hnMvu0uSbL+4zu4FScleCGMI=; b=M9dBRkNBC1B+DKIr89GbjCu5ms5/C6wff0g8/w7lhI6Vg36YteH2+BN14HQekVtMhktK04I9WYFT1mUckRPPOxbVvotlvYGnvj4BIG5wOS87wzeorZQlBz5VAmhAxuey3XyNotvB2rwufdIm/tbeR1wIwCxfqVBV+nSUHUDVLRM= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194920628469.90112329530666; Tue, 13 Jul 2021 09:48:40 -0700 (PDT) Received: from localhost ([::1]:44008 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LaJ-0003Ju-LR for importer@patchew.org; Tue, 13 Jul 2021 12:48:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41160) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUD-0006tR-7R for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:21 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]:46920) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LU9-0005fH-MX for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:20 -0400 Received: by mail-pj1-x102d.google.com with SMTP id b5-20020a17090a9905b029016fc06f6c5bso2490232pjp.5 for ; Tue, 13 Jul 2021 09:42:17 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UXF13QTS5AJHAq5VT/9hnMvu0uSbL+4zu4FScleCGMI=; b=auIbAaMZJ8l3mhaJmIb7KsrJTMttOAlcM/4UPIF2HR4ynwPWgZdc+IsL2Nbs8aDdia g2ARGztMRVTyPPJa/EHOcaovZafy7yNnJIWGo+xwlLDYKGidzjVu4UjzX7KQ/SFSVBqN HGqLv9w83E+yUyuIUuTkzoKVbga/0cFV4ORL2VIHKWPNUuKbI/ouVIO6XCDKteINdf1G 1HBhmZwh6fg2Hmti2zRSODbtc8iOFk391v9UlPkulsXZ1DltlTDOOE/KPSZZxRwKQrT8 ugN9TGBlfR2B7vRf5fhMyZ0JrLVa/V8reS9sRQMnwr9sTuxfcVp+hiDaEnsmVxxvpukz c1zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UXF13QTS5AJHAq5VT/9hnMvu0uSbL+4zu4FScleCGMI=; b=hzsKOCQr5S49zGXUNXTzb86u7f7187xZQfV+3+R2uCbB4PNI/Ik2EZ/SDWvnMcRIOh JCIJGaWI3hOXQenj2Ua11XuYc9oMhb+HwGsZtA1QvWZb0HoyN4zkccGkt7iL/xyrO6Mq g3qvfnXIns9jr/CAOGxrB1aTc612O8X4Y7HtCrQKce2pjLZSdToBfyFvhuZQ22/+dk2H edvie6xRDFPEXrNozEujYj1YaYLb4xSMtAsBkXAnqM6VQN5Vf0ZmnN58w92WhWDctDrr UpQwg64u9UF6g6Ji8Hwywe0w8rYpCDEqAuVEH4xNpn6skSdD2XVWEial5Fj62O23yDa7 +2Xg== X-Gm-Message-State: AOAM532FQiL02Q61nfbwOBt2ORIM49uuoxgRgG0YnnRMVhenJWRL8NJy e1qrgfAnBgyo6Ry2puK0+wdlkczhs+x6eg== X-Google-Smtp-Source: ABdhPJwVGnVTyyq0Bz8tL0LHr8/nQtgFWRn0Ozhow9jM3oGS54aXRfzvyVwoiG2Qn2hAebHggMzz4w== X-Received: by 2002:a17:90a:1704:: with SMTP id z4mr207727pjd.213.1626194536418; Tue, 13 Jul 2021 09:42:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 07/14] target/alpha: Use tcg_constant_i64 for zero and lit Date: Tue, 13 Jul 2021 09:42:04 -0700 Message-Id: <20210713164211.1520109-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194922643100003 These constant temps do not need to be freed, and therefore need less bookkeeping from tcg producers. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/alpha/translate.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 64c4865dda..58c0e08c0c 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -66,8 +66,6 @@ struct DisasContext { /* Temporaries for $31 and $f31 as source and destination. */ TCGv zero; TCGv sink; - /* Temporary for immediate constants. */ - TCGv lit; }; =20 /* Target-specific return values from translate_one, indicating the @@ -157,7 +155,7 @@ void alpha_translate_init(void) static TCGv load_zero(DisasContext *ctx) { if (!ctx->zero) { - ctx->zero =3D tcg_const_i64(0); + ctx->zero =3D tcg_constant_i64(0); } return ctx->zero; } @@ -177,14 +175,6 @@ static void free_context_temps(DisasContext *ctx) tcg_temp_free(ctx->sink); ctx->sink =3D NULL; } - if (ctx->zero) { - tcg_temp_free(ctx->zero); - ctx->zero =3D NULL; - } - if (ctx->lit) { - tcg_temp_free(ctx->lit); - ctx->lit =3D NULL; - } } =20 static TCGv load_gpr(DisasContext *ctx, unsigned reg) @@ -200,8 +190,7 @@ static TCGv load_gpr_lit(DisasContext *ctx, unsigned re= g, uint8_t lit, bool islit) { if (islit) { - ctx->lit =3D tcg_const_i64(lit); - return ctx->lit; + return tcg_constant_i64(lit); } else if (likely(reg < 31)) { return ctx->ir[reg]; } else { @@ -2992,7 +2981,6 @@ static void alpha_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cpu) =20 ctx->zero =3D NULL; ctx->sink =3D NULL; - ctx->lit =3D NULL; =20 /* Bound the number of insns to execute to those left on the page. */ bound =3D -(ctx->base.pc_first | TARGET_PAGE_MASK) / 4; --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626195148; cv=none; d=zohomail.com; s=zohoarc; b=AzIT6xC9dzVLMM02mBVvNEHPBgsZCTyAH/Ji9j+wFZe8FTpREELZyh/68H18InOuldrdv5sn7EN5EQpcZcUocRqawA1hWtGoxotSCB0qTsvUmNkA7guKNGCwXqROnU+SV9IUkDowUEgEmsaMbVhpkN3S8OVrqN4Cr6bYUCOC3qE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626195148; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KuDDoLNIk68fDtCCr2zu8W55ZPfrf4mbWdcj3lhD6LA=; b=FD42AokhOAb5S9LIQ1uBeYeRc8LMx+1IuN+FCMPmpOjdXCKYvm3Y+9zfDtkryxgsNx1ZUrE1YvWR8IZjzLWZVcUmPCqHO+s5fkiZkNCBQLhPHw9t1czzMdJzOB9JgHQmjejrBtMYZGWXKdgO50g4p0zJ+XHqR+zZFXnbDmnHBvA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626195148436195.91544230793738; Tue, 13 Jul 2021 09:52:28 -0700 (PDT) Received: from localhost ([::1]:57036 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3Ldy-00048W-CP for importer@patchew.org; Tue, 13 Jul 2021 12:52:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41214) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUF-0006vk-51 for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:23 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:42678) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUA-0005fl-61 for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: by mail-pj1-x1036.google.com with SMTP id i16-20020a17090acf90b02901736d9d2218so2495554pju.1 for ; Tue, 13 Jul 2021 09:42:17 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KuDDoLNIk68fDtCCr2zu8W55ZPfrf4mbWdcj3lhD6LA=; b=stMahCLEOa24hin7oxfFzA/mdz4zAICUhlB+O/qaIn5SMU4E3rH43tL0XBywFjdDnE 1732FV4SZPo3s7Dbbz/9q0ttsRRcWEnG65YKS1JwX8KtpXOVZmvD9X1780UbMu313lpV x+fmTjOKDvm2Tz5XGkOAmHBRU1mJriTEH+SP0lt5bWDGDONKBFH/sSQ0ibUoE4yIoYwd Mj43bOEx0CIVp/10wcVA+lkJsM/RInI7x/BAcE9dLyCwOKSFHj5QCY7HN1a418GJrt9c kJiIpS6SAmTKJJaRjwRb+HB8cvZp8uHehZRC+Yrp3pqWYOAWs7unzsJeEJQq4/8GTUXU 6dUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KuDDoLNIk68fDtCCr2zu8W55ZPfrf4mbWdcj3lhD6LA=; b=lqFgjVTGjxz3/ySdZmLeezmN5zTJJAOXadj4tumbwPW1QMhz+A7qug5v2t+S/nblx4 FR4wAg7SFRoyEtp/iOvXLpKL0DZ9+MayLBAx67Ymfe05d7ug9MCy3x7ATnb7i6W7cMnZ bGl+IaFKZURZu0qZKIUh9OEUH7s0KHwINovAFVexdz6P5QnK+BxaB+nKssK/dFF8R/pQ xExUnZZi3xDKTTsAx93NBDhdaqF1jRwYyS8mM8KGxT0rh44Lay0YdmEOM/kxyIad2Jou uy/tTvZvbq5OGFmoRnMRK1ctEVHVwWdWOxrHYdCxb3GdH1tjJd2qZupMV0llbNLCvyFp a5Fg== X-Gm-Message-State: AOAM533Xpk9IGEBOwUtM+mED0bR9pOAA2bjb3H0q30XsPngIsCHQyynm P0s4RmljVaW5d4vmTDmiSo373SpZ0yl8dg== X-Google-Smtp-Source: ABdhPJxrqRXirwVeJ7aKvLDGc58tsTMMIOaGdS4QVVNvPY2S71lJ4XgpYKRp67a6j8tv/hO/WHY+fw== X-Received: by 2002:a17:90a:a6e:: with SMTP id o101mr5147603pjo.208.1626194536928; Tue, 13 Jul 2021 09:42:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 08/14] target/alpha: Use tcg_constant_* elsewhere Date: Tue, 13 Jul 2021 09:42:05 -0700 Message-Id: <20210713164211.1520109-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626195150548100001 Replace the remaining uses of tcg_const_*. These uses are all local, with the allocate and free close together. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/alpha/translate.c | 46 ++++++++++++---------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 58c0e08c0c..103c6326a2 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -250,11 +250,9 @@ static void gen_excp_1(int exception, int error_code) { TCGv_i32 tmp1, tmp2; =20 - tmp1 =3D tcg_const_i32(exception); - tmp2 =3D tcg_const_i32(error_code); + tmp1 =3D tcg_constant_i32(exception); + tmp2 =3D tcg_constant_i32(error_code); gen_helper_excp(cpu_env, tmp1, tmp2); - tcg_temp_free_i32(tmp2); - tcg_temp_free_i32(tmp1); } =20 static DisasJumpType gen_excp(DisasContext *ctx, int exception, int error_= code) @@ -474,15 +472,11 @@ static DisasJumpType gen_bcond_internal(DisasContext = *ctx, TCGCond cond, =20 return DISAS_NORETURN; } else { - TCGv_i64 z =3D tcg_const_i64(0); - TCGv_i64 d =3D tcg_const_i64(dest); - TCGv_i64 p =3D tcg_const_i64(ctx->base.pc_next); + TCGv_i64 z =3D load_zero(ctx); + TCGv_i64 d =3D tcg_constant_i64(dest); + TCGv_i64 p =3D tcg_constant_i64(ctx->base.pc_next); =20 tcg_gen_movcond_i64(cond, cpu_pc, cmp, z, d, p); - - tcg_temp_free_i64(z); - tcg_temp_free_i64(d); - tcg_temp_free_i64(p); return DISAS_PC_UPDATED; } } @@ -684,22 +678,19 @@ static void gen_fp_exc_raise(int rc, int fn11) if (!(fn11 & QUAL_I)) { ignore |=3D FPCR_INE; } - ign =3D tcg_const_i32(ignore); + ign =3D tcg_constant_i32(ignore); =20 /* ??? Pass in the regno of the destination so that the helper can set EXC_MASK, which contains a bitmask of destination registers that have caused arithmetic traps. A simple userspace emulation does not require this. We do need it for a guest kernel's entArith, or if we were to do something clever with imprecise exceptions. */ - reg =3D tcg_const_i32(rc + 32); + reg =3D tcg_constant_i32(rc + 32); if (fn11 & QUAL_S) { gen_helper_fp_exc_raise_s(cpu_env, ign, reg); } else { gen_helper_fp_exc_raise(cpu_env, ign, reg); } - - tcg_temp_free_i32(reg); - tcg_temp_free_i32(ign); } =20 static void gen_cvtlq(TCGv vc, TCGv vb) @@ -792,7 +783,7 @@ IEEE_INTCVT(cvtqt) =20 static void gen_cpy_mask(TCGv vc, TCGv va, TCGv vb, bool inv_a, uint64_t m= ask) { - TCGv vmask =3D tcg_const_i64(mask); + TCGv vmask =3D tcg_constant_i64(mask); TCGv tmp =3D tcg_temp_new_i64(); =20 if (inv_a) { @@ -804,7 +795,6 @@ static void gen_cpy_mask(TCGv vc, TCGv va, TCGv vb, boo= l inv_a, uint64_t mask) tcg_gen_andc_i64(vc, vb, vmask); tcg_gen_or_i64(vc, vc, tmp); =20 - tcg_temp_free(vmask); tcg_temp_free(tmp); } =20 @@ -1178,12 +1168,9 @@ static DisasJumpType gen_call_pal(DisasContext *ctx,= int palcode) =20 case 0x3E: /* WTINT */ - { - TCGv_i32 tmp =3D tcg_const_i32(1); - tcg_gen_st_i32(tmp, cpu_env, -offsetof(AlphaCPU, env) + - offsetof(CPUState, halted)); - tcg_temp_free_i32(tmp); - } + tcg_gen_st_i32(tcg_constant_i32(1), cpu_env, + -offsetof(AlphaCPU, env) + + offsetof(CPUState, halted)); tcg_gen_movi_i64(ctx->ir[IR_V0], 0); return gen_excp(ctx, EXCP_HALTED, 0); =20 @@ -1334,12 +1321,8 @@ static DisasJumpType gen_mtpr(DisasContext *ctx, TCG= v vb, int regno) =20 case 253: /* WAIT */ - { - TCGv_i32 tmp =3D tcg_const_i32(1); - tcg_gen_st_i32(tmp, cpu_env, -offsetof(AlphaCPU, env) + - offsetof(CPUState, halted)); - tcg_temp_free_i32(tmp); - } + tcg_gen_st_i32(tcg_constant_i32(1), cpu_env, + -offsetof(AlphaCPU, env) + offsetof(CPUState, halte= d)); return gen_excp(ctx, EXCP_HALTED, 0); =20 case 252: @@ -2712,9 +2695,8 @@ static DisasJumpType translate_one(DisasContext *ctx,= uint32_t insn) vb =3D load_gpr(ctx, rb); } tcg_gen_movi_i64(cpu_lock_addr, -1); + st_flag_byte(load_zero(ctx), ENV_FLAG_RX_SHIFT); tmp =3D tcg_temp_new(); - tcg_gen_movi_i64(tmp, 0); - st_flag_byte(tmp, ENV_FLAG_RX_SHIFT); tcg_gen_andi_i64(tmp, vb, 1); st_flag_byte(tmp, ENV_FLAG_PAL_SHIFT); tcg_temp_free(tmp); --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194914; cv=none; d=zohomail.com; s=zohoarc; b=HLDtYSbWoeiAQAWlgG7iwAtJeJDQjQqsyCktgv4IgxTqJ4Spt7YNjUeahxTeKDibPpTTUwKOKBOMuVzYbI6m8hyc75Gk7dqeBfh0yk6HMva9IAoce8h9LKOuST+mKVG3l6q40wXqTiQy8wBwQfy4cUBO3pgBoBa2rASRJvQjZKE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194914; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9YUKtvJ3DiCKvRhTAIKBYXvq8J1GX8aw6iywB1LJsnI=; b=h4nOzrUMZeyNECkozW+0Cfc0NDDY2dF440nS0Jzk1bZoigtrKHruRXXhxeyu+8YRowbMbF+G3TcGujBAcvCWsa6tdft4/Nobt92Ebfp1cJ1nNGd5DASNTjkXpRJVLVJeA+Y5o3KOyY+iGq3iLP4jdOGyU2goVIeEaB5ADyFk3Dw= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194914607467.06387031249756; Tue, 13 Jul 2021 09:48:34 -0700 (PDT) Received: from localhost ([::1]:43378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LaD-0002u9-BM for importer@patchew.org; Tue, 13 Jul 2021 12:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41188) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUE-0006tn-8W for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:45987) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUA-0005g2-Sp for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: by mail-pf1-x42a.google.com with SMTP id q10so20151900pfj.12 for ; Tue, 13 Jul 2021 09:42:18 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9YUKtvJ3DiCKvRhTAIKBYXvq8J1GX8aw6iywB1LJsnI=; b=l0rIJ6aR9SgmAnQvELM4MQb/VlYVcCN1vmfUj/WI0hUBacJq3T0OLKEifu69JWeO8o 5MV72lMo6koAvkGWc1AO7KyFJcxd9fKzMTYKJUyOiueW8yqUPSxzSxSevVZqC2plBYmK xhbWbqFIQyzUfUNQy4hPVWe6TP6Q7iYyXUQP/F1nZXxj7HN751z9qlYgLuyDifbeX6/b bCL7Au+a1aBzIzQccL23uTq7rgswQ20DOw6ISCX8BWasYcL5xqhKnIBXliEBF1DfV+uM To/PPPYwP4jZKINpa3AtzqsXXr/mvDstuT5rCLMJ2u3Tj1duEkzXUtszhaANCAo1hNAD X7YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9YUKtvJ3DiCKvRhTAIKBYXvq8J1GX8aw6iywB1LJsnI=; b=QQWoxOfkJaA+ZDXMS19O47/Uqwwf0Ghx+luf/6utx5997WnXCajNlsV7DHSGzPWger oWKfSJD54Ke7uh6e/ciidyWBijbQNRrtJzz7qUHIb3+5tJ1bNW3MzeJnBd3deZZXOEnt FYpLt6X4N+AWVsqZXQ0gqxG7KBUPqhdLoleJcEvvrnPELljFNuZ9uhlzT8K26Jq3hmwH psU81EA7yDlrkSFC3bN8tSYT0E8fy6DBLgfrHM4n5abVKA5BCvGkJMn9IhX3YkgmT0pG cj7nLDtGKuIRKS0bQ3C2HH8S2tdG80Vr7yqi9rNhdd4F71PswN23Yq3uI/aRjDwx97j2 VaZQ== X-Gm-Message-State: AOAM531qVVCOaZa5qBVasRdCQxg1ojifxyLM3ncJLbV7G6YbgkuGHu9f SQ2vJRhrRU7W2Zbt8d+vhwDnL97HUUVzXg== X-Google-Smtp-Source: ABdhPJyr+tN6IAWNIXHUhqPX6Sp+jjPD1HBOsN3dAIItbY4IVGTzAV6/mm1cIdyGjvjOFM5tS34ncg== X-Received: by 2002:a62:481:0:b029:31d:f010:26b2 with SMTP id 123-20020a6204810000b029031df01026b2mr5553127pfe.2.1626194537579; Tue, 13 Jul 2021 09:42:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 09/14] target/openrisc: Use tcg_constant_* Date: Tue, 13 Jul 2021 09:42:06 -0700 Message-Id: <20210713164211.1520109-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42a; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stafford Horne , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194916095100001 Replace uses of tcg_const_* allocate and free close together with tcg_constant_*. Reviewed-by: Stafford Horne Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/openrisc/translate.c | 42 ++++++++----------------------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index 37c3e3e0a3..1e3b019c59 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -129,9 +129,7 @@ void openrisc_translate_init(void) =20 static void gen_exception(DisasContext *dc, unsigned int excp) { - TCGv_i32 tmp =3D tcg_const_i32(excp); - gen_helper_exception(cpu_env, tmp); - tcg_temp_free_i32(tmp); + gen_helper_exception(cpu_env, tcg_constant_i32(excp)); } =20 static void gen_illegal_exception(DisasContext *dc) @@ -538,13 +536,11 @@ static bool trans_l_extbz(DisasContext *dc, arg_da *a) =20 static bool trans_l_cmov(DisasContext *dc, arg_dab *a) { - TCGv zero; + TCGv zero =3D tcg_constant_tl(0); =20 check_r0_write(dc, a->d); - zero =3D tcg_const_tl(0); tcg_gen_movcond_tl(TCG_COND_NE, cpu_R(dc, a->d), cpu_sr_f, zero, cpu_R(dc, a->a), cpu_R(dc, a->b)); - tcg_temp_free(zero); return true; } =20 @@ -632,15 +628,11 @@ static bool trans_l_jal(DisasContext *dc, arg_l_jal *= a) static void do_bf(DisasContext *dc, arg_l_bf *a, TCGCond cond) { target_ulong tmp_pc =3D dc->base.pc_next + a->n * 4; - TCGv t_next =3D tcg_const_tl(dc->base.pc_next + 8); - TCGv t_true =3D tcg_const_tl(tmp_pc); - TCGv t_zero =3D tcg_const_tl(0); + TCGv t_next =3D tcg_constant_tl(dc->base.pc_next + 8); + TCGv t_true =3D tcg_constant_tl(tmp_pc); + TCGv t_zero =3D tcg_constant_tl(0); =20 tcg_gen_movcond_tl(cond, jmp_pc, cpu_sr_f, t_zero, t_true, t_next); - - tcg_temp_free(t_next); - tcg_temp_free(t_true); - tcg_temp_free(t_zero); dc->delayed_branch =3D 2; } =20 @@ -813,44 +805,28 @@ static bool trans_l_adrp(DisasContext *dc, arg_l_adrp= *a) =20 static bool trans_l_addi(DisasContext *dc, arg_rri *a) { - TCGv t0; - check_r0_write(dc, a->d); - t0 =3D tcg_const_tl(a->i); - gen_add(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), t0); - tcg_temp_free(t0); + gen_add(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), tcg_constant_tl(a->i)); return true; } =20 static bool trans_l_addic(DisasContext *dc, arg_rri *a) { - TCGv t0; - check_r0_write(dc, a->d); - t0 =3D tcg_const_tl(a->i); - gen_addc(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), t0); - tcg_temp_free(t0); + gen_addc(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), tcg_constant_tl(a->i)); return true; } =20 static bool trans_l_muli(DisasContext *dc, arg_rri *a) { - TCGv t0; - check_r0_write(dc, a->d); - t0 =3D tcg_const_tl(a->i); - gen_mul(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), t0); - tcg_temp_free(t0); + gen_mul(dc, cpu_R(dc, a->d), cpu_R(dc, a->a), tcg_constant_tl(a->i)); return true; } =20 static bool trans_l_maci(DisasContext *dc, arg_l_maci *a) { - TCGv t0; - - t0 =3D tcg_const_tl(a->i); - gen_mac(dc, cpu_R(dc, a->a), t0); - tcg_temp_free(t0); + gen_mac(dc, cpu_R(dc, a->a), tcg_constant_tl(a->i)); return true; } =20 --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194764; cv=none; d=zohomail.com; s=zohoarc; b=NPMaq6T60Mz+gy65WH2O3K5vc6h9inEH5rSE9Xhi4F7tfsvjywkY3cCPOd+Y0duFC4HE4n+CwZQH6o5lyhnNMKh5/n2TKZ0Kav7AS6OZqJHQNItrZBQXaPace3lhySw9geR//4wsWGarMvRw4ZRPnc46EkrsMhqNPLDSgRAtzOU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194764; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9Ox+DD1VyGDD2SWlngk4YcouD6dR00XZiALJU9OxjL4=; b=dAzpcm/VM9dtE+uqxI9c31C9tefyeOCabDjGr0Ca0BdvDAUbwrDA3xc0Jdambz10mSlswjJHTMNngEvOALXLzEZGMDoZnuK2pGzaKcvA+r+WfR2MN+MI1RzchMT9c7pZNcFalA5H8dV1OnXi3bmSzaIY0eN1qI7yYxA8cJ8NMM4= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194764463113.47620198202185; Tue, 13 Jul 2021 09:46:04 -0700 (PDT) Received: from localhost ([::1]:36538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LXn-0006oT-CH for importer@patchew.org; Tue, 13 Jul 2021 12:46:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUE-0006u5-E0 for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]:37825) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUB-0005gO-Ce for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: by mail-pj1-x1030.google.com with SMTP id o3-20020a17090a6783b0290173ce472b8aso1803342pjj.2 for ; Tue, 13 Jul 2021 09:42:19 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9Ox+DD1VyGDD2SWlngk4YcouD6dR00XZiALJU9OxjL4=; b=q9WkDpCEdlMjMvspJD322CtxcGko6rp1HFq6WoZv0+ZaFhh6CD3wzql3YcyMykPwpI S2k6pD6E9AGmQCHj4BTYq36mL/zIP+EtsiBxtIe5p76MQ5KuF0o+1u8souy8GSapwDCe PlWah6aQNH/4i4RP1eRS/vkVA4DDWvy675risDCpn/xwtNOgJXV5pn/+NJtDiQhJsuXG 5oBihygk9SFdb/FwIorcqWPLCjZ2RLeu3EODCq0fCltDH/wBPXxlTiqhV0qLp+j/pZO+ t/kPqyfAEl0jK7r7jLdh5AfIVlojlfQDXNT1Xzaq4kIxFNGcygZDUPb4wwdy/U0Ij5oY rSYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9Ox+DD1VyGDD2SWlngk4YcouD6dR00XZiALJU9OxjL4=; b=i27l/AQZRWSYe55XLxRgosYMf0uxkI4jX4jKCLBp4qgWFmKiB6Zh3YzVKT51vlKNaZ IuYhFKEAoUgeN4wx7Uwb83/fa432I9KQoxcTX188AaB1JuG9xqM/A/GErhZc6fcSPLhB upr24z0m4Xq2CNKS7wM1rVoqmLWi4SIzQaw9fcmvd0CGflB98vBOh2M4IoFORTVDgVrH dHYsTyAVZnIeeyRcnMGFqNWh56HVyURTaWsyNFaHQSpzFamaFiYuwy5KfRvW+mvvL/oD bQ4paSh9l0VvOzbkSvcK//tGANs8bNZ3MjRf58ZYMOAfPUdXlgfnxtrkc2MEvW5wFCy3 Ae0Q== X-Gm-Message-State: AOAM532CgHPnF4LuIddS0Ix5ygFBHIpEIaOMjby9CfnHJeUFMF0nAl93 c5tou0y/m/MF6CTXAQyeZ224QYd7Z/CIgA== X-Google-Smtp-Source: ABdhPJz7mYn149Xo/ivnwWno77wBjPm+vhg39GIrJqUbJQPWu2eila8JNWiRs4fJJ+T7WQs9X8IQcw== X-Received: by 2002:a17:90a:7bc3:: with SMTP id d3mr214428pjl.145.1626194538162; Tue, 13 Jul 2021 09:42:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 10/14] target/openrisc: Use tcg_constant_tl for dc->R0 Date: Tue, 13 Jul 2021 09:42:07 -0700 Message-Id: <20210713164211.1520109-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stafford Horne Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194764830100001 Content-Type: text/plain; charset="utf-8" The temp allocated for tcg_const_tl is auto-freed at branches, but pure constants are not. So we can remove the extra hoop jumping in trans_l_swa. Reviewed-by: Stafford Horne Signed-off-by: Richard Henderson --- target/openrisc/translate.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index 1e3b019c59..2db529b7de 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -732,12 +732,6 @@ static bool trans_l_swa(DisasContext *dc, arg_store *a) ea =3D tcg_temp_new(); tcg_gen_addi_tl(ea, cpu_R(dc, a->a), a->i); =20 - /* For TB_FLAGS_R0_0, the branch below invalidates the temporary assig= ned - to cpu_regs[0]. Since l.swa is quite often immediately followed by= a - branch, don't bother reallocating; finish the TB using the "real" R= 0. - This also takes care of RB input across the branch. */ - dc->R0 =3D cpu_regs[0]; - lab_fail =3D gen_new_label(); lab_done =3D gen_new_label(); tcg_gen_brcond_tl(TCG_COND_NE, ea, cpu_lock_addr, lab_fail); @@ -745,7 +739,7 @@ static bool trans_l_swa(DisasContext *dc, arg_store *a) =20 val =3D tcg_temp_new(); tcg_gen_atomic_cmpxchg_tl(val, cpu_lock_addr, cpu_lock_value, - cpu_regs[a->b], dc->mem_idx, MO_TEUL); + cpu_R(dc, a->b), dc->mem_idx, MO_TEUL); tcg_gen_setcond_tl(TCG_COND_EQ, cpu_sr_f, val, cpu_lock_value); tcg_temp_free(val); =20 @@ -1601,7 +1595,7 @@ static void openrisc_tr_tb_start(DisasContextBase *db= , CPUState *cs) /* Allow the TCG optimizer to see that R0 =3D=3D 0, when it's true, which is the common case. */ if (dc->tb_flags & TB_FLAGS_R0_0) { - dc->R0 =3D tcg_const_tl(0); + dc->R0 =3D tcg_constant_tl(0); } else { dc->R0 =3D cpu_regs[0]; } --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626195079; cv=none; d=zohomail.com; s=zohoarc; b=WV1+j/7WyKz7LX6ZuWXljMQAwYZ6t9KuOB6RMdPmsZ7ct7FWcjZinWHdwoKEdoSB194EkvUW2a43TmxTqfWYmSqjqhtwjnDViggj/0OhDcP+rZRKX2I4CvtTwE0GKK2Gg3EBzTlnV9DgbGrqBR5GWtN8Qi+/eUhu+gMlwseHnmY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626195079; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=l5PqM6iGSweKZSS09TGPy9jM/MAv4I7LtiO9ZGckioo=; b=czDwFwsLdeP/mH7XqP8JpgEdJUy8YYj2RPZHPAl5qtP19WSoNI237siNCfHCMrvUnrDi9TDz8qXG+BGPGxsNJT+GVq/JS1y5lI1njLpGmAOsWr0tRxVzYJUqsYxuaD/6Jjs+hAIVIIyAZf4UX2nUYUi6ajHhwNpR/j9RGEpKym0= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626195079303161.84369050587134; Tue, 13 Jul 2021 09:51:19 -0700 (PDT) Received: from localhost ([::1]:51148 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3Lcs-0008NY-BA for importer@patchew.org; Tue, 13 Jul 2021 12:51:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41196) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUE-0006u8-JR for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:33373) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUC-0005gn-7X for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:22 -0400 Received: by mail-pl1-x629.google.com with SMTP id d1so6185095plg.0 for ; Tue, 13 Jul 2021 09:42:19 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l5PqM6iGSweKZSS09TGPy9jM/MAv4I7LtiO9ZGckioo=; b=Qp1pi/xijJ3l5zDukur8AAb6SI1qrJBbW7UckSBVDBlFdjZJ48z7ty7P2gijabMufK lbyXKyYR07XKWWlvWOiLW71yfzv7Gv3OcUWtoRIObzxn+ggaxUrf+i8SVNXj86CbqdXg j7Y9JV9SacZpCxtlDbILTayDgTcmgg9NLmEJsH4cIPlqacB21DHoQJzC0S6jpaOjtseC qveKbvHZT+2de3w7/HMHzIyF5B0UKvRUi3UaXejTRVQBT8Ufbs6g+B1kGtqxEKEXVXaY 9eUCD79JR3XKg6WOWbSPvt/vlzWGpGOp5SGEK1GCqUw9oH8AcXXVpthYZs2zaSt6tvHg umGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l5PqM6iGSweKZSS09TGPy9jM/MAv4I7LtiO9ZGckioo=; b=VF6SVArPiR6kHkp7WMREJ7+bM5JbdZxIutGUre9BEKm/QJQPoSITursw88NO58p8Nx A6CnJg/FZHddI/IZJujHK0IMfCFnhi45qTb7moxq0S709PDRDf4mOfSkf1Mud0nCqbLS Varu/LEl94LDa4W0xnzVPSvV1vitrcjSs6dd8uxj2pd0uCHApe2v/EqHN1hJN1DLsu4m rOwFTF9yQ64l+HIl5bF2Oe94GTgvvJ/nwl6eCt7/LCwPFXB35786KL0dv40gNO6bfrn+ 2/U5RRNDtNNOORKqJHEO7t+bBcjdE99lChVgVyR2Z5g4Q8XtemnqbiewWc8Nj2DGxLaQ Z0OA== X-Gm-Message-State: AOAM533KmLGUKFwkl4sahM6PSWj0UYSyeo8dsbwUYF0mDy1svokSHffW bh6Tm3zTMabpNM4fYYXHXWRszq7Q5eBCPA== X-Google-Smtp-Source: ABdhPJw/j8vPhV9o305iKrm1WHU/e2EVydTUbGC3S7jusvhKHv/SQ/nfuzh1+9UMLR34YTjgzMBE7A== X-Received: by 2002:a17:90a:a60f:: with SMTP id c15mr5029285pjq.187.1626194538823; Tue, 13 Jul 2021 09:42:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 11/14] target/openrisc: Cache constant 0 in DisasContext Date: Tue, 13 Jul 2021 09:42:08 -0700 Message-Id: <20210713164211.1520109-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stafford Horne , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626195081016100003 We are virtually certain to have fetched constant 0 once, at the beginning of the TB, so we might as well use it elsewhere. Reviewed-by: Stafford Horne Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/openrisc/translate.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index 2db529b7de..6aba4c2ffc 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -52,6 +52,8 @@ typedef struct DisasContext { =20 /* The temporary corresponding to register 0 for this compilation. */ TCGv R0; + /* The constant zero. */ + TCGv zero; } DisasContext; =20 static inline bool is_user(DisasContext *dc) @@ -536,10 +538,8 @@ static bool trans_l_extbz(DisasContext *dc, arg_da *a) =20 static bool trans_l_cmov(DisasContext *dc, arg_dab *a) { - TCGv zero =3D tcg_constant_tl(0); - check_r0_write(dc, a->d); - tcg_gen_movcond_tl(TCG_COND_NE, cpu_R(dc, a->d), cpu_sr_f, zero, + tcg_gen_movcond_tl(TCG_COND_NE, cpu_R(dc, a->d), cpu_sr_f, dc->zero, cpu_R(dc, a->a), cpu_R(dc, a->b)); return true; } @@ -630,9 +630,8 @@ static void do_bf(DisasContext *dc, arg_l_bf *a, TCGCon= d cond) target_ulong tmp_pc =3D dc->base.pc_next + a->n * 4; TCGv t_next =3D tcg_constant_tl(dc->base.pc_next + 8); TCGv t_true =3D tcg_constant_tl(tmp_pc); - TCGv t_zero =3D tcg_constant_tl(0); =20 - tcg_gen_movcond_tl(cond, jmp_pc, cpu_sr_f, t_zero, t_true, t_next); + tcg_gen_movcond_tl(cond, jmp_pc, cpu_sr_f, dc->zero, t_true, t_next); dc->delayed_branch =3D 2; } =20 @@ -1594,8 +1593,9 @@ static void openrisc_tr_tb_start(DisasContextBase *db= , CPUState *cs) =20 /* Allow the TCG optimizer to see that R0 =3D=3D 0, when it's true, which is the common case. */ + dc->zero =3D tcg_constant_tl(0); if (dc->tb_flags & TB_FLAGS_R0_0) { - dc->R0 =3D tcg_constant_tl(0); + dc->R0 =3D dc->zero; } else { dc->R0 =3D cpu_regs[0]; } --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626195072; cv=none; d=zohomail.com; s=zohoarc; b=koeWARGzNsS9SMTd3UVLFaPDxim2aYht01sE+8Co17477Ma7pkQ80FtwhSn0PUkvw23PLHogk/wCiDBMfctq/9sJnn7dmFlmnMQiefopJvAb3DPGrmX30bnszN0NQDNF8DEKIhgTF1Xf0j3HTCmoOMA5AUCqNL3j2ysOYyn3fW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626195072; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NgDcFwijqvI5Ustjzi412a6qyjRC0UcEnEWmUALegEQ=; b=PeJlxR9DkJYV9UM8saasfj/IUsq7qwTgPw1TMfM0AwQbBU8AxLOQfvhOz92axblzQcTkCp+xJiH9e0zRfbmtDmFJJtBeJtkivlr9cIRF0ejAnvsgWXb1TNwqD4Va+knKYosQCTOFtM2JrXQwqkNS7PMkVIzEI9AP2woxcaEqjNw= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626195072984185.83796929287553; Tue, 13 Jul 2021 09:51:12 -0700 (PDT) Received: from localhost ([::1]:50632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3Lcl-00081m-Vt for importer@patchew.org; Tue, 13 Jul 2021 12:51:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUG-0006wg-2p for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:24 -0400 Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]:44688) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUC-0005hS-Tc for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:23 -0400 Received: by mail-pf1-x434.google.com with SMTP id p36so10460874pfw.11 for ; Tue, 13 Jul 2021 09:42:20 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NgDcFwijqvI5Ustjzi412a6qyjRC0UcEnEWmUALegEQ=; b=UtAP+N0VLB7vjoOe328EuJCbOheLmI6MpvCMqEP+gcKTOvx73b5IfF4QEu3wHUigyS ZIaKo6yS9Fog5D8lYDorS24LyTAPY2/ZaHMrrPTijOkNQsHNs6wnMpE6dVOc4otgBV2z sqfYuweMLaN0tUBfMPoTTrDzNGlpUg97P2Fb8T3GYdTNMlrYiehIoO3KLtjCdbZUhRaz 34BKvYjkf/Iod4nA5xdq0TpmzGIMSjJiI2eUAm82j51TNVhRSG0OHrIHuHRahXSvvZSH kt6WYieVUjSbAgdCRY+D6+vf9eGzONbM1gMUopFEPxu88tDbJs7iJpUYU0t8vC6hh2UX jqmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NgDcFwijqvI5Ustjzi412a6qyjRC0UcEnEWmUALegEQ=; b=mFZwNxfCBErgWuOUJfQSXkE5oXvpmrYPHKYNPKM3YPB03ZfedLoxCXzzqji3W1yDAz DttxOv99bXzA9bGQkwmvUi4XukWlEGI0XqB+EJtx/HUJpjmyD8CgmtYXjLNYNMBpJdpU My7orBc3/cwb+ShNh1OAe2RVIXnouLxkk2fV1EjCp2f/TJurAEwJ6xYHN/9TfUxxstzc WqQfquno93e6UKop2nRofD+IWAdHACMJ6twpHojajmI/tuDmluL4jSnNDcEsrtqfpiCr YtJiCa8GFbA6urxCJXLF1r08+Xk7L2Pfg2t3k3mjOpqZFK0sqGrBBwdszHHwblQYIOGg Opmw== X-Gm-Message-State: AOAM5307u8T3Kw6FGflCE5PzqLvdw/alvOPQquScUGxjRtNGiG8n3Tc2 Tzqp7WphD2w35pUgRz+yAtd/Bx/lc4hijQ== X-Google-Smtp-Source: ABdhPJzd82qQeeHHsQgkglRTtUC/lLPyj9WiHWVQggP3frnMky32FK+c7HLLqyu0Rks37HAOXr3bnA== X-Received: by 2002:aa7:8683:0:b029:32e:2a35:941e with SMTP id d3-20020aa786830000b029032e2a35941emr3072513pfo.44.1626194539415; Tue, 13 Jul 2021 09:42:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 12/14] target/openrisc: Use dc->zero in gen_add, gen_addc Date: Tue, 13 Jul 2021 09:42:09 -0700 Message-Id: <20210713164211.1520109-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::434; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x434.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stafford Horne Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626195074389100001 Content-Type: text/plain; charset="utf-8" We still need the t0 temporary for computing overflow, but we do not need to initialize it to zero first. Reviewed-by: Stafford Horne Signed-off-by: Richard Henderson --- target/openrisc/translate.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index 6aba4c2ffc..059da48475 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -199,10 +199,10 @@ static void gen_ove_cyov(DisasContext *dc) =20 static void gen_add(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb) { - TCGv t0 =3D tcg_const_tl(0); + TCGv t0 =3D tcg_temp_new(); TCGv res =3D tcg_temp_new(); =20 - tcg_gen_add2_tl(res, cpu_sr_cy, srca, t0, srcb, t0); + tcg_gen_add2_tl(res, cpu_sr_cy, srca, dc->zero, srcb, dc->zero); tcg_gen_xor_tl(cpu_sr_ov, srca, srcb); tcg_gen_xor_tl(t0, res, srcb); tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov); @@ -216,11 +216,11 @@ static void gen_add(DisasContext *dc, TCGv dest, TCGv= srca, TCGv srcb) =20 static void gen_addc(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb) { - TCGv t0 =3D tcg_const_tl(0); + TCGv t0 =3D tcg_temp_new(); TCGv res =3D tcg_temp_new(); =20 - tcg_gen_add2_tl(res, cpu_sr_cy, srca, t0, cpu_sr_cy, t0); - tcg_gen_add2_tl(res, cpu_sr_cy, res, cpu_sr_cy, srcb, t0); + tcg_gen_add2_tl(res, cpu_sr_cy, srca, dc->zero, cpu_sr_cy, dc->zero); + tcg_gen_add2_tl(res, cpu_sr_cy, res, cpu_sr_cy, srcb, dc->zero); tcg_gen_xor_tl(cpu_sr_ov, srca, srcb); tcg_gen_xor_tl(t0, res, srcb); tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov); --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626195151; cv=none; d=zohomail.com; s=zohoarc; b=oGLycC6K0qNVkDPCZ5sP2YYM6y6zosQihuEhyICYuMRkU37EV0HZWA025eWn+84ZCGrC0YBNqIOJj9MbER4j2JIkgiEthBtOJgUI0XwXfzMEAZSPDzZ0RjqyMdT/7TP788utbp1TH+OvzxHJxUeWsWaEVDS86F3g5FY3GYN3xhY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626195151; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9g0TMe4PewTmlA7yR++xZQeLCjd2V186Zm/OTs48w30=; b=EhML1bQdbps5fQHy08q22zNa7XjI7R7PzqJ5DBodZLMhIJBeraj3Eg4QdS3ZcUPwna3oAvvoki5ue0ifTyUww8smo7e9T/F2VpWTdqc6xeT3ecMyXr0VYQLjrF8r64Xn76nOiJJhlXnNqI9fa0awHk7dJ6M7c+pbd5VZrW1dOEA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626195151484264.58991913487137; Tue, 13 Jul 2021 09:52:31 -0700 (PDT) Received: from localhost ([::1]:57272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3Le1-0004Hx-VA for importer@patchew.org; Tue, 13 Jul 2021 12:52:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUG-0006ww-Ng for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:24 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]:36672) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUD-0005hq-Vq for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:24 -0400 Received: by mail-pj1-x1034.google.com with SMTP id d9-20020a17090ae289b0290172f971883bso1810424pjz.1 for ; Tue, 13 Jul 2021 09:42:20 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9g0TMe4PewTmlA7yR++xZQeLCjd2V186Zm/OTs48w30=; b=oliKWXqE/Dzjycq08ACgvTKMlOud4n8Us9UDDv6EXyfCKPIy3A00GuVdTHO7LGqkaO 2wYLODvpwsGogSHB4R7qi9t4kDM1BcV8fegEtG09Z9RlClLiVG6OazaxGl0dVFg1B7IK qhhN4zxPjA+yGZkXg2OlZH6xuS6lDhUTiPN13pODmtsvdyPhm6jfu08foomxAZ/ybes9 0CwCRlDZa3bZDQR9YJXY1InW1gG9szPCrnrHg6mOJaziFe6G/2eU/phvPonkgqT7C6zs lRxUrI9mB4vr+FS5WoQAD08XzNceeP8ApKne6QokAkLj7tDRO15kqeqcLuIH24MPK3OP xq0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9g0TMe4PewTmlA7yR++xZQeLCjd2V186Zm/OTs48w30=; b=lTnpFE+O1DhF0pz4SK2KFZ/dHKPMXtdBR3tAML95eYNnu63tjBXQT4yxjJVBYtp782 0xN0LVOxc5lALyuJoDMl0YjJ0Su/6nxw+6hXJXPXaY/CVvd7uG2DSiwYrZVi35/C8UnA P74hCsBgugPBfLZB1zwLsxkY5tWnHaNFgffllWJqVhUcpMrYyUTZ1rUDOI3GNE4aoEuo RPNmyrBlVm1k9ZZs5DKzEkiXKhDEFu7GroIxVazSMxv6+R/guaWd0iZ4VlRuRgUQIGpx bUdNzHwcRg2G9rvtV/laeJXfUENEW2XQP3o0TDIJVoZXb7sAWRGhDvV6MiDaWnmIlx6E dpRA== X-Gm-Message-State: AOAM530jvvRfF0pmoRV7bmznsnB6Fjv1pxiWJOEGpZy0b+A/Q+yJ8BFh vn62SuFI0KbEA0SrCmEclrBHeFgMW6O/0Q== X-Google-Smtp-Source: ABdhPJzIiLn9svPoBleC9mF9N1KObFqhIDRnr+5umu8MHsVsmZk3WurUUGQYWB/FlLiJm/qreg7wEA== X-Received: by 2002:a17:902:fe87:b029:12a:ef40:57a2 with SMTP id x7-20020a170902fe87b029012aef4057a2mr4097836plm.81.1626194540011; Tue, 13 Jul 2021 09:42:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 13/14] target/hppa: Use tcg_constant_* Date: Tue, 13 Jul 2021 09:42:10 -0700 Message-Id: <20210713164211.1520109-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626195153328100001 Replace uses of tcg_const_* with the allocate and free close together. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/hppa/translate.c | 56 +++++++++++++---------------------------- 1 file changed, 18 insertions(+), 38 deletions(-) diff --git a/target/hppa/translate.c b/target/hppa/translate.c index 835120c038..fa668072d0 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -144,6 +144,7 @@ #define tcg_gen_sextract_reg tcg_gen_sextract_i64 #define tcg_const_reg tcg_const_i64 #define tcg_const_local_reg tcg_const_local_i64 +#define tcg_constant_reg tcg_constant_i64 #define tcg_gen_movcond_reg tcg_gen_movcond_i64 #define tcg_gen_add2_reg tcg_gen_add2_i64 #define tcg_gen_sub2_reg tcg_gen_sub2_i64 @@ -238,6 +239,7 @@ #define tcg_gen_sextract_reg tcg_gen_sextract_i32 #define tcg_const_reg tcg_const_i32 #define tcg_const_local_reg tcg_const_local_i32 +#define tcg_constant_reg tcg_constant_i32 #define tcg_gen_movcond_reg tcg_gen_movcond_i32 #define tcg_gen_add2_reg tcg_gen_add2_i32 #define tcg_gen_sub2_reg tcg_gen_sub2_i32 @@ -771,9 +773,7 @@ static inline target_ureg iaoq_dest(DisasContext *ctx, = target_sreg disp) =20 static void gen_excp_1(int exception) { - TCGv_i32 t =3D tcg_const_i32(exception); - gen_helper_excp(cpu_env, t); - tcg_temp_free_i32(t); + gen_helper_excp(cpu_env, tcg_constant_i32(exception)); } =20 static void gen_excp(DisasContext *ctx, int exception) @@ -787,12 +787,9 @@ static void gen_excp(DisasContext *ctx, int exception) =20 static bool gen_excp_iir(DisasContext *ctx, int exc) { - TCGv_reg tmp; - nullify_over(ctx); - tmp =3D tcg_const_reg(ctx->insn); - tcg_gen_st_reg(tmp, cpu_env, offsetof(CPUHPPAState, cr[CR_IIR])); - tcg_temp_free(tmp); + tcg_gen_st_reg(tcg_constant_reg(ctx->insn), + cpu_env, offsetof(CPUHPPAState, cr[CR_IIR])); gen_excp(ctx, exc); return nullify_end(ctx); } @@ -1150,13 +1147,12 @@ static void do_add(DisasContext *ctx, unsigned rt, = TCGv_reg in1, } =20 if (!is_l || cond_need_cb(c)) { - TCGv_reg zero =3D tcg_const_reg(0); + TCGv_reg zero =3D tcg_constant_reg(0); cb_msb =3D get_temp(ctx); tcg_gen_add2_reg(dest, cb_msb, in1, zero, in2, zero); if (is_c) { tcg_gen_add2_reg(dest, cb_msb, dest, cb_msb, cpu_psw_cb_msb, z= ero); } - tcg_temp_free(zero); if (!is_l) { cb =3D get_temp(ctx); tcg_gen_xor_reg(cb, in1, in2); @@ -1242,7 +1238,7 @@ static void do_sub(DisasContext *ctx, unsigned rt, TC= Gv_reg in1, cb =3D tcg_temp_new(); cb_msb =3D tcg_temp_new(); =20 - zero =3D tcg_const_reg(0); + zero =3D tcg_constant_reg(0); if (is_b) { /* DEST,C =3D IN1 + ~IN2 + C. */ tcg_gen_not_reg(cb, in2); @@ -1258,7 +1254,6 @@ static void do_sub(DisasContext *ctx, unsigned rt, TC= Gv_reg in1, tcg_gen_eqv_reg(cb, in1, in2); tcg_gen_xor_reg(cb, cb, dest); } - tcg_temp_free(zero); =20 /* Compute signed overflow if required. */ sv =3D NULL; @@ -2449,17 +2444,16 @@ static bool trans_probe(DisasContext *ctx, arg_prob= e *a) form_gva(ctx, &addr, &ofs, a->b, 0, 0, 0, a->sp, 0, false); =20 if (a->imm) { - level =3D tcg_const_i32(a->ri); + level =3D tcg_constant_i32(a->ri); } else { level =3D tcg_temp_new_i32(); tcg_gen_trunc_reg_i32(level, load_gpr(ctx, a->ri)); tcg_gen_andi_i32(level, level, 3); } - want =3D tcg_const_i32(a->write ? PAGE_WRITE : PAGE_READ); + want =3D tcg_constant_i32(a->write ? PAGE_WRITE : PAGE_READ); =20 gen_helper_probe(dest, cpu_env, addr, level, want); =20 - tcg_temp_free_i32(want); tcg_temp_free_i32(level); =20 save_gpr(ctx, a->t, dest); @@ -2599,17 +2593,13 @@ static bool trans_lpa(DisasContext *ctx, arg_ldst *= a) =20 static bool trans_lci(DisasContext *ctx, arg_lci *a) { - TCGv_reg ci; - CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR); =20 /* The Coherence Index is an implementation-defined function of the physical address. Two addresses with the same CI have a coherent view of the cache. Our implementation is to return 0 for all, since the entire address space is coherent. */ - ci =3D tcg_const_reg(0); - save_gpr(ctx, a->t, ci); - tcg_temp_free(ci); + save_gpr(ctx, a->t, tcg_constant_reg(0)); =20 cond_free(&ctx->null_cond); return true; @@ -2710,8 +2700,6 @@ static bool trans_or(DisasContext *ctx, arg_rrr_cf *a) * currently implemented as idle. */ if ((rt =3D=3D 10 || rt =3D=3D 31) && r1 =3D=3D rt && r2 =3D=3D rt= ) { /* PAUSE */ - TCGv_i32 tmp; - /* No need to check for supervisor, as userland can only pause until the next timer interrupt. */ nullify_over(ctx); @@ -2722,10 +2710,8 @@ static bool trans_or(DisasContext *ctx, arg_rrr_cf *= a) nullify_set(ctx, 0); =20 /* Tell the qemu main loop to halt until this cpu has work. */ - tmp =3D tcg_const_i32(1); - tcg_gen_st_i32(tmp, cpu_env, -offsetof(HPPACPU, env) + - offsetof(CPUState, halted)); - tcg_temp_free_i32(tmp); + tcg_gen_st_i32(tcg_constant_i32(1), cpu_env, + offsetof(CPUState, halted) - offsetof(HPPACPU, = env)); gen_excp_1(EXCP_HALTED); ctx->base.is_jmp =3D DISAS_NORETURN; =20 @@ -2833,7 +2819,7 @@ static bool trans_ds(DisasContext *ctx, arg_rrr_cf *a) add2 =3D tcg_temp_new(); addc =3D tcg_temp_new(); dest =3D tcg_temp_new(); - zero =3D tcg_const_reg(0); + zero =3D tcg_constant_reg(0); =20 /* Form R1 << 1 | PSW[CB]{8}. */ tcg_gen_add_reg(add1, in1, in1); @@ -2851,7 +2837,6 @@ static bool trans_ds(DisasContext *ctx, arg_rrr_cf *a) tcg_gen_add2_i32(dest, cpu_psw_cb_msb, dest, cpu_psw_cb_msb, addc, zer= o); =20 tcg_temp_free(addc); - tcg_temp_free(zero); =20 /* Write back the result register. */ save_gpr(ctx, a->t, dest); @@ -2967,9 +2952,8 @@ static bool trans_ldc(DisasContext *ctx, arg_ldst *a) */ gen_helper_ldc_check(addr); =20 - zero =3D tcg_const_reg(0); + zero =3D tcg_constant_reg(0); tcg_gen_atomic_xchg_reg(dest, addr, zero, ctx->mmu_idx, mop); - tcg_temp_free(zero); =20 if (a->m) { save_gpr(ctx, a->b, ofs); @@ -3882,15 +3866,13 @@ static bool trans_fcmp_f(DisasContext *ctx, arg_fcl= ass2 *a) =20 ta =3D load_frw0_i32(a->r1); tb =3D load_frw0_i32(a->r2); - ty =3D tcg_const_i32(a->y); - tc =3D tcg_const_i32(a->c); + ty =3D tcg_constant_i32(a->y); + tc =3D tcg_constant_i32(a->c); =20 gen_helper_fcmp_s(cpu_env, ta, tb, ty, tc); =20 tcg_temp_free_i32(ta); tcg_temp_free_i32(tb); - tcg_temp_free_i32(ty); - tcg_temp_free_i32(tc); =20 return nullify_end(ctx); } @@ -3904,15 +3886,13 @@ static bool trans_fcmp_d(DisasContext *ctx, arg_fcl= ass2 *a) =20 ta =3D load_frd0(a->r1); tb =3D load_frd0(a->r2); - ty =3D tcg_const_i32(a->y); - tc =3D tcg_const_i32(a->c); + ty =3D tcg_constant_i32(a->y); + tc =3D tcg_constant_i32(a->c); =20 gen_helper_fcmp_d(cpu_env, ta, tb, ty, tc); =20 tcg_temp_free_i64(ta); tcg_temp_free_i64(tb); - tcg_temp_free_i32(ty); - tcg_temp_free_i32(tc); =20 return nullify_end(ctx); } --=20 2.25.1 From nobody Mon Feb 9 19:56:56 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=1626194670; cv=none; d=zohomail.com; s=zohoarc; b=LDaCOUQV2uGnTCiPb6TjjqR+CfikNsAo3vaEUvzVRR5i+TqSld3dHL8uKo392xeqmSeC4+YKFYy65y7YkqTVdDcAuTcWDRCqx2qvD3QNLRF5GjhfQIxJDPdxfmyd2PkjTa3V8UanKFJFd7F7M3cuVXVUhobW1F3LlQNIb0MKm3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626194670; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XIRufaelCqcDThyPCfIwauMBr0gxGhP21bSIuzV5jtE=; b=UN1ELwuXnVinM15d0u3TH5GWtYCn3zue6rIfQwPjpInqgCnB96nkboo9jPBRAT33Mxr/I0C9mA6GT1E/QKG1jqqbs3WiYIjbm8RCQdjM1Q2kwTj1/nv/y6H84m9pJWXm/XUc3na9yWheYsJ+/S8FN6znxgWgonyJzZIlJq8qpow= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1626194670132890.8098154231448; Tue, 13 Jul 2021 09:44:30 -0700 (PDT) Received: from localhost ([::1]:59710 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3LWG-0003NO-Uv for importer@patchew.org; Tue, 13 Jul 2021 12:44:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3LUF-0006wT-VK for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:23 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:37839) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3LUE-0005hx-02 for qemu-devel@nongnu.org; Tue, 13 Jul 2021 12:42:23 -0400 Received: by mail-pg1-x52f.google.com with SMTP id t9so22131865pgn.4 for ; Tue, 13 Jul 2021 09:42:21 -0700 (PDT) Received: from localhost.localdomain ([71.212.149.176]) by smtp.gmail.com with ESMTPSA id z13sm4947865pfn.94.2021.07.13.09.42.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 09:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=XIRufaelCqcDThyPCfIwauMBr0gxGhP21bSIuzV5jtE=; b=qPtOMHs5JOoPf3+tW//LAfW5OSqNKknZLPrg8HFK6OMaMzyWqocB/9pwUARnrN5hK5 5wbPGOFpY1+LPUH3w6FtQVhKw7Pvk1d7tsupb6vVM1fzkF4TUaFfQyxG9rnuyUPjlFlj yjib1o1cyEgbVrQxwFNOWNnjfz1H3r0UXiPrsDBPHaeGdCzILiAy8Iij94jfAYkho3w1 /+w4PRcGDBVoWWLy94GhDgfd9ln6Gmnoh60zHAxfQMPoikL4r8nIBwq6chvuCEXd47cC kQjP9FrXq5bwbogyTUu4BY2UrjjSTM+K35vtGaTS0XCQc9UBq3qbz2Hr3POBFR3CL8VC +v6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XIRufaelCqcDThyPCfIwauMBr0gxGhP21bSIuzV5jtE=; b=MRZksn7OgF2/82zeHPMVDeY5AonAZRrovAtfXAKIrijfreDb6sRx96+s36MD9cqOtg N2sSJJ7vULo2cl/f7b353p40XMiLzBtmoDe1BENTN6wpL2KgrBt0G6FSVosXg1DVP8fn bUpKQTOfqUTaY6Km0ReXVdtfvMdgyHlK7Yyq2fvZvQ3217361tq4KKKNVjNmJ1oDIO/k gXVUO7aXCV86kx6FzOlNZTPkabZH5OhNqndBVeqPO9YRlc9WoSvq2ARNDNyhkhk+LTY9 lpE8Uiv6I6L1p3g+hoL4Cz+w8EZvePlSZrD4s/S1ngWzEJ6ijI1MTERxV7sLNzUWVz8z Oz3w== X-Gm-Message-State: AOAM5323XSo1MsCgzeae0puBWEvkwiTY2mKnd1+W9H4lnLp8ltjDEMzF mD+0Kog9w/r0x4NpwAodNJqVvZFL2u0hMg== X-Google-Smtp-Source: ABdhPJzvx7Fk922pWqnpHJd7bMhCVDOTc1b3Si0HzCBENH5GHm20hscrCnmpxmaD9Zg4Wce7ju9JuA== X-Received: by 2002:aa7:8602:0:b029:32d:3e9b:27de with SMTP id p2-20020aa786020000b029032d3e9b27demr5382822pfn.39.1626194540614; Tue, 13 Jul 2021 09:42:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 14/14] target/hppa: Clean up DisasCond Date: Tue, 13 Jul 2021 09:42:11 -0700 Message-Id: <20210713164211.1520109-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210713164211.1520109-1-richard.henderson@linaro.org> References: <20210713164211.1520109-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52f; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1626194671368100001 Content-Type: text/plain; charset="utf-8" The a0_is_n flag is redundant with comparing a0 to cpu_psw_n. The a1_is_0 flag can be removed by initializing a1 to $0, which also means that cond_prep can be removed entirely. Signed-off-by: Richard Henderson --- target/hppa/translate.c | 43 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/target/hppa/translate.c b/target/hppa/translate.c index fa668072d0..2552747138 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -252,8 +252,6 @@ typedef struct DisasCond { TCGCond c; TCGv_reg a0, a1; - bool a0_is_n; - bool a1_is_0; } DisasCond; =20 typedef struct DisasContext { @@ -448,9 +446,7 @@ static DisasCond cond_make_n(void) return (DisasCond){ .c =3D TCG_COND_NE, .a0 =3D cpu_psw_n, - .a0_is_n =3D true, - .a1 =3D NULL, - .a1_is_0 =3D true + .a1 =3D tcg_constant_reg(0) }; } =20 @@ -458,7 +454,7 @@ static DisasCond cond_make_0_tmp(TCGCond c, TCGv_reg a0) { assert (c !=3D TCG_COND_NEVER && c !=3D TCG_COND_ALWAYS); return (DisasCond){ - .c =3D c, .a0 =3D a0, .a1_is_0 =3D true + .c =3D c, .a0 =3D a0, .a1 =3D tcg_constant_reg(0) }; } =20 @@ -482,26 +478,14 @@ static DisasCond cond_make(TCGCond c, TCGv_reg a0, TC= Gv_reg a1) return r; } =20 -static void cond_prep(DisasCond *cond) -{ - if (cond->a1_is_0) { - cond->a1_is_0 =3D false; - cond->a1 =3D tcg_const_reg(0); - } -} - static void cond_free(DisasCond *cond) { switch (cond->c) { default: - if (!cond->a0_is_n) { + if (cond->a0 !=3D cpu_psw_n) { tcg_temp_free(cond->a0); } - if (!cond->a1_is_0) { - tcg_temp_free(cond->a1); - } - cond->a0_is_n =3D false; - cond->a1_is_0 =3D false; + tcg_temp_free(cond->a1); cond->a0 =3D NULL; cond->a1 =3D NULL; /* fallthru */ @@ -559,9 +543,8 @@ static TCGv_reg dest_gpr(DisasContext *ctx, unsigned re= g) static void save_or_nullify(DisasContext *ctx, TCGv_reg dest, TCGv_reg t) { if (ctx->null_cond.c !=3D TCG_COND_NEVER) { - cond_prep(&ctx->null_cond); tcg_gen_movcond_reg(ctx->null_cond.c, dest, ctx->null_cond.a0, - ctx->null_cond.a1, dest, t); + ctx->null_cond.a1, dest, t); } else { tcg_gen_mov_reg(dest, t); } @@ -668,11 +651,9 @@ static void nullify_over(DisasContext *ctx) assert(ctx->null_cond.c !=3D TCG_COND_ALWAYS); =20 ctx->null_lab =3D gen_new_label(); - cond_prep(&ctx->null_cond); =20 /* If we're using PSW[N], copy it to a temp because... */ - if (ctx->null_cond.a0_is_n) { - ctx->null_cond.a0_is_n =3D false; + if (ctx->null_cond.a0 =3D=3D cpu_psw_n) { ctx->null_cond.a0 =3D tcg_temp_new(); tcg_gen_mov_reg(ctx->null_cond.a0, cpu_psw_n); } @@ -685,7 +666,7 @@ static void nullify_over(DisasContext *ctx) } =20 tcg_gen_brcond_reg(ctx->null_cond.c, ctx->null_cond.a0, - ctx->null_cond.a1, ctx->null_lab); + ctx->null_cond.a1, ctx->null_lab); cond_free(&ctx->null_cond); } } @@ -699,10 +680,9 @@ static void nullify_save(DisasContext *ctx) } return; } - if (!ctx->null_cond.a0_is_n) { - cond_prep(&ctx->null_cond); + if (ctx->null_cond.a0 !=3D cpu_psw_n) { tcg_gen_setcond_reg(ctx->null_cond.c, cpu_psw_n, - ctx->null_cond.a0, ctx->null_cond.a1); + ctx->null_cond.a0, ctx->null_cond.a1); ctx->psw_n_nonzero =3D true; } cond_free(&ctx->null_cond); @@ -1178,7 +1158,6 @@ static void do_add(DisasContext *ctx, unsigned rt, TC= Gv_reg in1, /* Emit any conditional trap before any writeback. */ cond =3D do_cond(cf, dest, cb_msb, sv); if (is_tc) { - cond_prep(&cond); tmp =3D tcg_temp_new(); tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1); gen_helper_tcond(cpu_env, tmp); @@ -1273,7 +1252,6 @@ static void do_sub(DisasContext *ctx, unsigned rt, TC= Gv_reg in1, =20 /* Emit any conditional trap before any writeback. */ if (is_tc) { - cond_prep(&cond); tmp =3D tcg_temp_new(); tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1); gen_helper_tcond(cpu_env, tmp); @@ -1399,7 +1377,6 @@ static void do_unit(DisasContext *ctx, unsigned rt, T= CGv_reg in1, =20 if (is_tc) { TCGv_reg tmp =3D tcg_temp_new(); - cond_prep(&cond); tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1); gen_helper_tcond(cpu_env, tmp); tcg_temp_free(tmp); @@ -1855,7 +1832,6 @@ static bool do_cbranch(DisasContext *ctx, target_sreg= disp, bool is_n, } =20 taken =3D gen_new_label(); - cond_prep(cond); tcg_gen_brcond_reg(c, cond->a0, cond->a1, taken); cond_free(cond); =20 @@ -1952,7 +1928,6 @@ static bool do_ibranch(DisasContext *ctx, TCGv_reg de= st, tcg_gen_lookup_and_goto_ptr(); return nullify_end(ctx); } else { - cond_prep(&ctx->null_cond); c =3D ctx->null_cond.c; a0 =3D ctx->null_cond.a0; a1 =3D ctx->null_cond.a1; --=20 2.25.1