From nobody Thu May 2 19:54:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1599246586; cv=none; d=zohomail.com; s=zohoarc; b=SoYuSGdiy7BQLlm6yRhxdRJVa1f+D2dXkgAEwrxQuqjuG4scGSzry6iZAsWAa4su+tXUV+kxN9dEIlSs0G0QqEr6ECCpK4UqjMxws8mpXaTOvKmv+0VK5cyxay21D/Q+cMQpaf+TWCi0jruVfS+IP1++Nxs+gz3fkRfZ5gitrks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246586; 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=ZQFMYGAuXqpm90YweonU/9zyyJU/Tpvmv3t3sFnfv74=; b=UepH+WHZg44Kzsm7IDKb40tnpR42NPqnmcR6hdePkee6B4DajcFHRF9RHysBCILgtTzD9ldb7vQeoUu5QkxyHP6+fM0ZerEeYphhLlA7HgwqJ4u1P6JidvoHzZ8S+B5Bh8gm/zCPWYCMSAEhvedDVGoX654fnNkRtGPbZRm1PfQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246586376407.22950692019026; Fri, 4 Sep 2020 12:09:46 -0700 (PDT) Received: from localhost ([::1]:38160 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH5k-0002tc-W6 for importer@patchew.org; Fri, 04 Sep 2020 15:09:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4s-0001FW-5n for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:50 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:45588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4q-0000m7-BK for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:49 -0400 Received: by mail-pf1-x442.google.com with SMTP id k15so5097014pfc.12 for ; Fri, 04 Sep 2020 12:08:47 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:45 -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=ZQFMYGAuXqpm90YweonU/9zyyJU/Tpvmv3t3sFnfv74=; b=jim0d5Sa8SYL2wChZ3LXLEAIbRin5s0LbsilyYYtoydpDshPTNYMbBvzCg3l7Ql0qq ttnpKUuTe2xiI2QNo8veE8CprCxGeV9yhrUU5CW0p/U1qqx30tJHX7wZiRpFnTgJxydH lh3e/7OUUZMkgA9/5lebu9q49vREjccd0W943kUu9dcyNOYYkLTTrv6AyLsRDwp74jMs Im6csPDqy6lkGDDsmBl4vIojHpXKkBlP6QXw5JvKNEE2UpEAgkSwEvQ1jx2cvOpoBYpp 0cfK3oqVPI2t4u+xQE/woKovuPr7B4OGNa/3iIKl2IBa8xCasBQrLllG2ZM69tzVVqjw 9nrg== 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=ZQFMYGAuXqpm90YweonU/9zyyJU/Tpvmv3t3sFnfv74=; b=bKoMpRSEn4RWWvybKvl6OGL8vfIGIShPefTNpQ+WBeJCRHqWk2ULHW2SJ7N7KTrlsK rK6GJ334ccmFdNSySEiOidJkX1mjIkvcPNpUVY0NY16ohAbvtWR2vPwV78gescd8KQQe pwxJ7NdcjHQfJTUwKGCy7hjTZ2VId5fnW5Q5hk8ebA3VPM5Y1VS6TIPgN/niSDQSk968 Pn52+SqwTUPPUGbojtirHSz8ye7XEQ6w2tQ62l/LUfgMH3QBqaXQO0iCfXsg3nLghvKH Ao3mP4dXyZpXL1asNlaKiRqBNU85WAi/t7eBA01OKIZUV0rr53bbSuro/nArZmei8wnj WErQ== X-Gm-Message-State: AOAM531KY3Pr5mkJvQO+QzBCD7GKYYBgUHSz1wvSh/3uINMHbW+O7fyD lGWLsIUh7NtU4ruqAIzKVXVITi1B6/P1uQ== X-Google-Smtp-Source: ABdhPJz+pisa30GPo3+KfOF4OU19MazVlyd02c6DykYyvHhytGcb5kVzgips+jQyah+DVS5p8Ghd1Q== X-Received: by 2002:aa7:8e85:: with SMTP id a5mr9570900pfr.96.1599246526259; Fri, 04 Sep 2020 12:08:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 01/19] target/microblaze: Collected fixes for env->iflags Date: Fri, 4 Sep 2020 12:08:24 -0700 Message-Id: <20200904190842.2282109-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::442; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, Thomas Huth , f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There are several problems here that can result in soft lockup, depending on exactly where an interrupt or exception is delivered: Include BIMM_FLAG in IFLAGS_TB_MASK, since it needs to follow D_FLAG. Ensure that iflags is 0 when entering an interrupt/exception handler. Add mb_cpu_synchronize_from_tb to restore iflags from tb->flags. The change to t_sync_flags is cosmetic, but makes the code clearer. This fixes the reported regression in acceptance/replay_kernel.py. Fixes: 683a247ed7a4 ("target/microblaze: Store "current" iflags in insn_sta= rt") Tested-by: Thomas Huth Reported-by: Thomas Huth Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 3 ++- target/microblaze/cpu.c | 11 +++++++++++ target/microblaze/helper.c | 17 +++++++++++------ target/microblaze/translate.c | 4 ++-- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index d11b6fa995..a25a2b427f 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -270,7 +270,8 @@ struct CPUMBState { #define D_FLAG (1 << 19) /* Bit in ESR. */ =20 /* TB dependent CPUMBState. */ -#define IFLAGS_TB_MASK (D_FLAG | IMM_FLAG | DRTI_FLAG | DRTE_FLAG | DRTB_= FLAG) +#define IFLAGS_TB_MASK (D_FLAG | BIMM_FLAG | IMM_FLAG | \ + DRTI_FLAG | DRTE_FLAG | DRTB_FLAG) #define MSR_TB_MASK (MSR_UM | MSR_VM | MSR_EE) =20 uint32_t iflags; diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 67017ecc33..6392524135 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -80,6 +80,16 @@ static void mb_cpu_set_pc(CPUState *cs, vaddr value) MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); =20 cpu->env.pc =3D value; + /* Ensure D_FLAG and IMM_FLAG are clear for the new PC */ + cpu->env.iflags =3D 0; +} + +static void mb_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb) +{ + MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); + + cpu->env.pc =3D tb->pc; + cpu->env.iflags =3D tb->flags & IFLAGS_TB_MASK; } =20 static bool mb_cpu_has_work(CPUState *cs) @@ -321,6 +331,7 @@ static void mb_cpu_class_init(ObjectClass *oc, void *da= ta) cc->cpu_exec_interrupt =3D mb_cpu_exec_interrupt; cc->dump_state =3D mb_cpu_dump_state; cc->set_pc =3D mb_cpu_set_pc; + cc->synchronize_from_tb =3D mb_cpu_synchronize_from_tb; cc->gdb_read_register =3D mb_cpu_gdb_read_register; cc->gdb_write_register =3D mb_cpu_gdb_write_register; cc->tlb_fill =3D mb_cpu_tlb_fill; diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c index 48547385b0..00090526da 100644 --- a/target/microblaze/helper.c +++ b/target/microblaze/helper.c @@ -113,7 +113,10 @@ void mb_cpu_do_interrupt(CPUState *cs) uint32_t t, msr =3D mb_cpu_read_msr(env); =20 /* IMM flag cannot propagate across a branch and into the dslot. */ - assert(!((env->iflags & D_FLAG) && (env->iflags & IMM_FLAG))); + assert((env->iflags & (D_FLAG | IMM_FLAG)) !=3D (D_FLAG | IMM_FLAG)); + /* BIMM flag cannot be set without D_FLAG. */ + assert((env->iflags & (D_FLAG | BIMM_FLAG)) !=3D BIMM_FLAG); + /* RTI flags are private to translate. */ assert(!(env->iflags & (DRTI_FLAG | DRTE_FLAG | DRTB_FLAG))); env->res_addr =3D RES_ADDR_NONE; switch (cs->exception_index) { @@ -146,7 +149,7 @@ void mb_cpu_do_interrupt(CPUState *cs) env->pc, env->ear, env->esr, env->iflags); log_cpu_state_mask(CPU_LOG_INT, cs, 0); - env->iflags &=3D ~(IMM_FLAG | D_FLAG); + env->iflags =3D 0; env->pc =3D cpu->cfg.base_vectors + 0x20; break; =20 @@ -186,14 +189,14 @@ void mb_cpu_do_interrupt(CPUState *cs) "exception at pc=3D%x ear=3D%" PRIx64 " iflags= =3D%x\n", env->pc, env->ear, env->iflags); log_cpu_state_mask(CPU_LOG_INT, cs, 0); - env->iflags &=3D ~(IMM_FLAG | D_FLAG); + env->iflags =3D 0; env->pc =3D cpu->cfg.base_vectors + 0x20; break; =20 case EXCP_IRQ: assert(!(msr & (MSR_EIP | MSR_BIP))); assert(msr & MSR_IE); - assert(!(env->iflags & D_FLAG)); + assert(!(env->iflags & (D_FLAG | IMM_FLAG))); =20 t =3D (msr & (MSR_VM | MSR_UM)) << 1; =20 @@ -226,13 +229,14 @@ void mb_cpu_do_interrupt(CPUState *cs) mb_cpu_write_msr(env, msr); =20 env->regs[14] =3D env->pc; + env->iflags =3D 0; env->pc =3D cpu->cfg.base_vectors + 0x10; //log_cpu_state_mask(CPU_LOG_INT, cs, 0); break; =20 case EXCP_HW_BREAK: - assert(!(env->iflags & IMM_FLAG)); - assert(!(env->iflags & D_FLAG)); + assert(!(env->iflags & (D_FLAG | IMM_FLAG))); + t =3D (msr & (MSR_VM | MSR_UM)) << 1; qemu_log_mask(CPU_LOG_INT, "break at pc=3D%x msr=3D%x %x iflags=3D%x\n", @@ -242,6 +246,7 @@ void mb_cpu_do_interrupt(CPUState *cs) msr |=3D t; msr |=3D MSR_BIP; env->regs[16] =3D env->pc; + env->iflags =3D 0; env->pc =3D cpu->cfg.base_vectors + 0x18; mb_cpu_write_msr(env, msr); break; diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index a377818b5e..a8a3249185 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -91,8 +91,8 @@ static int typeb_imm(DisasContext *dc, int x) static void t_sync_flags(DisasContext *dc) { /* Synch the tb dependent flags between translator and runtime. */ - if ((dc->tb_flags ^ dc->base.tb->flags) & ~MSR_TB_MASK) { - tcg_gen_movi_i32(cpu_iflags, dc->tb_flags & ~MSR_TB_MASK); + if ((dc->tb_flags ^ dc->base.tb->flags) & IFLAGS_TB_MASK) { + tcg_gen_movi_i32(cpu_iflags, dc->tb_flags & IFLAGS_TB_MASK); } } =20 --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246589; cv=none; d=zohomail.com; s=zohoarc; b=P6jDRPAcOl0JGbGXINafR6tTQeU97Irt4G3MRHpErMkiHvW5UZWOREjM+AIejj9mQdSsYELm2nPe66rurjK3gi8+oPixpPmAnnpLi8YmprzaQKI9H8ash3w6eWdVeuBS0v15sOuGM6x9bRaZj7MhLuJ3D3aiSAt11o0KWM31B6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246589; 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=4W7RubWumEglnK/FyOQH6KhBEYuwqvp7XgB4+69Mg6k=; b=JBpAprs8nUnDHyH3RikHGol+SC+PYDfDEGdyXDAR8aJCtr7cVT3mETK1d4pVxGPPSBOj5Ev3Nu+xGOzOjqWKQJCR/CS0ITRc7+sGyk+DGNb/L0WMJb6odISyjtL1M5aIbrkZ/UorzTEcLbphgYLFXVOxPYFtUV7jTe8BGPRIxwY= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246589663757.4050306624985; Fri, 4 Sep 2020 12:09:49 -0700 (PDT) Received: from localhost ([::1]:38534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH5o-00032a-1D for importer@patchew.org; Fri, 04 Sep 2020 15:09:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4s-0001Fc-P5 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:50 -0400 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:33529) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4r-0000mC-8q for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:50 -0400 Received: by mail-pg1-x543.google.com with SMTP id e33so4818531pgm.0 for ; Fri, 04 Sep 2020 12:08:48 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4W7RubWumEglnK/FyOQH6KhBEYuwqvp7XgB4+69Mg6k=; b=nH1TnFnRmb2g643btEP9rwCYaPiYJeLQhm287dc5OZ2CRF2vf7oF9FZyNidh1Z7zhC Jz2RY6/jQbvUe++Tmf9ujGjsEMjyVdiQmfGmHGpzZqw5LlEbJrUMwXkE7g8LS7qpNChh xeVqzjKoXoVFWpnWgh3/K5VmIaDzA6rbTiNHFq2PKnoakvjeY+pdRdSNmIuKA6vJfWgl 0euzJXO1nYxPMMJHfuizXNR3dSjJ3Nbtx25DrQ44yFpUUiEXsnHFs1LixHq5eyGIbnky Yd6y5EUgcJw55ocq8MKXYGQhCQiOPVZH8nUZpV1bEVkdq/mDIxKjDIuLe2KLK6msEomk H1qQ== 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=4W7RubWumEglnK/FyOQH6KhBEYuwqvp7XgB4+69Mg6k=; b=lDP+vapscFrppsKCuwZiBkK56z8BeyeDARwizrL9qD9nrWXtr+gzSWTsPNk1L3UIuN otEiE7mfXDDPZN9LJdrmicTFAdcRdWiwZ1XUlocvw2kljWaoMnBR9r69VjG1hvvxnpSn nVX8UVEM/GJxrohD2gVmwCMKu6NfQ9HLAQsgNaLoP+OFXPPcnNWdU6A1rlcCTUpIcuV9 +lhLcBETt/MSoYaHREg/9R3dYrk7iyZLxZMj5vwnhfkZjRYBMIMN02Vzd5PRWowYCzCR +c+65GVI9cW9bemoLQeANjWcNwhS+DkiGCOWjuSXmOoKq+oeFmCEB/pQgJEUjUegjbhV AYSg== X-Gm-Message-State: AOAM533i/A8WhMewzxaYsioPC8QLHm1T5KQiTVVHJBNR2LsHgf097MX8 l+nu48UkL0dNTMDkMHY27ZO+S76U6KobOA== X-Google-Smtp-Source: ABdhPJxKimJQcuXFL76R0eLPuVHAO/KEq4gz5or8x72mv9q0UTcprgsbIdXm2LEteB8P5lPGUckOkw== X-Received: by 2002:a62:7c82:0:b029:13c:1611:6532 with SMTP id x124-20020a627c820000b029013c16116532mr8391529pfc.4.1599246527584; Fri, 04 Sep 2020 12:08:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 02/19] target/microblaze: Renumber D_FLAG Date: Fri, 4 Sep 2020 12:08:25 -0700 Message-Id: <20200904190842.2282109-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::543; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x543.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" ESS[DS] is bit 19 in the manual, but the manual uses big-endian bit numbering. This corresponds to bit 12 in little-endian numbering. Let the comment about matching the ESR be true by renumbering it. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index a25a2b427f..32811f773d 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -264,10 +264,10 @@ struct CPUMBState { /* MSR_UM (1 << 11) */ /* MSR_VM (1 << 13) */ /* ESR_ESS_MASK [11:5] -- unwind into iflags for unaligned excp= */ +#define D_FLAG (1 << 12) /* Bit in ESR. */ #define DRTI_FLAG (1 << 16) #define DRTE_FLAG (1 << 17) #define DRTB_FLAG (1 << 18) -#define D_FLAG (1 << 19) /* Bit in ESR. */ =20 /* TB dependent CPUMBState. */ #define IFLAGS_TB_MASK (D_FLAG | BIMM_FLAG | IMM_FLAG | \ --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246589; cv=none; d=zohomail.com; s=zohoarc; b=OSJvDOoeoGnYFD5zTctWoGtIypdOy8VvB80PQ2BYMVYcDE9WzgUZoeXcSRJV6hl3ZOmUxuhls9OxraNt1TUnkk3kVEjr1BWj1LH9YZyiGXEa9D4woIgjqsfU2sZseHUx2MnhX3mdxGOwSd602PXLJ6CN+LFHkLXdEk7BCHx15Sc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246589; 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=dcLJ8DgGDTL1maWyR1pbuCeF33EfSNqcckI9fDw+wKw=; b=O6maUq27b4gqDMega+MMM7oXVMXWVgdy09yEEw0Qcp7F41BmqHNNbSWhKgHy3eSlnO/RGve4aKE2LyjRif7ET2mfYHe/CwwEYnGSeyAN2XD1BunqGkCqIWrcMZACQzwhkq89Ghr3i0WrbrxpM+nXaTSlJsmGKxDVYRUtJTNkV4k= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246589034339.14596535161684; Fri, 4 Sep 2020 12:09:49 -0700 (PDT) Received: from localhost ([::1]:38450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH5n-00030i-J9 for importer@patchew.org; Fri, 04 Sep 2020 15:09:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4u-0001HL-JR for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:52 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:33788) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4s-0000mL-Ke for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:52 -0400 Received: by mail-pf1-x435.google.com with SMTP id u20so5144801pfn.0 for ; Fri, 04 Sep 2020 12:08:50 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:48 -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=dcLJ8DgGDTL1maWyR1pbuCeF33EfSNqcckI9fDw+wKw=; b=hN3QhRwzMQCRkmE3EUVAJpZVLpeg5XxPCA3ipaknAt8KK8ShbXrGNxSkeAZWtEf00u nqp2ohVjy0fJItBZN93ScrQzOu/P+gee3ZRz0BRkOzdMYYFo3c3I5d+zyMwTo97vCwv4 fMmhBraKYx+lTD+isWJK9MG/8v/2LlIeZ+lfx8bqRDkGIbsvQtK99jqvKPzLhl55MQSq 2dEGW98DV630Nacsch8xqYKwFiGmkTsJ46W6L/SPXD3poJRxf7njmuQ3cGzYCOyNSuBz wIh0NIz/ZAtyyb8o9VS2M/l1jeQFaevWaqIHoJAZBGl6hgmKd+pleaWSIMXw0YZMiUcH z6FQ== 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=dcLJ8DgGDTL1maWyR1pbuCeF33EfSNqcckI9fDw+wKw=; b=ToAlKEK2rlC8LSGcqNFfXZyfO5E9AIt+6dKfS/Hmc2EOucQawbGiojpgt9ly4Y1m9n RpK4kHLYVhv+ImI/PzG60PG7kFYfVwlGRoQBtYvH+0f2wgWV8hP2F68FN18z5uLQBisJ Uc3BQuABH9mOak8mOdyce1/l3LM4vNMXjNKNf/h6RlvK2QYiMuD0uR8cjUDeUPBNdfa+ A1rxrPZQJYP15Vh225mgC1adETr9DR6Iptg3fZhkCbgQPEETLAdyPTJ+E0E1snlZg8mq cIKZNf+594Lq1qg0Wb+RRUmbl3G41dvnhf7hGMBauL+qpK/BYkFuF8mPrFGSWjXFs9QW hXmg== X-Gm-Message-State: AOAM533EWH8umYLBB3DmLdBzkjFn/+Zx0OE2UhZN2zVaa2B9cjIcMAxg DspUSY4tAkBPXPYL4uEYgMa61qqwqwX0dA== X-Google-Smtp-Source: ABdhPJxGZmAWT1kHhkOKYKZ0aJvYobyf2dgd0Hpsw9nRS2jxcmhqZhQ0V3ZodAXLUxcCuCYUSdrfzg== X-Received: by 2002:a62:1d43:: with SMTP id d64mr877496pfd.76.1599246528759; Fri, 04 Sep 2020 12:08:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 03/19] target/microblaze: Cleanup mb_cpu_do_interrupt Date: Fri, 4 Sep 2020 12:08:26 -0700 Message-Id: <20200904190842.2282109-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Reindent; remove dead/commented code. Use D_FLAG to set ESS[DS]. Sink MSR adjustment for kernel entry, iflags and res_addr clear. Improve CPU_LOG_INT formatting; report pc and msr before and after. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- target/microblaze/helper.c | 209 ++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 118 deletions(-) diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c index 00090526da..27a24bb99a 100644 --- a/target/microblaze/helper.c +++ b/target/microblaze/helper.c @@ -111,6 +111,7 @@ void mb_cpu_do_interrupt(CPUState *cs) MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); CPUMBState *env =3D &cpu->env; uint32_t t, msr =3D mb_cpu_read_msr(env); + bool set_esr; =20 /* IMM flag cannot propagate across a branch and into the dslot. */ assert((env->iflags & (D_FLAG | IMM_FLAG)) !=3D (D_FLAG | IMM_FLAG)); @@ -118,142 +119,114 @@ void mb_cpu_do_interrupt(CPUState *cs) assert((env->iflags & (D_FLAG | BIMM_FLAG)) !=3D BIMM_FLAG); /* RTI flags are private to translate. */ assert(!(env->iflags & (DRTI_FLAG | DRTE_FLAG | DRTB_FLAG))); - env->res_addr =3D RES_ADDR_NONE; + switch (cs->exception_index) { - case EXCP_HW_EXCP: - if (!(env->pvr.regs[0] & PVR0_USE_EXC_MASK)) { - qemu_log_mask(LOG_GUEST_ERROR, "Exception raised on system= without exceptions!\n"); - return; - } + case EXCP_HW_EXCP: + if (!(env->pvr.regs[0] & PVR0_USE_EXC_MASK)) { + qemu_log_mask(LOG_GUEST_ERROR, + "Exception raised on system without exceptions!\= n"); + return; + } =20 - env->regs[17] =3D env->pc + 4; - env->esr &=3D ~(1 << 12); + qemu_log_mask(CPU_LOG_INT, + "INT: HWE at pc=3D%08x msr=3D%08x iflags=3D%x\n", + env->pc, msr, env->iflags); =20 - /* Exception breaks branch + dslot sequence? */ - if (env->iflags & D_FLAG) { - env->esr |=3D 1 << 12 ; - env->btr =3D env->btarget; - } + /* Exception breaks branch + dslot sequence? */ + set_esr =3D true; + env->esr &=3D ~D_FLAG; + if (env->iflags & D_FLAG) { + env->esr |=3D D_FLAG; + env->btr =3D env->btarget; + } =20 - /* Disable the MMU. */ - t =3D (msr & (MSR_VM | MSR_UM)) << 1; - msr &=3D ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM); - msr |=3D t; - /* Exception in progress. */ - msr |=3D MSR_EIP; - mb_cpu_write_msr(env, msr); + /* Exception in progress. */ + msr |=3D MSR_EIP; + env->regs[17] =3D env->pc + 4; + env->pc =3D cpu->cfg.base_vectors + 0x20; + break; =20 - qemu_log_mask(CPU_LOG_INT, - "hw exception at pc=3D%x ear=3D%" PRIx64 " " - "esr=3D%x iflags=3D%x\n", - env->pc, env->ear, - env->esr, env->iflags); - log_cpu_state_mask(CPU_LOG_INT, cs, 0); - env->iflags =3D 0; - env->pc =3D cpu->cfg.base_vectors + 0x20; - break; + case EXCP_MMU: + qemu_log_mask(CPU_LOG_INT, + "INT: MMU at pc=3D%08x msr=3D%08x " + "ear=3D%" PRIx64 " iflags=3D%x\n", + env->pc, msr, env->ear, env->iflags); =20 - case EXCP_MMU: + /* Exception breaks branch + dslot sequence? */ + set_esr =3D true; + env->esr &=3D ~D_FLAG; + if (env->iflags & D_FLAG) { + env->esr |=3D D_FLAG; + env->btr =3D env->btarget; + /* Reexecute the branch. */ + env->regs[17] =3D env->pc - (env->iflags & BIMM_FLAG ? 8 : 4); + } else if (env->iflags & IMM_FLAG) { + /* Reexecute the imm. */ + env->regs[17] =3D env->pc - 4; + } else { env->regs[17] =3D env->pc; + } =20 - qemu_log_mask(CPU_LOG_INT, - "MMU exception at pc=3D%x iflags=3D%x ear=3D%" P= RIx64 "\n", - env->pc, env->iflags, env->ear); + /* Exception in progress. */ + msr |=3D MSR_EIP; + env->pc =3D cpu->cfg.base_vectors + 0x20; + break; =20 - env->esr &=3D ~(1 << 12); - /* Exception breaks branch + dslot sequence? */ - if (env->iflags & D_FLAG) { - env->esr |=3D 1 << 12 ; - env->btr =3D env->btarget; + case EXCP_IRQ: + assert(!(msr & (MSR_EIP | MSR_BIP))); + assert(msr & MSR_IE); + assert(!(env->iflags & (D_FLAG | IMM_FLAG))); =20 - /* Reexecute the branch. */ - env->regs[17] -=3D 4; - /* was the branch immprefixed?. */ - if (env->iflags & BIMM_FLAG) { - env->regs[17] -=3D 4; - log_cpu_state_mask(CPU_LOG_INT, cs, 0); - } - } else if (env->iflags & IMM_FLAG) { - env->regs[17] -=3D 4; - } + qemu_log_mask(CPU_LOG_INT, + "INT: DEV at pc=3D%08x msr=3D%08x iflags=3D%x\n", + env->pc, msr, env->iflags); + set_esr =3D false; =20 - /* Disable the MMU. */ - t =3D (msr & (MSR_VM | MSR_UM)) << 1; - msr &=3D ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM); - msr |=3D t; - /* Exception in progress. */ - msr |=3D MSR_EIP; - mb_cpu_write_msr(env, msr); + /* Disable interrupts. */ + msr &=3D ~MSR_IE; + env->regs[14] =3D env->pc; + env->pc =3D cpu->cfg.base_vectors + 0x10; + break; =20 - qemu_log_mask(CPU_LOG_INT, - "exception at pc=3D%x ear=3D%" PRIx64 " iflags= =3D%x\n", - env->pc, env->ear, env->iflags); - log_cpu_state_mask(CPU_LOG_INT, cs, 0); - env->iflags =3D 0; - env->pc =3D cpu->cfg.base_vectors + 0x20; - break; + case EXCP_HW_BREAK: + assert(!(env->iflags & (D_FLAG | IMM_FLAG))); =20 - case EXCP_IRQ: - assert(!(msr & (MSR_EIP | MSR_BIP))); - assert(msr & MSR_IE); - assert(!(env->iflags & (D_FLAG | IMM_FLAG))); + qemu_log_mask(CPU_LOG_INT, + "INT: BRK at pc=3D%08x msr=3D%08x iflags=3D%x\n", + env->pc, msr, env->iflags); + set_esr =3D false; =20 - t =3D (msr & (MSR_VM | MSR_UM)) << 1; + /* Break in progress. */ + msr |=3D MSR_BIP; + env->regs[16] =3D env->pc; + env->pc =3D cpu->cfg.base_vectors + 0x18; + break; =20 -#if 0 -#include "disas/disas.h" + default: + cpu_abort(cs, "unhandled exception type=3D%d\n", cs->exception_ind= ex); + /* not reached */ + } =20 -/* Useful instrumentation when debugging interrupt issues in either - the models or in sw. */ - { - const char *sym; + /* Save previous mode, disable mmu, disable user-mode. */ + t =3D (msr & (MSR_VM | MSR_UM)) << 1; + msr &=3D ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM); + msr |=3D t; + mb_cpu_write_msr(env, msr); =20 - sym =3D lookup_symbol(env->pc); - if (sym - && (!strcmp("netif_rx", sym) - || !strcmp("process_backlog", sym))) { + env->res_addr =3D RES_ADDR_NONE; + env->iflags =3D 0; =20 - qemu_log("interrupt at pc=3D%x msr=3D%x %x iflags=3D%x= sym=3D%s\n", - env->pc, msr, t, env->iflags, sym); - - log_cpu_state(cs, 0); - } - } -#endif - qemu_log_mask(CPU_LOG_INT, - "interrupt at pc=3D%x msr=3D%x %x iflags=3D%x\n", - env->pc, msr, t, env->iflags); - - msr &=3D ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM | MSR_IE); - msr |=3D t; - mb_cpu_write_msr(env, msr); - - env->regs[14] =3D env->pc; - env->iflags =3D 0; - env->pc =3D cpu->cfg.base_vectors + 0x10; - //log_cpu_state_mask(CPU_LOG_INT, cs, 0); - break; - - case EXCP_HW_BREAK: - assert(!(env->iflags & (D_FLAG | IMM_FLAG))); - - t =3D (msr & (MSR_VM | MSR_UM)) << 1; - qemu_log_mask(CPU_LOG_INT, - "break at pc=3D%x msr=3D%x %x iflags=3D%x\n", - env->pc, msr, t, env->iflags); - log_cpu_state_mask(CPU_LOG_INT, cs, 0); - msr &=3D ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM); - msr |=3D t; - msr |=3D MSR_BIP; - env->regs[16] =3D env->pc; - env->iflags =3D 0; - env->pc =3D cpu->cfg.base_vectors + 0x18; - mb_cpu_write_msr(env, msr); - break; - default: - cpu_abort(cs, "unhandled exception type=3D%d\n", - cs->exception_index); - break; + if (!set_esr) { + qemu_log_mask(CPU_LOG_INT, + " to pc=3D%08x msr=3D%08x\n", env->pc, msr); + } else if (env->esr & D_FLAG) { + qemu_log_mask(CPU_LOG_INT, + " to pc=3D%08x msr=3D%08x esr=3D%04x btr=3D%= 08x\n", + env->pc, msr, env->esr, env->btr); + } else { + qemu_log_mask(CPU_LOG_INT, + " to pc=3D%08x msr=3D%08x esr=3D%04x\n", + env->pc, msr, env->esr); } } =20 --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246734; cv=none; d=zohomail.com; s=zohoarc; b=F7ct/fP4KHToTz6Le9hDMR5FmcHvonn3h5nFPyAL+3kOXNXk6B5esap61f9+32WYUeghDFoJW7++zyCZFznjpZv6AWzxqQMB1SHpgGrOL2xrHEX371TZRhTnHsffoac75L83WIHG9dzjInO0wUE0kps5YwXyFn0DrZL9TYSH+RA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246734; 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=pQLFSNBwse1S0ZFhx1luL29ASl3tpDoWjIQpSs5jL3c=; b=cfCOdsTHWpyW78i+guSqqnqHWOZmFdWa4PQKm3THiF1BU5Ih1qbGk0JSeQ/++U2wvXq7fnlSJ3NvkCES1vAfBHsl/BvuBKzjClTOgeKQjpWzqvMiRu9jkREoFlzl2C8DRS9bL0Uv8MmLvk6LOFmZ2/nuTSRPqZ8UFU+k/IvZ5lA= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246734638385.74593701647416; Fri, 4 Sep 2020 12:12:14 -0700 (PDT) Received: from localhost ([::1]:46946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH89-0006Un-8a for importer@patchew.org; Fri, 04 Sep 2020 15:12:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41574) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4w-0001KD-49 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:54 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:38860) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4t-0000mZ-Vp for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:53 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d22so5118485pfn.5 for ; Fri, 04 Sep 2020 12:08:51 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:49 -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=pQLFSNBwse1S0ZFhx1luL29ASl3tpDoWjIQpSs5jL3c=; b=Aw/A0G7pdf4YniAcrRI8iobI8PHXFw9OHRQCO4YBKmLjCiGYC/Sl5RuYf+J9E63hiK 02+es9Winyuo87hUVoEHVWUxYCNv83pENaqPCkgLz9GcDV7hJlHK8o82UNndiVTIzxHQ ODCV/XTh+6qMS5zKLWJeGN5xaeh3zpwTFfPLTAp7tRZZZ0HC3Gpg18HmeZh2sfOFWutM bymep+eb4LHSywm122nvvFrYNjDyEgBvPXrgbOXnu4+2hMQCCydt7v1YJQM5PZTz9YqM VynLm6UW4CWyeAQtG8BARFCoFQboCkfuzjEHa2Szugq6grnqYfWMN10kn3PE76FYyvWo OeuQ== 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=pQLFSNBwse1S0ZFhx1luL29ASl3tpDoWjIQpSs5jL3c=; b=Js0eglVUZxbRyR6N3DBfM7n1X/qptSWw7khYY4/iMKHiU6R5GeOr8jihkFO9XX/ItC Ab5pEfZhPWSpR64CsmOODIUY2Hfrc646SLvOaB2hWgOngdIIBwoOlGIPwGlL32nNwA+d Jae4lUoX1jFmffyjLUO2tg2GDhwHhEUG1MGE9Gz9UjnKTin3mYJeRl8z97P1aru/Nz0G xXtn5Z71vF+9m2YEUVcb3OUmClvB4EUTpIpKNRAoOBJiAqcWt8dG2FPplcn231CxRPXZ MTo1xegNUUpeC1hArt7b20DfDvSZOqK1w/tcOCyU0LLqLWeGsDvJUTa1+c6ubrrvAfe8 +MYA== X-Gm-Message-State: AOAM5332iRaamWpwrCqwmyf+LFbusMarz+CCxLQhWOufXAiwZfjXMzfV SWEfygfRH5Ib+I1q4jOTOi7AJxsbs67GsQ== X-Google-Smtp-Source: ABdhPJwp5VYRzzoSRsdyntGi40+zGFl6Q9DPEYxCbsGe6Zs7670WSk9kejyKD6xZPpd0k5mkuAYNMQ== X-Received: by 2002:a63:4e41:: with SMTP id o1mr8304212pgl.205.1599246530199; Fri, 04 Sep 2020 12:08:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 04/19] target/microblaze: Rename mmu structs Date: Fri, 4 Sep 2020 12:08:27 -0700 Message-Id: <20200904190842.2282109-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Introduce typedefs and follow CODING_STYLE for naming. Rename struct microblaze_mmu to MicroBlazeMMU. Rename struct microblaze_mmu_lookup to MicroBlazeMMULookup. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Edgar E. Iglesias Signed-off-by: Richard Henderson Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 2 +- target/microblaze/mmu.h | 15 ++++++--------- target/microblaze/helper.c | 4 ++-- target/microblaze/mmu.c | 11 +++++------ 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index 32811f773d..20c2979396 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -278,7 +278,7 @@ struct CPUMBState { =20 #if !defined(CONFIG_USER_ONLY) /* Unified MMU. */ - struct microblaze_mmu mmu; + MicroBlazeMMU mmu; #endif =20 /* Fields up to this point are cleared by a CPU reset */ diff --git a/target/microblaze/mmu.h b/target/microblaze/mmu.h index 75e5301c79..c1feb811b9 100644 --- a/target/microblaze/mmu.h +++ b/target/microblaze/mmu.h @@ -63,8 +63,7 @@ =20 #define TLB_ENTRIES 64 =20 -struct microblaze_mmu -{ +typedef struct { /* Data and tag brams. */ uint64_t rams[2][TLB_ENTRIES]; /* We keep a separate ram for the tids to avoid the 48 bit tag width. = */ @@ -76,10 +75,9 @@ struct microblaze_mmu int c_mmu_tlb_access; int c_mmu_zones; uint64_t c_addr_mask; /* Mask to apply to physical addresses. */ -}; +} MicroBlazeMMU; =20 -struct microblaze_mmu_lookup -{ +typedef struct { uint32_t paddr; uint32_t vaddr; unsigned int size; @@ -88,13 +86,12 @@ struct microblaze_mmu_lookup enum { ERR_PROT, ERR_MISS, ERR_HIT } err; -}; +} MicroBlazeMMULookup; =20 -unsigned int mmu_translate(struct microblaze_mmu *mmu, - struct microblaze_mmu_lookup *lu, +unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroBlazeMMULookup *lu, target_ulong vaddr, int rw, int mmu_idx); uint32_t mmu_read(CPUMBState *env, bool ea, uint32_t rn); void mmu_write(CPUMBState *env, bool ea, uint32_t rn, uint32_t v); -void mmu_init(struct microblaze_mmu *mmu); +void mmu_init(MicroBlazeMMU *mmu); =20 #endif diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c index 27a24bb99a..3c2fd388fb 100644 --- a/target/microblaze/helper.c +++ b/target/microblaze/helper.c @@ -52,7 +52,7 @@ bool mb_cpu_tlb_fill(CPUState *cs, vaddr address, int siz= e, { MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); CPUMBState *env =3D &cpu->env; - struct microblaze_mmu_lookup lu; + MicroBlazeMMULookup lu; unsigned int hit; int prot; =20 @@ -235,7 +235,7 @@ hwaddr mb_cpu_get_phys_page_debug(CPUState *cs, vaddr a= ddr) MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); CPUMBState *env =3D &cpu->env; target_ulong vaddr, paddr =3D 0; - struct microblaze_mmu_lookup lu; + MicroBlazeMMULookup lu; int mmu_idx =3D cpu_mmu_index(env, false); unsigned int hit; =20 diff --git a/target/microblaze/mmu.c b/target/microblaze/mmu.c index 6e583d78d9..0546cfd0bc 100644 --- a/target/microblaze/mmu.c +++ b/target/microblaze/mmu.c @@ -35,7 +35,7 @@ static unsigned int tlb_decode_size(unsigned int f) static void mmu_flush_idx(CPUMBState *env, unsigned int idx) { CPUState *cs =3D env_cpu(env); - struct microblaze_mmu *mmu =3D &env->mmu; + MicroBlazeMMU *mmu =3D &env->mmu; unsigned int tlb_size; uint32_t tlb_tag, end, t; =20 @@ -55,7 +55,7 @@ static void mmu_flush_idx(CPUMBState *env, unsigned int i= dx) =20 static void mmu_change_pid(CPUMBState *env, unsigned int newpid)=20 { - struct microblaze_mmu *mmu =3D &env->mmu; + MicroBlazeMMU *mmu =3D &env->mmu; unsigned int i; uint32_t t; =20 @@ -73,8 +73,7 @@ static void mmu_change_pid(CPUMBState *env, unsigned int = newpid) } =20 /* rw - 0 =3D read, 1 =3D write, 2 =3D fetch. */ -unsigned int mmu_translate(struct microblaze_mmu *mmu, - struct microblaze_mmu_lookup *lu, +unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroBlazeMMULookup *lu, target_ulong vaddr, int rw, int mmu_idx) { unsigned int i, hit =3D 0; @@ -290,7 +289,7 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn, = uint32_t v) break; case MMU_R_TLBSX: { - struct microblaze_mmu_lookup lu; + MicroBlazeMMULookup lu; int hit; =20 if (env->mmu.c_mmu_tlb_access <=3D 1) { @@ -314,7 +313,7 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn, = uint32_t v) } } =20 -void mmu_init(struct microblaze_mmu *mmu) +void mmu_init(MicroBlazeMMU *mmu) { int i; for (i =3D 0; i < ARRAY_SIZE(mmu->regs); i++) { --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246732; cv=none; d=zohomail.com; s=zohoarc; b=lUJuSFmjJ/pZotdtKOwiWfYlVoxQkAvAzOrXdAC4wl9z7rBZnFlQpgEg/s1M7P7o299EEZdyhsOfnuaZMaIZFDxVr6rCq+vpjxH1jznWpEbDaev8oIEvuSc+kntY+i1DqPs1SKwOqgyFpQ3MKTaRHweUgB2iSiaRlNVXxbp2a9Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246732; 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=5SlIcFIM68w880BR4Kxx0NdCPJqMQrugFoEKlxU3Dhc=; b=STTYc4wUCX1/V6LIC09usW5AqW+RwcEEBjEwqVV7Gm3E/Y5QdFqYo5Rj7zulaVI5ubj9yXvzuwYXpozWoNH5ZBaUGz5EkMqj2o7gIT/sn/Zva95J6/6LPTL1dqvMZ2IQY1HVgkAKpqT7mOGODygrLUGJ8p+ypUbZU2KQhqQ+bOs= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246732149212.13467959084414; Fri, 4 Sep 2020 12:12:12 -0700 (PDT) Received: from localhost ([::1]:46652 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH86-0006NZ-Sv for importer@patchew.org; Fri, 04 Sep 2020 15:12:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41584) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4x-0001NG-8C for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:55 -0400 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]:51321) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4v-0000mj-9c for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:54 -0400 Received: by mail-pj1-x1042.google.com with SMTP id a9so441458pjg.1 for ; Fri, 04 Sep 2020 12:08:52 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:50 -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=5SlIcFIM68w880BR4Kxx0NdCPJqMQrugFoEKlxU3Dhc=; b=MUMgmfA+iyd6f//Vc2BgwIG3PH1+AZNFq+CaVDARKsA1/yCsEkd225zC4aL6b6x2FC Ntu24GOaKvW/ITQBqLQZLesDKUvwFCNIv+bdEF6GlwAp0ikieMe9WiDsSGSDsAkDXhNS yPoJ/0cZ58n8THQv4VsBjVDkcTMnRfEPnc64CbJwE5fdQuVYC2c6GZ+RNPjQGvQXxWgp 8QgYZ2XkdoopCmtUi00TZJI8OSnooqyqlkrfwlBL2pJfvIAPum9Fz9i5M09nwYmx4KqN UfQCAOPUcV/TFyQHzBztJXoLHsKVwC7EQZICtNF9qP8VS5J8fj6KzdLGuADYiHetxOzX Hs2w== 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=5SlIcFIM68w880BR4Kxx0NdCPJqMQrugFoEKlxU3Dhc=; b=XIzk+pjfVvceSnQrptt3usmQni/1NZKkpmcSVtoyffsh13yDGsczq+dNAYniDMdunL A5wg1O31UYvyVNyi9Kuuo1j8R6HepQjmB+n7a6zGByqdF0XHU4Vq/50b2TnYF3mehnMJ iRe1yXJsbS1GmU4Dq3VeHtJnrYU1loAwx6lCpbmCrK3bUqtrSLC2o0eX1z20fjchwYa4 wkTsJwxCyXdmQRT8uMF0VuJl9pesktBYw7pFwOVZYefb9VBUQkcRKwvMfTBzRIC77h6N pHzH8tJHXy/WxlKbKZcCqNZ218FYIARnBKbNPZUtggI1Z1B00P+28sxMH2qNy4Hq/nks 5jFw== X-Gm-Message-State: AOAM532zAfwjNH5aoYnCXoUgWNXbK/168GjJzHNtR7wfDE8PMDOW5fOt QdJTp8s7tErHkohJkYq78jHxI8OTn8aDJQ== X-Google-Smtp-Source: ABdhPJxAE3iWxQpRcRHTQS/zAvSU1TRgQ7n/tgoN3QuHL2SupodGV7fHE4+n5evB6TNFB8IgtlhK1w== X-Received: by 2002:a17:90b:110a:: with SMTP id gi10mr9512384pjb.206.1599246531582; Fri, 04 Sep 2020 12:08:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 05/19] target/microblaze: Rename DISAS_UPDATE to DISAS_EXIT Date: Fri, 4 Sep 2020 12:08:28 -0700 Message-Id: <20200904190842.2282109-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::1042; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1042.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) The name "update" suggests that something needs updating, but this is not the case. Use "exit" to emphasize that nothing needs doing except to exit. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index a8a3249185..8ceb04f4f0 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -37,7 +37,7 @@ =20 /* is_jmp field values */ #define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */ -#define DISAS_UPDATE DISAS_TARGET_1 /* cpu state was modified dynamically= */ +#define DISAS_EXIT DISAS_TARGET_1 /* all cpu state modified dynamically= */ =20 static TCGv_i32 cpu_R[32]; static TCGv_i32 cpu_pc; @@ -1161,7 +1161,7 @@ static bool trans_brk(DisasContext *dc, arg_typea_br = *arg) tcg_gen_ori_i32(cpu_msr, cpu_msr, MSR_BIP); tcg_gen_movi_tl(cpu_res_addr, -1); =20 - dc->base.is_jmp =3D DISAS_UPDATE; + dc->base.is_jmp =3D DISAS_EXIT; return true; } =20 @@ -1202,7 +1202,7 @@ static bool trans_brki(DisasContext *dc, arg_typeb_br= *arg) ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM)); } tcg_gen_ori_i32(cpu_msr, cpu_msr, msr_to_set); - dc->base.is_jmp =3D DISAS_UPDATE; + dc->base.is_jmp =3D DISAS_EXIT; #endif =20 return true; @@ -1712,7 +1712,7 @@ static void mb_tr_translate_insn(DisasContextBase *dc= b, CPUState *cs) =20 /* Force an exit if the per-tb cpu state has changed. */ if (dc->base.is_jmp =3D=3D DISAS_NEXT && dc->cpustate_changed) { - dc->base.is_jmp =3D DISAS_UPDATE; + dc->base.is_jmp =3D DISAS_EXIT; tcg_gen_movi_i32(cpu_pc, dc->base.pc_next); } } @@ -1733,7 +1733,7 @@ static void mb_tr_tb_stop(DisasContextBase *dcb, CPUS= tate *cs) gen_goto_tb(dc, 0, dc->base.pc_next); return; =20 - case DISAS_UPDATE: + case DISAS_EXIT: if (unlikely(cs->singlestep_enabled)) { gen_raise_exception(dc, EXCP_DEBUG); } else { --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246849; cv=none; d=zohomail.com; s=zohoarc; b=XwKLgy+7U0R90LGeD6E1hlXDZjwKuqOvUp6sc93DYrN/BWj2+6pmXxhyOUIvKUpPZfc11apjUO2xAAD7s02KnALE+mtyjqhe/aT4ydJGjwGe+agE32+4+2OYa15TnpqZwLg/vSpmmUe39IrgmAPOVtRhfYfuOXVOzs6PEPSAOcw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246849; 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=qxvKwmePa50MKIg8eLv8VBXTLXGDs/q8gqEzTKISHeQ=; b=XlsSsWequZas7KvuTLXpLr4CTk6D1mMQQAHnEpGZP4A0cdP3/4m8bbcR95vRl5NRyWdknXu7aFgizMkpOZzgJpN+o+pFuzhDXHgP0rdI1CaHUkr+P9FQZgTnEqmbCCtIZYDjSQyXOU75S7/Uttsp9oWlHxtHZbcUGXXLWYoZa5o= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246849695881.2172437030086; Fri, 4 Sep 2020 12:14:09 -0700 (PDT) Received: from localhost ([::1]:55334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHA0-0001SU-8h for importer@patchew.org; Fri, 04 Sep 2020 15:14:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41600) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH4y-0001RJ-LZ for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:56 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:40427) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4w-0000my-SR for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:56 -0400 Received: by mail-pf1-x444.google.com with SMTP id c142so5117015pfb.7 for ; Fri, 04 Sep 2020 12:08:54 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:52 -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=qxvKwmePa50MKIg8eLv8VBXTLXGDs/q8gqEzTKISHeQ=; b=gg+/Tvuzk+ZRpQVspa/+HWsuzqLTTze7r0OuQMh7YumjggINO4X6WrEmQQQ+0sPNUt 4m0VcuR5tqold0POKS0FBFCBHCYa+u+6rha8fqeO7gQr+s+6/iH5zC0eQT/13F44NIoV RpmArCdOS9j5R0OUdqkpVa5SH29oyHoP3nLeT8bHFNBho8Zdm/J9bmRU8zQUmvxNRzKN DjD+hNEcE9lrQnEDK7KcHCTPDpC28zuj5BmNesjjxn72wK6FisM9l4QOohnonv4bl/K8 BBAOqG0ADtwczkO9RUf/iKmygMQby+EsUvj+0DdJFKvegVUPbU1kmP+9BumZgblRIJIO 18dg== 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=qxvKwmePa50MKIg8eLv8VBXTLXGDs/q8gqEzTKISHeQ=; b=iPX3N0cFkE5kSDoKJolUBBHydRi3DVt/KOSqVqZNFuiUd6dKs1HYfbIOjgZfil6bNA gqghxYHSgjZMIRAcAtiF/WzVQEjDOTRKe2fK/5uGnPBPHaeHQ8YcRMP5wdfCBc+S5W3c m4+Auw9QQP10vK/WjF41PI6aLL6Vps4izD4XKzT+zoc8HqMuwq62KB48NnG+YM/2jsvV ip4D7mibzlP5QCkiNT9aQUkxNWwXijtwnD1YjGB2RWp3sUSxrzHm+mIEq/fOVOKIH+RA /isayv++9mb5pkk4U42i4JvU3hI3MrdDa5TYREGHHjMUakuyShBFFyCI9QFu1Hs99KRi fdNA== X-Gm-Message-State: AOAM532ixU6CGthTpYqSDwYAAZExGxhkxCDSUMkaqiSWGPNRih+N/s35 XeJ9jmzLYJ2CykzHvCgdfJU6XUBg9Nu6GA== X-Google-Smtp-Source: ABdhPJy+8mCjw6zYUkq4A84uJDMpj2WV391cU3FN5LBsl+MOUJ0KggiiMZ2foxSTF3tnkbFwTYQINg== X-Received: by 2002:a63:c10:: with SMTP id b16mr8170132pgl.240.1599246532858; Fri, 04 Sep 2020 12:08:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 06/19] target/microblaze: Introduce DISAS_EXIT_NEXT, DISAS_EXIT_JUMP Date: Fri, 4 Sep 2020 12:08:29 -0700 Message-Id: <20200904190842.2282109-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::444; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Like DISAS_EXIT, except we need to update cpu_pc, either to pc_next or to btarget respectively. Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 8ceb04f4f0..2abef328a3 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -39,6 +39,11 @@ #define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */ #define DISAS_EXIT DISAS_TARGET_1 /* all cpu state modified dynamically= */ =20 +/* cpu state besides pc was modified dynamically; update pc to next */ +#define DISAS_EXIT_NEXT DISAS_TARGET_2 +/* cpu state besides pc was modified dynamically; update pc to btarget */ +#define DISAS_EXIT_JUMP DISAS_TARGET_3 + static TCGv_i32 cpu_R[32]; static TCGv_i32 cpu_pc; static TCGv_i32 cpu_msr; @@ -1712,8 +1717,7 @@ static void mb_tr_translate_insn(DisasContextBase *dc= b, CPUState *cs) =20 /* Force an exit if the per-tb cpu state has changed. */ if (dc->base.is_jmp =3D=3D DISAS_NEXT && dc->cpustate_changed) { - dc->base.is_jmp =3D DISAS_EXIT; - tcg_gen_movi_i32(cpu_pc, dc->base.pc_next); + dc->base.is_jmp =3D DISAS_EXIT_NEXT; } } =20 @@ -1734,12 +1738,14 @@ static void mb_tr_tb_stop(DisasContextBase *dcb, CP= UState *cs) return; =20 case DISAS_EXIT: - if (unlikely(cs->singlestep_enabled)) { - gen_raise_exception(dc, EXCP_DEBUG); - } else { - tcg_gen_exit_tb(NULL, 0); - } - return; + break; + case DISAS_EXIT_NEXT: + tcg_gen_movi_i32(cpu_pc, dc->base.pc_next); + break; + case DISAS_EXIT_JUMP: + tcg_gen_mov_i32(cpu_pc, cpu_btarget); + tcg_gen_discard_i32(cpu_btarget); + break; =20 case DISAS_JUMP: if (dc->jmp_dest !=3D -1 && !cs->singlestep_enabled) { @@ -1781,6 +1787,13 @@ static void mb_tr_tb_stop(DisasContextBase *dcb, CPU= State *cs) default: g_assert_not_reached(); } + + /* Finish DISAS_EXIT_* */ + if (unlikely(cs->singlestep_enabled)) { + gen_raise_exception(dc, EXCP_DEBUG); + } else { + tcg_gen_exit_tb(NULL, 0); + } } =20 static void mb_tr_disas_log(const DisasContextBase *dcb, CPUState *cs) --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246734; cv=none; d=zohomail.com; s=zohoarc; b=hs6w50U5eDWThUrbJHmhzl1m88Uep8hSB1N2+l0+gYGo0cQG0LlEoNwLfnfXjO9yzRhjHlGQRnlaUiDacwyNdVj/GpuO5DQRUU9KsyoPRRO9jKGyI7I1ZCla8lqvzpTdrOhxdOhFReuNMwPCDDS9PapjKzwCUhbXAjRUOoMk9Dg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246734; 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=Lzoy3rQTW8RpzNKU3s0YRAjNrkjr7LKa4OsZvtm8Vk0=; b=gRaLZ7B2SXyJ5DbefSDwmJHkiFb5b7EXimgshkWhr9eGapGPkMoZ92DoM90vv5NVIU6trXUXqr1CdVwrb/NZ0Zm1sutoLR2G+AEczX9kVeZHZweVnDdHR8SDo4iDaEsl0IKIxBnFDn0NknqwsMpWUt6e5/mKVkp3WdjsoV50+xE= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246734804643.9608777164774; Fri, 4 Sep 2020 12:12:14 -0700 (PDT) Received: from localhost ([::1]:47010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH89-0006WG-Fj for importer@patchew.org; Fri, 04 Sep 2020 15:12:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41636) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH50-0001W1-DO for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:58 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]:40266) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4y-0000ny-GV for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:58 -0400 Received: by mail-pl1-x642.google.com with SMTP id z15so1591429plo.7 for ; Fri, 04 Sep 2020 12:08:56 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:53 -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=Lzoy3rQTW8RpzNKU3s0YRAjNrkjr7LKa4OsZvtm8Vk0=; b=HbU03IhRAu98U9e5TaKfKNlCunwAL7INMsYlRU4Mi+T3q7Sv4Q/WOwP7KtzsBrBFLY xb5LHZJWsDofm1tyQXsajflcgWYEN3gDxxfCvLIquQ+gDWEQZJ1B58onRfb44KJt/vyq Y7TU7u+bn+me7an2wWIPn7eSGRMnt3Lls2s8iG1uKP7hhHr0yzV8xjOW9/plmRg0OgXc B3TDJ7BnffKANYB1xW01d3QmDVdvfGnFxSSFGiKV/rxDR28t2de4mJ5joF2ewwXtmXyT zmM03O67aMjIYeE9wC5fZCAPSX7T7XiiKO+d4c4255HRvJMBGw0HZLYijozZ5FgqT/Y9 4knA== 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=Lzoy3rQTW8RpzNKU3s0YRAjNrkjr7LKa4OsZvtm8Vk0=; b=WLavaMA3IYepjZOV+7WDUKIyyPdS6e2bPpz+4p6xF7onWLhJV9t/2Te0NEM2RVuXTH CqIvQI7AUur1+OGeruKoXAD1BX+S7z3PesqXDXHe4erWVWNVSAw7B9wlXklgTIsElC62 p015XEUyJucs10CZinzSS9ZpAQCDV+1sjmztiupnRWhaA8sfBM/sqvVvRsUM9mzv8KgY Y9zWX7aai02rM2kQqLkuQ5gfgxABQoaiY0sNbm/0Nfb9xfpzgJMe74PyLVFd1WBQQSZm knal5nSZHBb58MJ2QvTQjc++35Qqhtjw/A3L91kz/OF3Pt/TN5tbM3XkvG+sQBGnhgX5 bRmw== X-Gm-Message-State: AOAM5305FDvYmcOiQsUYzqhCLBMrR088pp0pwou1sOwuIVJ1oGBfhW/g aUUhEtAuvfgpu4nGAODIt38pGkNKEXKG9Q== X-Google-Smtp-Source: ABdhPJzLWTATVudAHtf4uhShZ+pFHIM/1idAyJ3KEjFlMewPMYpWzaMUTp88Ar/Q5tN2gBoesGaSdQ== X-Received: by 2002:a17:90b:693:: with SMTP id m19mr9211007pjz.111.1599246534409; Fri, 04 Sep 2020 12:08:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 07/19] target/microblaze: Replace cpustate_changed with DISAS_EXIT_NEXT Date: Fri, 4 Sep 2020 12:08:30 -0700 Message-Id: <20200904190842.2282109-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::642; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x642.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Rather than look for the combination of DISAS_NEXT with a separate variable, go ahead and set is_jmp to the desired state. Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 2abef328a3..6bf299a826 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -70,7 +70,6 @@ typedef struct DisasContext { =20 /* Decoder. */ uint32_t ext_imm; - unsigned int cpustate_changed; unsigned int tb_flags; unsigned int tb_flags_to_set; int mem_index; @@ -1255,7 +1254,7 @@ static bool trans_mbar(DisasContext *dc, arg_mbar *ar= g) * * Therefore, choose to end the TB always. */ - dc->cpustate_changed =3D 1; + dc->base.is_jmp =3D DISAS_EXIT_NEXT; return true; } =20 @@ -1307,19 +1306,6 @@ static void msr_read(DisasContext *dc, TCGv_i32 d) tcg_temp_free_i32(t); } =20 -#ifndef CONFIG_USER_ONLY -static void msr_write(DisasContext *dc, TCGv_i32 v) -{ - dc->cpustate_changed =3D 1; - - /* Install MSR_C. */ - tcg_gen_extract_i32(cpu_msr_c, v, 2, 1); - - /* Clear MSR_C and MSR_CC; MSR_PVR is not writable, and is always clea= r. */ - tcg_gen_andi_i32(cpu_msr, v, ~(MSR_C | MSR_CC | MSR_PVR)); -} -#endif - static bool do_msrclrset(DisasContext *dc, arg_type_msr *arg, bool set) { uint32_t imm =3D arg->imm; @@ -1352,7 +1338,7 @@ static bool do_msrclrset(DisasContext *dc, arg_type_m= sr *arg, bool set) } else { tcg_gen_andi_i32(cpu_msr, cpu_msr, ~imm); } - dc->cpustate_changed =3D 1; + dc->base.is_jmp =3D DISAS_EXIT_NEXT; } return true; } @@ -1385,7 +1371,13 @@ static bool trans_mts(DisasContext *dc, arg_mts *arg) TCGv_i32 src =3D reg_for_read(dc, arg->ra); switch (arg->rs) { case SR_MSR: - msr_write(dc, src); + /* Install MSR_C. */ + tcg_gen_extract_i32(cpu_msr_c, src, 2, 1); + /* + * Clear MSR_C and MSR_CC; + * MSR_PVR is not writable, and is always clear. + */ + tcg_gen_andi_i32(cpu_msr, src, ~(MSR_C | MSR_CC | MSR_PVR)); break; case SR_FSR: tcg_gen_st_i32(src, cpu_env, offsetof(CPUMBState, fsr)); @@ -1417,7 +1409,7 @@ static bool trans_mts(DisasContext *dc, arg_mts *arg) qemu_log_mask(LOG_GUEST_ERROR, "Invalid mts reg 0x%x\n", arg->rs); return true; } - dc->cpustate_changed =3D 1; + dc->base.is_jmp =3D DISAS_EXIT_NEXT; return true; #endif } @@ -1629,7 +1621,6 @@ static void mb_tr_init_disas_context(DisasContextBase= *dcb, CPUState *cs) =20 dc->cpu =3D cpu; dc->tb_flags =3D dc->base.tb->flags; - dc->cpustate_changed =3D 0; dc->ext_imm =3D dc->base.tb->cs_base; dc->r0 =3D NULL; dc->r0_set =3D false; @@ -1714,11 +1705,6 @@ static void mb_tr_translate_insn(DisasContextBase *d= cb, CPUState *cs) } dc->base.is_jmp =3D DISAS_JUMP; } - - /* Force an exit if the per-tb cpu state has changed. */ - if (dc->base.is_jmp =3D=3D DISAS_NEXT && dc->cpustate_changed) { - dc->base.is_jmp =3D DISAS_EXIT_NEXT; - } } =20 static void mb_tr_tb_stop(DisasContextBase *dcb, CPUState *cs) --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247000; cv=none; d=zohomail.com; s=zohoarc; b=XKApNMAYqs6k1vbeh6yRsbroOuv5zw8SZ2OXZDQezLUlnW98Z7YsRhyvMUhcOdpm3f9W/MZVgO8tokW0T7z3NO137HZiWE8IBBFAVUUfMr3cOBZN3VfL8Nd4wmxtBcDgn5bHG7AyRbp+1XXZlQG6Z3DmjqIAfCd3r0sUwCmkbhU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247000; 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=C+qOEnrO4mdVdydo87qRuF3WglkeUY/A8QOfETainjE=; b=kV2gZ4FXwn+uB0xdRxf9ipc9UNXjNzqE4oXsVKTt3FwyP0yv5hneRp0HGLJnKyEaY5m4CHelqRITZLycueGtdL5fpLVnDJrJ52sYReGAxAWRC5TONXlE3C+t4VlbWcP29H9DXzlId+KyJxNH//z+4NYzDPtES2vjrZbPgA8P3ow= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247000470602.3433075627468; Fri, 4 Sep 2020 12:16:40 -0700 (PDT) Received: from localhost ([::1]:35298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHCQ-0004om-BD for importer@patchew.org; Fri, 04 Sep 2020 15:16:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41648) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH51-0001Yq-Ci for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:59 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:34015) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH4z-0000o5-D3 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:08:59 -0400 Received: by mail-pl1-x644.google.com with SMTP id s10so1604940plp.1 for ; Fri, 04 Sep 2020 12:08:56 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:54 -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=C+qOEnrO4mdVdydo87qRuF3WglkeUY/A8QOfETainjE=; b=A+542d076QWv/JjfTkpTEbB3xbMX8uv0KcKqHoLPWaCsrYLVoHLZ2KMbH89Jndh7EU TcU5bhI0ZWCn4zTYFz5KVaQNjKfHQI5cg6rCGAEl6/mgYbTX2u+3A3GCmDl3424e5TFP UrT/2plmPa0vMK73KCYA4SDhBgbPhLhFcPw8i44mYzEdkRVupIR1IFjdtclLyKHXRE6c 2GQjmrsFKXQW3UKauP6IiOLreo35BEuJxta/ofeaIvtTz2ckH0L5CDu+exq3ktRwctJy kNDrQiNucwUVKJIQs/o2A+zE0p7Lo/zH0HNHHq4mlkBx34j1nBr44sMP2hdqo/eKR/Sy W+6w== 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=C+qOEnrO4mdVdydo87qRuF3WglkeUY/A8QOfETainjE=; b=pWTTFVSnJs5LcqJCVfpedoh93HVGz+FBS6Zqh0UGw8Z+X98tggGOHTW9Iil78dtzN2 nzT0iMe6xWAWJ4PwsWI98OfrXrIVSbti1Tzo1OpwDc0kYQC3Ru/8Huoz079e5FbtHwcq bpzSC4wzaChyQS4iepTuul/CAEBt07ayyDKjLnd+WJ6PnTDlGVzlcv6mdxyDe1JPHIbo FdO5LJZK+bpXh/V5JkXbY0piJPxQ5PrMB7nUapb4Ycd35Id+PbibEKcxi9iFeopUo5O3 WNrQdj0Pjx6OEaD4uZ6UR2NnQNJs5VTrZq9fGnFlg+p08+u2XDXLsVR7YtSk5wf3kuJ3 jCaA== X-Gm-Message-State: AOAM530FSCcOhySFPchCWYCYYpNx0a5yJzEKKPURZY+VTdiJYkBdD1Vc 1VCTnaIFufesT1fdbeIrvVGVXxktCtDvtA== X-Google-Smtp-Source: ABdhPJxzGXJ5d1M6tqs3LvCzWo0uqESI8QuRtXhtfsH3+noQ/KLaTvlKapC84ga8NrrGsosYoepXgw== X-Received: by 2002:a17:902:ea8c:: with SMTP id x12mr9872045plb.60.1599246535677; Fri, 04 Sep 2020 12:08:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 08/19] target/microblaze: Handle DISAS_EXIT_NEXT in delay slot Date: Fri, 4 Sep 2020 12:08:31 -0700 Message-Id: <20200904190842.2282109-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::644; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x644.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" It is legal to put an mts instruction into a delay slot. We should continue to return to the main loop in that case so that we recognize any pending interrupts. Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 6bf299a826..608d413c83 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1696,6 +1696,10 @@ static void mb_tr_translate_insn(DisasContextBase *d= cb, CPUState *cs) dc->base.pc_next +=3D 4; =20 if (dc->jmp_cond !=3D TCG_COND_NEVER && !(dc->tb_flags & D_FLAG)) { + /* + * Finish any return-from branch. + * TODO: Diagnose rtXd in delay slot of rtYd earlier. + */ if (dc->tb_flags & DRTI_FLAG) { do_rti(dc); } else if (dc->tb_flags & DRTB_FLAG) { @@ -1703,7 +1707,35 @@ static void mb_tr_translate_insn(DisasContextBase *d= cb, CPUState *cs) } else if (dc->tb_flags & DRTE_FLAG) { do_rte(dc); } - dc->base.is_jmp =3D DISAS_JUMP; + + /* Complete the branch, ending the TB. */ + switch (dc->base.is_jmp) { + case DISAS_NORETURN: + /* + * E.g. illegal insn in a delay slot. We've already exited + * and will handle D_FLAG in mb_cpu_do_interrupt. + */ + break; + case DISAS_EXIT: + /* + * TODO: diagnose brk/brki in delay slot earlier. + * This would then fold into the illegal insn case above. + */ + break; + case DISAS_NEXT: + /* Normal insn a delay slot. */ + dc->base.is_jmp =3D DISAS_JUMP; + break; + case DISAS_EXIT_NEXT: + /* + * E.g. mts insn in a delay slot. Continue with btarget, + * but still return to the main loop. + */ + dc->base.is_jmp =3D DISAS_EXIT_JUMP; + break; + default: + g_assert_not_reached(); + } } } =20 --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246850; cv=none; d=zohomail.com; s=zohoarc; b=kOFmyLT9i/yBxdKZjYfc4U72eaGJbZdly/JvKqVxNcfy7HVxrkI7i5yP6XBjlI4/+lk7T3ADnOidIZZjQeCdC58AXVVzvVXla5AN4/JylUXT3OKJX7tSBP7heEyo3mkPl2u0KoOGX5Pv9q9gyy6N7gfo/DtSTdZK8pTswvzV6QI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246850; 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=7UoRMIgCTJBIlKqoLjr+lb+MPy+eDOOMr1BDXkFiVtI=; b=Se7u/j4/9zdh7CVYT0bKpvPPfHuZgv30g1uP0s1MNVlFuD/xAqly7JEw+HHg/SBeMDhcyBC+xaD8tC3+8A/SYpHinz3kjvEXk5QWSQM6uEnZG6WQ0p6WaUDWs/P2Ebo4A3hnsAqQlHqCC3uHFk+HCoMGDvHnDMLPQXEgtSoIJiw= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246850047351.8573406748254; Fri, 4 Sep 2020 12:14:10 -0700 (PDT) Received: from localhost ([::1]:55438 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHA0-0001Uw-NN for importer@patchew.org; Fri, 04 Sep 2020 15:14:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41682) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH52-0001cc-Os for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:00 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:36714) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH51-0000oJ-0P for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:00 -0400 Received: by mail-pg1-x541.google.com with SMTP id p37so4809926pgl.3 for ; Fri, 04 Sep 2020 12:08:58 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:56 -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=7UoRMIgCTJBIlKqoLjr+lb+MPy+eDOOMr1BDXkFiVtI=; b=OSSuvC3/N3ttKzYfFAemuPcTn+sXzxPvjeFn1mmmfO7Z3AWaYXnhba+QwGHZT0q6cs NlhH0pX697UjsYGeuh1np/8V3PsTtAFVrKjBRXNY3JM6rg0vJlOMG1O23udGxNt2D4hs iEGCU2sdYRLk71WK4cbPnBI813VFCLSAH/SksWNAaJl0+iQPDotNqbM4N5RS4HMzA10I 16kfbNLyOGiuZBG6hEk9mJvm84c6xzrQvsG/MreoaWwX5VN3H0GkcRLl/x6Dftm3Uue0 QexhYEQG+QAVtNo0qs9ia4lN7ktrSHvRme9Z3ttutWpS1LfGmxCZi0XzzD/SiTJT4mwo l0rA== 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=7UoRMIgCTJBIlKqoLjr+lb+MPy+eDOOMr1BDXkFiVtI=; b=jBqBDPclVa9Qss7evk6/0XP9JmqS5EP2hkRLnU3PZQAXSpPi+y0utFaneQH1Rvp0dn +liXalua4yxYOmUVpM3REkNqc5z9tLE0n0vQtAFXtB0j1rCl+U1PTCa/5tizLz4mOy4y KWMjpc7/7g5t/LrvNldZtKSrqABjKZYPchRTpleDlA80sOsmrh8tJwLF1N518Zoobz/3 k3Zq0npEhpm7boDn93zUjamTqlxK4/BZKt86Dy1dcMu5fxXbDsezlnoJygOigYNzjz78 WPtJeQqAdAdAxQRFInRGJFYGTJiNo1J1rMhrg4srRoJDODTQBy0tCLOhQAK/LO8tDBy+ a2Pg== X-Gm-Message-State: AOAM532I8RO1e0xnYmpDH7grZla5DSXdYQK1J3PVk2wnJK/y1fmQMB1O DBb4CMVowUmYQ1G4mpVWVVG1pQd8MkW6cg== X-Google-Smtp-Source: ABdhPJx1Kv0IC5utzUWdXEgSzQy5YIY5IidgKwFNkwMyuTey8zSrEzV3uYzPaVtngoiHdgh5l6CYUA== X-Received: by 2002:aa7:83d9:0:b029:138:b217:f347 with SMTP id j25-20020aa783d90000b0290138b217f347mr8499417pfn.0.1599246537190; Fri, 04 Sep 2020 12:08:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 09/19] target/microblaze: Force rtid, rted, rtbd to exit Date: Fri, 4 Sep 2020 12:08:32 -0700 Message-Id: <20200904190842.2282109-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::541; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x541.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" These return-from-exception type instructions have modified MSR to re-enable various forms of interrupt. Force a return to the main loop. Consolidate the cleanup of tb_flags into mb_tr_translate_insn. Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 608d413c83..da84fdb20b 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1518,7 +1518,6 @@ static void do_rti(DisasContext *dc) tcg_gen_or_i32(cpu_msr, cpu_msr, tmp); =20 tcg_temp_free_i32(tmp); - dc->tb_flags &=3D ~DRTI_FLAG; } =20 static void do_rtb(DisasContext *dc) @@ -1531,7 +1530,6 @@ static void do_rtb(DisasContext *dc) tcg_gen_or_i32(cpu_msr, cpu_msr, tmp); =20 tcg_temp_free_i32(tmp); - dc->tb_flags &=3D ~DRTB_FLAG; } =20 static void do_rte(DisasContext *dc) @@ -1545,7 +1543,6 @@ static void do_rte(DisasContext *dc) tcg_gen_or_i32(cpu_msr, cpu_msr, tmp); =20 tcg_temp_free_i32(tmp); - dc->tb_flags &=3D ~DRTE_FLAG; } =20 /* Insns connected to FSL or AXI stream attached devices. */ @@ -1700,12 +1697,16 @@ static void mb_tr_translate_insn(DisasContextBase *= dcb, CPUState *cs) * Finish any return-from branch. * TODO: Diagnose rtXd in delay slot of rtYd earlier. */ - if (dc->tb_flags & DRTI_FLAG) { - do_rti(dc); - } else if (dc->tb_flags & DRTB_FLAG) { - do_rtb(dc); - } else if (dc->tb_flags & DRTE_FLAG) { - do_rte(dc); + uint32_t rt_ibe =3D dc->tb_flags & (DRTI_FLAG | DRTB_FLAG | DRTE_F= LAG); + if (unlikely(rt_ibe !=3D 0)) { + dc->tb_flags &=3D ~(DRTI_FLAG | DRTB_FLAG | DRTE_FLAG); + if (rt_ibe & DRTI_FLAG) { + do_rti(dc); + } else if (rt_ibe & DRTB_FLAG) { + do_rtb(dc); + } else { + do_rte(dc); + } } =20 /* Complete the branch, ending the TB. */ @@ -1723,8 +1724,12 @@ static void mb_tr_translate_insn(DisasContextBase *d= cb, CPUState *cs) */ break; case DISAS_NEXT: - /* Normal insn a delay slot. */ - dc->base.is_jmp =3D DISAS_JUMP; + /* + * Normal insn a delay slot. + * However, the return-from-exception type insns should + * return to the main loop, as they have adjusted MSR. + */ + dc->base.is_jmp =3D (rt_ibe ? DISAS_EXIT_JUMP : DISAS_JUMP); break; case DISAS_EXIT_NEXT: /* --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246732; cv=none; d=zohomail.com; s=zohoarc; b=E0VubQHVcs9ze6GulIvlyRoXtuUe9xVGbI9Vdqiz+JHdxHgHwB7f1i/lnFncUB9XqIhFGCY4fqQcjcbywDFwrzuc8BKeoEF3cpfN/RnqTOI6PZuVCrvC2B2ee84z4b22bZndbUMeSOwcU927k1Xv/VmdlOpX0Kk4QqO0Ofxyafk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246732; 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=hA0Q3ZvS9ZMt8mExwk35iB2Bwjpw4Nf408fgP9XSgOU=; b=DRWHUtl6RNdoOilP+T22eZnpYkNysYeUkPOgEbwfzRNAOiwAAHgcflfwtgCEnQdbdFXpDGc++tNu/jMM9EMP30rOGPVXHmnlwyVScyuw7FcFV0/rgLky0G4/SFwAg2j1eZhZ2LHTwuJPy1sJP6F3FJ47a37aGQXx/pfimUc90AY= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246732820908.7275985585179; Fri, 4 Sep 2020 12:12:12 -0700 (PDT) Received: from localhost ([::1]:46668 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH87-0006Nz-Ed for importer@patchew.org; Fri, 04 Sep 2020 15:12:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41696) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH54-0001gL-27 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:02 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:44128) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH52-0000of-4c for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:01 -0400 Received: by mail-pf1-x444.google.com with SMTP id o20so5107002pfp.11 for ; Fri, 04 Sep 2020 12:08:59 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:57 -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=hA0Q3ZvS9ZMt8mExwk35iB2Bwjpw4Nf408fgP9XSgOU=; b=yaSi5v4VF54FRNN7slfKtz7hCHljk4RfoQqRR5KR6oDsfB/vwDMRogTKPKNOo3OCS0 od4eFLgXKVe++ec0mAXhhScfwwYk/a1e5EQzWD7NAmntRMOS+A0Ae6eCsPP8lrhuPJew aQ+xEDl0tm5+MlgMq38xZ6M+bZWa1aIBgfA0dfqrbUHKaE5aBqHL5hi418WGeZsfO/bi Jc7JPwYe3VEEVjKQeY5YB+i3HibCtYEaWu9kY9/HMS7Akl1PwUyO5WSHzglJJo3Dpt/c I4XlXBCLi2WY5Bk9jpwImsTerWrRWGEbePHlIHJ3gvxet01szBUR4hBaTomIyvZGQMmy c6sA== 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=hA0Q3ZvS9ZMt8mExwk35iB2Bwjpw4Nf408fgP9XSgOU=; b=Bzx6jrIKOsWd5iSoRMMDq6iihJ82O+ChhtWMswl2en1mlvOjNj5E+/QBu2ViVqaqio 1lZMnMmgtVoxgMnRes6nU6XCuJPBVD+oWsTLnGKIfy/ynP8dvRRrKVLe0Ysb2hwdUs+B 1tJBxKfZ42yXwokJ57ukIfTZhkcm2TBst3QgOwj80Skf6rw3FsSd0do2gTG2UUIcyka9 svlZlszt8VsaHU2+6XFZDrScJ5/Nkd5nuIJVey9SH/ZPuMafqMwXY739QmtNeivZ23UG fk4VX3whQRvR4hdLOCk/MoKP9ek2N8Z62jVrtAOY2UZrSbmkBu3Xb8LLeyFkyhtGWqrS TKdA== X-Gm-Message-State: AOAM530sQ88QfObqBVOz/70b9X4Th4u0Mreumks6ZIlHZnmXgnf9jpsn WXgM+9rAX4Wo+Z+rHPfdSQlpJOx5LloztQ== X-Google-Smtp-Source: ABdhPJwUGtlumyDUK9bpizDElKKodM5ayECPWHzlcjx8wmXJjOV424hwk27bP7jlYT9q0tKCDlga/Q== X-Received: by 2002:a63:c30e:: with SMTP id c14mr8243673pgd.225.1599246538513; Fri, 04 Sep 2020 12:08:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 10/19] target/microblaze: Use tcg_gen_lookup_and_goto_ptr Date: Fri, 4 Sep 2020 12:08:33 -0700 Message-Id: <20200904190842.2282109-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::444; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Normal indirect jumps, or page-crossing direct jumps, can use tcg_gen_lookup_and_goto_ptr to avoid returning to the main loop simply to find an existing TB for the next pc. Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias Signed-off-by: Richard Henderson --- target/microblaze/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index da84fdb20b..d98572fab9 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -147,7 +147,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target= _ulong dest) tcg_gen_exit_tb(dc->base.tb, n); } else { tcg_gen_movi_i32(cpu_pc, dest); - tcg_gen_exit_tb(NULL, 0); + tcg_gen_lookup_and_goto_ptr(); } dc->base.is_jmp =3D DISAS_NORETURN; } @@ -1803,7 +1803,7 @@ static void mb_tr_tb_stop(DisasContextBase *dcb, CPUS= tate *cs) if (unlikely(cs->singlestep_enabled)) { gen_raise_exception(dc, EXCP_DEBUG); } else { - tcg_gen_exit_tb(NULL, 0); + tcg_gen_lookup_and_goto_ptr(); } return; =20 --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247003; cv=none; d=zohomail.com; s=zohoarc; b=AdNS7QKve7HQ8/JmKY5sIr/VOLUtsvtbICF9Om2nw+lpbwydh82imHZ8pOTL6zHzy1KRAQAwWgm+6sy5XpEveAhYDHmxlr/j29vym5Cz9HxaeX3WXGJ+APUgco9dqITV9+7GL8auslnZffyBQjzICy68gi+e5z7XoharJ8ePiQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247003; 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=6ip8ETVXBtHaFZViNW/Xn/p/A5AwtAlXYIm9/stqaVE=; b=hzvHe9yOPunhSbujI2ONPqZEZhXkZUZNNP/71xCkE1d2GjwGWzqrYsEwPcIjlh93pVRYzbLxHk1wbyeBKUekbMj/cBiaQVmx9Hju1Swg+A/mkSphCx2Q1z5yYknPqDfFhAICG24f+ub0rfgsvu6cv6j+04LG/DUKzAzZehau1Ms= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247003079647.7928364960397; Fri, 4 Sep 2020 12:16:43 -0700 (PDT) Received: from localhost ([::1]:35362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHCR-0004qZ-U0 for importer@patchew.org; Fri, 04 Sep 2020 15:16:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41726) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH56-0001lw-3c for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:04 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:43657) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH54-0000ow-52 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:03 -0400 Received: by mail-pf1-x42a.google.com with SMTP id f18so5106750pfa.10 for ; Fri, 04 Sep 2020 12:09:01 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.08.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:08:59 -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=6ip8ETVXBtHaFZViNW/Xn/p/A5AwtAlXYIm9/stqaVE=; b=BrfYrFIUkZ2oGli0/6CvvFM7Jm3lLdEy9TDUXhWzy4m1W/UH5Jz8XH899tUOr1j/2i RER7iBzFgYZhLjk8gLdFs8nlE9S6ZtXj5iMF6ZCfyc2Ktn7NBpaV3afJZOUDFlpFQuCG lG+P2XhIcnAct5Ih+L/nHQIMXzybPkpvuOaWyg1JhUvGZHACTmH1OobGYRGasgXK46NM SPrQ5CdXL9hdO1dpSR56/Mj/LpS/qolXZepsHh3bofPfL6j1JpPf0R2TKS71+Tjit2Z8 9f0LTsIGOT9hwjKBGKOmflH7yaQxZbuzC/iv1SlD80Ejq+39XsWLK8Exd3+COqxGF8ea ey0Q== 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=6ip8ETVXBtHaFZViNW/Xn/p/A5AwtAlXYIm9/stqaVE=; b=ZVWZi9o/XkxBXVt6ULHChgPjUKtal/Kl5CBW72ABX0k2XS1l7iQeAY6BETZcEWv1Cg P0kgEZc8EDwHQiH9DE3W25oYDX4FGQOu0yqqAEcXWS1lE9jdsauOhzcGNcuv7KpxXzDj 5Epetfn/KC2ALCr/TVcgZqIX/p5WXk/NopNulocQGD+Rf5vLtCjQG5eI961VdCdMARh4 ygYEqZJveNuQ0NJh74PuKvAd+/8GOUkuoj/JTlcHc2LWPuqbnxwxce7+SRV40XQivyd4 k3soPNbXNz+YKqyhtmb0zS3v1/8oWu5HVAXKCdHl15vH4X6wGbKlqJ8RgxZBbpkf1fe/ SfyQ== X-Gm-Message-State: AOAM530OtHsi2BtxfAbf7CaJchSQIz1wIXbKBYRYIJQJhEeZuxCMyCKS 1Mtlsjwlv+KAKx9CIMLeHelwM2UCTzDyjA== X-Google-Smtp-Source: ABdhPJw+5NiBtMEXFAE6i2KFn8y8MTfF70wnTtUSsytcnCW24IowV5qMAUTuRkAyT6UgrT27L9O7rg== X-Received: by 2002:a65:6897:: with SMTP id e23mr8331694pgt.65.1599246540200; Fri, 04 Sep 2020 12:09:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 11/19] target/microblaze: Diagnose invalid insns in delay slots Date: Fri, 4 Sep 2020 12:08:34 -0700 Message-Id: <20200904190842.2282109-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) These cases result in undefined and undocumented behaviour but the behaviour is deterministic, i.e cores will not lock-up or expose security issues. However, RTL will not raise exceptions either. Therefore, log a GUEST_ERROR and treat these cases as nops, to avoid corner cases which could put qemu into an invalid state. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Edgar E. Iglesias Signed-off-by: Richard Henderson Tested-by: Edgar E. Iglesias --- target/microblaze/translate.c | 48 ++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index d98572fab9..ff0cb7dbb6 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -179,6 +179,21 @@ static bool trap_userspace(DisasContext *dc, bool cond) return cond_user; } =20 +/* + * Return true, and log an error, if the current insn is + * within a delay slot. + */ +static bool invalid_delay_slot(DisasContext *dc, const char *insn_type) +{ + if (dc->tb_flags & D_FLAG) { + qemu_log_mask(LOG_GUEST_ERROR, + "Invalid insn in delay slot: %s at %08x\n", + insn_type, (uint32_t)dc->base.pc_next); + return true; + } + return false; +} + static TCGv_i32 reg_for_read(DisasContext *dc, int reg) { if (likely(reg !=3D 0)) { @@ -500,6 +515,9 @@ DO_TYPEA_CFG(idivu, use_div, true, gen_idivu) =20 static bool trans_imm(DisasContext *dc, arg_imm *arg) { + if (invalid_delay_slot(dc, "imm")) { + return true; + } dc->ext_imm =3D arg->imm << 16; tcg_gen_movi_i32(cpu_imm, dc->ext_imm); dc->tb_flags_to_set =3D IMM_FLAG; @@ -1067,6 +1085,9 @@ static bool do_branch(DisasContext *dc, int dest_rb, = int dest_imm, { uint32_t add_pc; =20 + if (invalid_delay_slot(dc, "branch")) { + return true; + } if (delay) { setup_dslot(dc, dest_rb < 0); } @@ -1106,6 +1127,9 @@ static bool do_bcc(DisasContext *dc, int dest_rb, int= dest_imm, { TCGv_i32 zero, next; =20 + if (invalid_delay_slot(dc, "bcc")) { + return true; + } if (delay) { setup_dslot(dc, dest_rb < 0); } @@ -1158,6 +1182,10 @@ static bool trans_brk(DisasContext *dc, arg_typea_br= *arg) if (trap_userspace(dc, true)) { return true; } + if (invalid_delay_slot(dc, "brk")) { + return true; + } + tcg_gen_mov_i32(cpu_pc, reg_for_read(dc, arg->rb)); if (arg->rd) { tcg_gen_movi_i32(cpu_R[arg->rd], dc->base.pc_next); @@ -1176,6 +1204,10 @@ static bool trans_brki(DisasContext *dc, arg_typeb_b= r *arg) if (trap_userspace(dc, imm !=3D 0x8 && imm !=3D 0x18)) { return true; } + if (invalid_delay_slot(dc, "brki")) { + return true; + } + tcg_gen_movi_i32(cpu_pc, imm); if (arg->rd) { tcg_gen_movi_i32(cpu_R[arg->rd], dc->base.pc_next); @@ -1216,6 +1248,11 @@ static bool trans_mbar(DisasContext *dc, arg_mbar *a= rg) { int mbar_imm =3D arg->imm; =20 + /* Note that mbar is a specialized branch instruction. */ + if (invalid_delay_slot(dc, "mbar")) { + return true; + } + /* Data access memory barrier. */ if ((mbar_imm & 2) =3D=3D 0) { tcg_gen_mb(TCG_BAR_SC | TCG_MO_ALL); @@ -1263,6 +1300,10 @@ static bool do_rts(DisasContext *dc, arg_typeb_bc *a= rg, int to_set) if (trap_userspace(dc, to_set)) { return true; } + if (invalid_delay_slot(dc, "rts")) { + return true; + } + dc->tb_flags_to_set |=3D to_set; setup_dslot(dc, true); =20 @@ -1695,7 +1736,6 @@ static void mb_tr_translate_insn(DisasContextBase *dc= b, CPUState *cs) if (dc->jmp_cond !=3D TCG_COND_NEVER && !(dc->tb_flags & D_FLAG)) { /* * Finish any return-from branch. - * TODO: Diagnose rtXd in delay slot of rtYd earlier. */ uint32_t rt_ibe =3D dc->tb_flags & (DRTI_FLAG | DRTB_FLAG | DRTE_F= LAG); if (unlikely(rt_ibe !=3D 0)) { @@ -1717,12 +1757,6 @@ static void mb_tr_translate_insn(DisasContextBase *d= cb, CPUState *cs) * and will handle D_FLAG in mb_cpu_do_interrupt. */ break; - case DISAS_EXIT: - /* - * TODO: diagnose brk/brki in delay slot earlier. - * This would then fold into the illegal insn case above. - */ - break; case DISAS_NEXT: /* * Normal insn a delay slot. --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247081; cv=none; d=zohomail.com; s=zohoarc; b=dSz2RbNUlRXllqAIKViwpC9HMCZSWE+v2/lri4jHaJSuEMXswGrWtTgYVVQq5sKMe5JDGcFyS3uZcpRLy529tqF91V18TB02FXbc2IPritwy3drETvvegHJ7QJGeVweKx9q/MNj91W9M/9YxIeq38Sm+Qms/LHv2+2bGqtHLJ2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247081; 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=XwF8rh/HiJftrU6kWorHEFCZRvIfR8zgWMSMwHATuFY=; b=b8LYvlQ0pTqLSDzbJsW1vKLq6SdyW0UPNhuHLjEI5vhk95rO3quHNL3N8SBMq3TvFq5p/rDWPkDkFWsOwy7DWu+PVYwLfpeW6DYdjrqbs9XSDf42Jsvh5gea45SF2Jbfp37UOZlUj9wjQS9PXbYgNuK0pRq1lgNqZBxKXG23hPs= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247081985773.8886887150458; Fri, 4 Sep 2020 12:18:01 -0700 (PDT) Received: from localhost ([::1]:42184 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHDi-0007dB-Ua for importer@patchew.org; Fri, 04 Sep 2020 15:17:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41738) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH56-0001oz-TC for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:04 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:44127) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH55-0000pK-4V for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:04 -0400 Received: by mail-pf1-x442.google.com with SMTP id o20so5107061pfp.11 for ; Fri, 04 Sep 2020 12:09:02 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:00 -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=XwF8rh/HiJftrU6kWorHEFCZRvIfR8zgWMSMwHATuFY=; b=Zex+DPqrIiCBqfQzJ8cVXtYlmhJ+/4vwYa/f2ZhtfwI/5rUxho5shXuUY2rhK774H1 DcSlHAo8o8DYsdJr7Cfnce+2TeZfp4PnAqUPuuuVhlJi2G7k3hRx+/CTOuYqh/TL8Hmm JoiMbjxEKyx+8CU8FQ3syWOkKI57AEv5tzmeWpYezQncO2L9puUKMkrHaktXICCYtTaF AxHjEWBfK8p4IDoCEr5ZvTOhVAxGHV5uT4YCT10WZVIODKVUfqLGfSp9t2ib7Bmi1/98 KD6qB+ylQXO1yFSviIOGI97qp12i69QgaVkC8LtScVr7Kc0xedN67duuhWhF86s45lkc hUGA== 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=XwF8rh/HiJftrU6kWorHEFCZRvIfR8zgWMSMwHATuFY=; b=NRhRpafqWCNOMaJQtC2D0rkujc4tpf/Mn0uL7GlM13p08ilwwLrthbqqIK5Eu0Ytyh PBzXSKBykBa9qW/ViUEFQM6agI2BQliZ1TsvdJIYX4ZsDV8qRKYIhLrZ6GmVh2iuuBxk mrOLqVmsHg+633Jc+dDt0UmkDPIgr9o3bwsCB4BgoIZ2eaCzcHDAGp0LQrLQ7wXyuSHW oi0v/5yt3kRJ8jzj8nH38WSQMIhv4gTnDgg1/ZPFykilBFGW/urS1GkPPcdZWRKv0oMK G/hG3yw5pd3vI8wIsVHYNIbLKUEAQID+c9iYD2i1xql/H7mUTMxLEwu/zGw4JIpEnUx8 555g== X-Gm-Message-State: AOAM532UxU3GPSAoI1x/FPrFDADhgYtDM/V4OFUxBPyyDgcP3ravzewl IAv/5mavROle7i9ztakmNgkaNtUhxYnHSQ== X-Google-Smtp-Source: ABdhPJzFwCMD95ZNEVTIkCrM/YzYoamv760nsTAIUyHgsMWVtMywrwCpRWCYsV9pZey4imREt6DYuA== X-Received: by 2002:a63:d4a:: with SMTP id 10mr1736833pgn.175.1599246541501; Fri, 04 Sep 2020 12:09:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 12/19] target/microblaze: Split out MicroBlazeCPUConfig Date: Fri, 4 Sep 2020 12:08:35 -0700 Message-Id: <20200904190842.2282109-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::442; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" This struct was previously unnamed, and defined in MicroBlazeCPU. Pull it out to its own typedef so that we can reuse it. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 55 ++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index 20c2979396..59d2a079c4 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -291,6 +291,34 @@ struct CPUMBState { } pvr; }; =20 +/* + * Microblaze Configuration Settings + */ +typedef struct { + bool stackprot; + uint32_t base_vectors; + uint8_t addr_size; + uint8_t use_fpu; + uint8_t use_hw_mul; + bool use_barrel; + bool use_div; + bool use_msr_instr; + bool use_pcmp_instr; + bool use_mmu; + bool dcache_writeback; + bool endi; + bool dopb_bus_exception; + bool iopb_bus_exception; + bool illegal_opcode_exception; + bool opcode_0_illegal; + bool div_zero_exception; + bool unaligned_exceptions; + uint8_t pvr_user1; + uint32_t pvr_user2; + char *version; + uint8_t pvr; +} MicroBlazeCPUConfig; + /** * MicroBlazeCPU: * @env: #CPUMBState @@ -305,32 +333,7 @@ struct MicroBlazeCPU { =20 CPUNegativeOffsetState neg; CPUMBState env; - - /* Microblaze Configuration Settings */ - struct { - bool stackprot; - uint32_t base_vectors; - uint8_t addr_size; - uint8_t use_fpu; - uint8_t use_hw_mul; - bool use_barrel; - bool use_div; - bool use_msr_instr; - bool use_pcmp_instr; - bool use_mmu; - bool dcache_writeback; - bool endi; - bool dopb_bus_exception; - bool iopb_bus_exception; - bool illegal_opcode_exception; - bool opcode_0_illegal; - bool div_zero_exception; - bool unaligned_exceptions; - uint8_t pvr_user1; - uint32_t pvr_user2; - char *version; - uint8_t pvr; - } cfg; + MicroBlazeCPUConfig cfg; }; =20 =20 --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247089; cv=none; d=zohomail.com; s=zohoarc; b=gCKiXitFny5JRk3yqf2y4eH+ntRCFhxleOwLlRkCDSPGR7ofFduoYGtVOVRT93mtFwyCyrzg1bKnqjmj0/LylFEm2gyqIdIVazJR4Q1NbxNHwivUb/tdj1sq7ISFqoiabR9Xp2bQkZHQbTV/02+CJYGrpMuGOHjMWIoi7nrvEnQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247089; 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=5XnCVImZ5QTsJteNC1vb4alnlrpbIu8SO5P2TYSi0sE=; b=NnCD7mnkC1yb25KRuGB+2vsbiXkr04R7qvSeWvEarfbiXExboApTHxl02kc3xzl0LVjPgGCHLcDNS8i8VeUCG1os0cVligo67FsEb7pA3jFRgS5KNIh65YlauyHAZ8adXfijDJ5YKsgcWezAAZ/HSetmy0yLrHOSSVJk1UklYO0= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247089716840.7852650843289; Fri, 4 Sep 2020 12:18:09 -0700 (PDT) Received: from localhost ([::1]:42302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHDs-0007g6-Cf for importer@patchew.org; Fri, 04 Sep 2020 15:18:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH58-0001sx-5f for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:06 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:40268) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH56-0000pj-Hc for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:05 -0400 Received: by mail-pl1-x644.google.com with SMTP id z15so1591596plo.7 for ; Fri, 04 Sep 2020 12:09:04 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:02 -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=5XnCVImZ5QTsJteNC1vb4alnlrpbIu8SO5P2TYSi0sE=; b=gMB4zzqxfrczxB2RfGO22uUZO3agZtGBD2C+AYTc4ycM3ib13mcHjs/WDQAh3f6a0/ 0iYDQ0MgkV2s7zKwQhsJGUKidym64vGz+vtM3M3dNLyOzuczAuPvx0j63XgQuaOEyj0n bVqGEPvNcMdSXCI6G/EMRwMgU/aIqrCVTeWPJ52IRfrpvEiiTG+KZYWB69No07owXsWi TYZUIqXlY1NvSn6estv4wjTIOR99lkZRxcb/ZYnrWqdh2KfPtYwX2QjJ2b0F7ScxA8BC 3unjXZl+PaiJppK6GvLwx6HjdHTdllg8NffqJfbgRG8OM3yvwcY74iTbBeN2PCHRK+WP WWkA== 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=5XnCVImZ5QTsJteNC1vb4alnlrpbIu8SO5P2TYSi0sE=; b=WT9JOp7QRUUL4apvH76HYFtpWCM/rPw1yoCB+6NX2HKkR0ugAnpsKX90hXyOGWPBDk 2JHZzY5Vf9KtYfbjjGTdnMB6TJT1stHWKgeU/PpkwAaZ3swSbkZSO3SojQtNQvIVuMdE tDBktCBWAdUrAZFjqFfaOwKGGa2K5DMC5L4zD3xNLrw7yJ7Bfsg5CC9wuve/AUhrvb7R HMdiB2Yh4wGsVMpyqkcZgaS/DRr+XV5hJYN4uUuZbEi2SxrI9PgwVuTTVfjtYQpgmBh/ wcrZVNFM8j6Dzkdj5n1fFi0hyOWg0Qy7PzCkV7XatnljwwcKFf48wWMrAWfrMPGuwDgc uQuQ== X-Gm-Message-State: AOAM533GHlbYKzi96oOdORr1hB7NIbAhsU/oTl9eT0fdepC6MGzueejb C6TV6PAtlkp6MjWZN+kvJomJJHXzy/Vl3A== X-Google-Smtp-Source: ABdhPJyBzc0JSclVDE0alKaxYxDZgB/R7XIiBRCIsj8FqUd3aqeBrfZBmrEiTLUVcGZ00IU5s2U7sA== X-Received: by 2002:a17:90a:4ec6:: with SMTP id v6mr9017941pjl.12.1599246542804; Fri, 04 Sep 2020 12:09:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 13/19] target/microblaze: Reorg MicroBlazeCPUConfig to minimize holes Date: Fri, 4 Sep 2020 12:08:36 -0700 Message-Id: <20200904190842.2282109-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::644; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x644.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Sort the elements by type and size, removing a number of holes and reducing the size of the entire struct. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index 59d2a079c4..4d53345f23 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -293,13 +293,22 @@ struct CPUMBState { =20 /* * Microblaze Configuration Settings + * + * Note that the structure is sorted by type and size to minimize holes. */ typedef struct { - bool stackprot; + char *version; + uint32_t base_vectors; + uint32_t pvr_user2; + uint8_t addr_size; uint8_t use_fpu; uint8_t use_hw_mul; + uint8_t pvr_user1; + uint8_t pvr; + + bool stackprot; bool use_barrel; bool use_div; bool use_msr_instr; @@ -313,10 +322,6 @@ typedef struct { bool opcode_0_illegal; bool div_zero_exception; bool unaligned_exceptions; - uint8_t pvr_user1; - uint32_t pvr_user2; - char *version; - uint8_t pvr; } MicroBlazeCPUConfig; =20 /** --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246886; cv=none; d=zohomail.com; s=zohoarc; b=i/Kr1d9IiKYFHh5WtqkdCN4uaLrLEma01f74ukQi/6inTg3U7afuVj3+4AxqpdyDZRkFSSmVXNaQV3hb9IbRNf1C2kQXpgWoV2XK++EOTllcKl2FyprenRYraAPH38u9sA4byV3N/CkNKRBNFqSBQL5tBALDadckLPLc/nZiKEk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246886; 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=bhVfNpuPA7q1XAfzFFC9Ghe9VEOKRFgTrExxhOw/TII=; b=STxz5RFycyQJz2nwt9GezEedq0g6EfjUCz3PoiF/krT2wQUmh0uxdcDbI/UGAhc6OrBEXkPwTj3JYkDlFUHEM9w7s+ImkYDOjaZOpIMNQhNweZ/cHZz9BsU71hws9pbKzlsktCiuDMFmeuNRLGGgkbWrDkfvzPKUm9FxuY+o0dc= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246886919126.62021612907574; Fri, 4 Sep 2020 12:14:46 -0700 (PDT) Received: from localhost ([::1]:58342 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHAb-0002f8-Fx for importer@patchew.org; Fri, 04 Sep 2020 15:14:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41796) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5B-00021H-77 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:09 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]:41448) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH58-0000qR-TV for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:08 -0400 Received: by mail-pl1-x642.google.com with SMTP id m15so483771pls.8 for ; Fri, 04 Sep 2020 12:09:06 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:04 -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=bhVfNpuPA7q1XAfzFFC9Ghe9VEOKRFgTrExxhOw/TII=; b=ApVZpAqdHOtHrvVuOxUkNTnXqt1dvU3qx0An51sKTC8Ar04NdAJsVy1aoI6qa5EAa/ GmaD2LIXHn1Q5smsgvFsUT9fEHj7/fldLOdTvTlz7y97FT8c1kLlq++B+qhMZIBLPJS+ v0I9RhhmuB58dvRoL/hMHvCXtvVEQ8i3IWkUiJqUds0SwJ8bHkoOBmZaQidqXL2CxbJl JMNf1PfZqn4b2yHaGGaa2NaONU1s0lanvgzec/FM6FcWu6Nw/NCKO3qRejU6Wn6fSvCC GXIY/SO3wnjN9Cnc5SmOga3r2BHj4YX761O9jTZTKKWraLcoiPoUAH3cOA0tfjV+PiOg HSMw== 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=bhVfNpuPA7q1XAfzFFC9Ghe9VEOKRFgTrExxhOw/TII=; b=RNWiTRfIW6XfS12UBdWc1s9qxZ84tyq6IkqVDu0LF8+ixlUlt2fLnwByo2er4vbHJT xs/fJWsu2Zd2R15SujepoUGgd30ZHa4jT+A5cLRtc7APQt739AHX5lITkZg5CaatBWau 56zVBb12nrZe3/qnR5QcZFIjV7K0/+HEAZ11DcJtsmVvi7/5WkeatsrjFlAjGwMZjUt0 /3Izqi7vBSkpbkh3pAG4FJee0MGomjpAY5wOg3n4i1KPC+qL3ctDy/u/N5WEMde1iCBH w4vjVMUYcfQbDQ7h9ZuIAnNrqW4U0BtfGhg4PLq5YVANASpP5qW6733XDNixWbgCHwT0 s90Q== X-Gm-Message-State: AOAM531GZOMEC54/NIh5UsWOLJ2816jhq8bkNxtxrF0qRBLQQZQUmE/c 7tsfV/QLkWdds3rHMF6erHn0Kxb344xoZg== X-Google-Smtp-Source: ABdhPJy7sWu9XrYYP/2OvvwXIMKMgykX4erZx9SCKvrloo4OrXHAVNWbN4sY3OJE2AXHMCUTswSQ4w== X-Received: by 2002:a17:90a:ead5:: with SMTP id ev21mr2904642pjb.188.1599246544665; Fri, 04 Sep 2020 12:09:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 14/19] target/microblaze: Move pvr regs to MicroBlazeCPUConfig Date: Fri, 4 Sep 2020 12:08:37 -0700 Message-Id: <20200904190842.2282109-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::642; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x642.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" These values are constant, and are derived from the other configuration knobs. Move them into MicroBlazeCPUConfig to emphasize that they are not variable. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 5 +- hw/microblaze/petalogix_ml605_mmu.c | 6 +- target/microblaze/cpu.c | 92 ++++++++++++++--------------- target/microblaze/gdbstub.c | 4 +- target/microblaze/helper.c | 2 +- target/microblaze/op_helper.c | 2 +- target/microblaze/translate.c | 3 +- 7 files changed, 54 insertions(+), 60 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index 4d53345f23..ef96f2fe02 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -285,10 +285,6 @@ struct CPUMBState { struct {} end_reset_fields; =20 /* These fields are preserved on reset. */ - - struct { - uint32_t regs[13]; - } pvr; }; =20 /* @@ -301,6 +297,7 @@ typedef struct { =20 uint32_t base_vectors; uint32_t pvr_user2; + uint32_t pvr_regs[13]; =20 uint8_t addr_size; uint8_t use_fpu; diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_= ml605_mmu.c index e49fc86eb8..159db6cbe2 100644 --- a/hw/microblaze/petalogix_ml605_mmu.c +++ b/hw/microblaze/petalogix_ml605_mmu.c @@ -200,9 +200,9 @@ petalogix_ml605_init(MachineState *machine) } =20 /* setup PVR to match kernel settings */ - cpu->env.pvr.regs[4] =3D 0xc56b8000; - cpu->env.pvr.regs[5] =3D 0xc56be000; - cpu->env.pvr.regs[10] =3D 0x0e000000; /* virtex 6 */ + cpu->cfg.pvr_regs[4] =3D 0xc56b8000; + cpu->cfg.pvr_regs[5] =3D 0xc56be000; + cpu->cfg.pvr_regs[10] =3D 0x0e000000; /* virtex 6 */ =20 microblaze_load_kernel(cpu, MEMORY_BASEADDR, ram_size, machine->initrd_filename, diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 6392524135..b9bb7f0cc7 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -153,7 +153,6 @@ static void mb_cpu_realizefn(DeviceState *dev, Error **= errp) CPUState *cs =3D CPU(dev); MicroBlazeCPUClass *mcc =3D MICROBLAZE_CPU_GET_CLASS(dev); MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); - CPUMBState *env =3D &cpu->env; uint8_t version_code =3D 0; const char *version; int i =3D 0; @@ -173,16 +172,6 @@ static void mb_cpu_realizefn(DeviceState *dev, Error *= *errp) =20 qemu_init_vcpu(cs); =20 - env->pvr.regs[0] =3D PVR0_USE_EXC_MASK - | PVR0_USE_ICACHE_MASK - | PVR0_USE_DCACHE_MASK; - env->pvr.regs[2] =3D PVR2_D_OPB_MASK - | PVR2_D_LMB_MASK - | PVR2_I_OPB_MASK - | PVR2_I_LMB_MASK - | PVR2_FPU_EXC_MASK - | 0; - version =3D cpu->cfg.version ? cpu->cfg.version : DEFAULT_CPU_VERSION; for (i =3D 0; mb_cpu_lookup[i].name && version; i++) { if (strcmp(mb_cpu_lookup[i].name, version) =3D=3D 0) { @@ -195,46 +184,53 @@ static void mb_cpu_realizefn(DeviceState *dev, Error = **errp) qemu_log("Invalid MicroBlaze version number: %s\n", cpu->cfg.versi= on); } =20 - env->pvr.regs[0] |=3D (cpu->cfg.stackprot ? PVR0_SPROT_MASK : 0) | - (cpu->cfg.use_fpu ? PVR0_USE_FPU_MASK : 0) | - (cpu->cfg.use_hw_mul ? PVR0_USE_HW_MUL_MASK : 0) | - (cpu->cfg.use_barrel ? PVR0_USE_BARREL_MASK : 0) | - (cpu->cfg.use_div ? PVR0_USE_DIV_MASK : 0) | - (cpu->cfg.use_mmu ? PVR0_USE_MMU_MASK : 0) | - (cpu->cfg.endi ? PVR0_ENDI_MASK : 0) | - (version_code << PVR0_VERSION_SHIFT) | - (cpu->cfg.pvr =3D=3D C_PVR_FULL ? PVR0_PVR_FULL_MA= SK : 0) | - cpu->cfg.pvr_user1; + cpu->cfg.pvr_regs[0] =3D + (PVR0_USE_EXC_MASK | + PVR0_USE_ICACHE_MASK | + PVR0_USE_DCACHE_MASK | + (cpu->cfg.stackprot ? PVR0_SPROT_MASK : 0) | + (cpu->cfg.use_fpu ? PVR0_USE_FPU_MASK : 0) | + (cpu->cfg.use_hw_mul ? PVR0_USE_HW_MUL_MASK : 0) | + (cpu->cfg.use_barrel ? PVR0_USE_BARREL_MASK : 0) | + (cpu->cfg.use_div ? PVR0_USE_DIV_MASK : 0) | + (cpu->cfg.use_mmu ? PVR0_USE_MMU_MASK : 0) | + (cpu->cfg.endi ? PVR0_ENDI_MASK : 0) | + (version_code << PVR0_VERSION_SHIFT) | + (cpu->cfg.pvr =3D=3D C_PVR_FULL ? PVR0_PVR_FULL_MASK : 0) | + cpu->cfg.pvr_user1); =20 - env->pvr.regs[1] =3D cpu->cfg.pvr_user2; - env->pvr.regs[2] |=3D (cpu->cfg.use_fpu ? PVR2_USE_FPU_MASK : 0) | - (cpu->cfg.use_fpu > 1 ? PVR2_USE_FPU2_MASK : 0) | - (cpu->cfg.use_hw_mul ? PVR2_USE_HW_MUL_MASK : 0) | - (cpu->cfg.use_hw_mul > 1 ? PVR2_USE_MUL64_MASK : 0= ) | - (cpu->cfg.use_barrel ? PVR2_USE_BARREL_MASK : 0) | - (cpu->cfg.use_div ? PVR2_USE_DIV_MASK : 0) | - (cpu->cfg.use_msr_instr ? PVR2_USE_MSR_INSTR : 0) | - (cpu->cfg.use_pcmp_instr ? PVR2_USE_PCMP_INSTR : 0= ) | - (cpu->cfg.dopb_bus_exception ? - PVR2_DOPB_BUS_EXC_MASK : = 0) | - (cpu->cfg.iopb_bus_exception ? - PVR2_IOPB_BUS_EXC_MASK : = 0) | - (cpu->cfg.div_zero_exception ? - PVR2_DIV_ZERO_EXC_MASK : = 0) | - (cpu->cfg.illegal_opcode_exception ? - PVR2_ILL_OPCODE_EXC_MASK := 0) | - (cpu->cfg.unaligned_exceptions ? - PVR2_UNALIGNED_EXC_MASK : = 0) | - (cpu->cfg.opcode_0_illegal ? - PVR2_OPCODE_0x0_ILL_MASK = : 0); + cpu->cfg.pvr_regs[1] =3D cpu->cfg.pvr_user2; =20 - env->pvr.regs[5] |=3D cpu->cfg.dcache_writeback ? - PVR5_DCACHE_WRITEBACK_MASK : 0; + cpu->cfg.pvr_regs[2] =3D + (PVR2_D_OPB_MASK | + PVR2_D_LMB_MASK | + PVR2_I_OPB_MASK | + PVR2_I_LMB_MASK | + PVR2_FPU_EXC_MASK | + (cpu->cfg.use_fpu ? PVR2_USE_FPU_MASK : 0) | + (cpu->cfg.use_fpu > 1 ? PVR2_USE_FPU2_MASK : 0) | + (cpu->cfg.use_hw_mul ? PVR2_USE_HW_MUL_MASK : 0) | + (cpu->cfg.use_hw_mul > 1 ? PVR2_USE_MUL64_MASK : 0) | + (cpu->cfg.use_barrel ? PVR2_USE_BARREL_MASK : 0) | + (cpu->cfg.use_div ? PVR2_USE_DIV_MASK : 0) | + (cpu->cfg.use_msr_instr ? PVR2_USE_MSR_INSTR : 0) | + (cpu->cfg.use_pcmp_instr ? PVR2_USE_PCMP_INSTR : 0) | + (cpu->cfg.dopb_bus_exception ? PVR2_DOPB_BUS_EXC_MASK : 0) | + (cpu->cfg.iopb_bus_exception ? PVR2_IOPB_BUS_EXC_MASK : 0) | + (cpu->cfg.div_zero_exception ? PVR2_DIV_ZERO_EXC_MASK : 0) | + (cpu->cfg.illegal_opcode_exception ? PVR2_ILL_OPCODE_EXC_MASK : 0= ) | + (cpu->cfg.unaligned_exceptions ? PVR2_UNALIGNED_EXC_MASK : 0) | + (cpu->cfg.opcode_0_illegal ? PVR2_OPCODE_0x0_ILL_MASK : 0)); =20 - env->pvr.regs[10] =3D 0x0c000000 | /* Default to spartan 3a dsp family= . */ - (cpu->cfg.addr_size - 32) << PVR10_ASIZE_SHIFT; - env->pvr.regs[11] =3D (cpu->cfg.use_mmu ? PVR11_USE_MMU : 0) | - 16 << 17; + cpu->cfg.pvr_regs[5] |=3D + cpu->cfg.dcache_writeback ? PVR5_DCACHE_WRITEBACK_MASK : 0; + + cpu->cfg.pvr_regs[10] =3D + (0x0c000000 | /* Default to spartan 3a dsp family. */ + (cpu->cfg.addr_size - 32) << PVR10_ASIZE_SHIFT); + + cpu->cfg.pvr_regs[11] =3D ((cpu->cfg.use_mmu ? PVR11_USE_MMU : 0) | + 16 << 17); =20 mcc->parent_realize(dev, errp); } diff --git a/target/microblaze/gdbstub.c b/target/microblaze/gdbstub.c index 08d6a0e807..9e3b9ac824 100644 --- a/target/microblaze/gdbstub.c +++ b/target/microblaze/gdbstub.c @@ -78,7 +78,7 @@ int mb_cpu_gdb_read_register(CPUState *cs, GByteArray *me= m_buf, int n) break; case GDB_PVR0 ... GDB_PVR11: /* PVR12 is intentionally skipped */ - val =3D env->pvr.regs[n - GDB_PVR0]; + val =3D cpu->cfg.pvr_regs[n - GDB_PVR0]; break; case GDB_EDR: val =3D env->edr; @@ -134,7 +134,7 @@ int mb_cpu_gdb_write_register(CPUState *cs, uint8_t *me= m_buf, int n) break; case GDB_PVR0 ... GDB_PVR11: /* PVR12 is intentionally skipped */ - env->pvr.regs[n - GDB_PVR0] =3D tmp; + cpu->cfg.pvr_regs[n - GDB_PVR0] =3D tmp; break; case GDB_EDR: env->edr =3D tmp; diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c index 3c2fd388fb..c9f236c897 100644 --- a/target/microblaze/helper.c +++ b/target/microblaze/helper.c @@ -122,7 +122,7 @@ void mb_cpu_do_interrupt(CPUState *cs) =20 switch (cs->exception_index) { case EXCP_HW_EXCP: - if (!(env->pvr.regs[0] & PVR0_USE_EXC_MASK)) { + if (!(cpu->cfg.pvr_regs[0] & PVR0_USE_EXC_MASK)) { qemu_log_mask(LOG_GUEST_ERROR, "Exception raised on system without exceptions!\= n"); return; diff --git a/target/microblaze/op_helper.c b/target/microblaze/op_helper.c index 4614e99db3..757f3ff04b 100644 --- a/target/microblaze/op_helper.c +++ b/target/microblaze/op_helper.c @@ -134,7 +134,7 @@ static void update_fpu_flags(CPUMBState *env, int flags= , uintptr_t ra) raise =3D 1; } if (raise - && (env->pvr.regs[2] & PVR2_FPU_EXC_MASK) + && (env_archcpu(env)->cfg.pvr_regs[2] & PVR2_FPU_EXC_MASK) && (env->msr & MSR_EE)) { raise_fpu_exception(env, ra); } diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index ff0cb7dbb6..9e4551d99b 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1539,7 +1539,8 @@ static bool trans_mfs(DisasContext *dc, arg_mfs *arg) =20 case 0x2000 ... 0x200c: tcg_gen_ld_i32(dest, cpu_env, - offsetof(CPUMBState, pvr.regs[arg->rs - 0x2000])); + offsetof(MicroBlazeCPU, cfg.pvr_regs[arg->rs - 0x20= 00]) + - offsetof(MicroBlazeCPU, env)); break; default: qemu_log_mask(LOG_GUEST_ERROR, "Invalid mfs reg 0x%x\n", arg->rs); --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246846; cv=none; d=zohomail.com; s=zohoarc; b=kcv7aq4AYe4bo8P9jD+BIJNAIC7hBOcQiinleukFGrr//DlBmCYxPPZgQ87Kfp9fuvvavEtwi62M4xpbRJOou4n8JSzzx8DZDiNxaPp7NStQqYvsiGOPovpL3udzAhde9mQ5aZ3weBFCFz07tJV4dvCUPZx7DIe6mtw6ELbhS8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246846; 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=9EdNBb10Sfbn2mMJNyHJYDo3G9R+Hpt4lWBI6fpuCLk=; b=W7dbfwK7vzgb3LKnMIvs9aE+kvNsvD3QP54WDtCZHvVMZ95Pph9ucrs+EgeBB//oC9TB/Y+C8psLvIxbCHiX1+eZwBn7auTU8x+alcGcagilcIg/Hit9nYstdsJfcJXNjhRgUvZc1GRcHscNYZ+q1i/S6UeQQwpVcoPwi/dzPP4= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246846593257.26722304917405; Fri, 4 Sep 2020 12:14:06 -0700 (PDT) Received: from localhost ([::1]:55052 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEH9x-0001LU-AO for importer@patchew.org; Fri, 04 Sep 2020 15:14:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5C-00024n-ND for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:10 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:46410) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH59-0000qw-MI for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:10 -0400 Received: by mail-pf1-x442.google.com with SMTP id b124so5094672pfg.13 for ; Fri, 04 Sep 2020 12:09:07 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:05 -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=9EdNBb10Sfbn2mMJNyHJYDo3G9R+Hpt4lWBI6fpuCLk=; b=V9VwJ97J4nBlWCrQ8o8wBXH7LRag9Rx4uMA5RVFH/wICTvqSf/pM2rQaDH7EA2171W Tsctjkgz+a+bcTlntznbMp+KhVTUUDhJncd2XbccfhI4FglQcO9a8Cd+mewcqcWSAXEt OyeCqckF4C1MnSWHSLL12SG90WqLD74Ft+ABfULDvANBC46rVnhAoA4Q3AgBZRhc/ehG /ssI3jGvqyrw3izkvCjV1GSsSA7iF6NZUg4qRMFvHgsVW4jjikwm80J6xFaBCiQ5DISZ W7TWLn8rNwGGgl7MeMctssEwEzyKNTpaTcM5HmECxRvnPhu/DY1t7YxRn4UpEla42JBz Y7GA== 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=9EdNBb10Sfbn2mMJNyHJYDo3G9R+Hpt4lWBI6fpuCLk=; b=gMu3qAWs0Xhts02NSBZJ02TE0jWfzE03rCaJHVt4+LyDiR0wihbhqstUzDr+u99m0m sBRPS+bFbK5dMIwQK0zjG7Z8ZEccYJGP6t8qASZvwgkY4z+asfz36+KWKFL5Z/gl7iax rnhTyBjXArYPMePVOsOpSOxP8gijxYezRD0HfHGQsgBini75Q6KKQppdKz14YqzOEyE+ 1yVJ7tnaXZvmIRY6tZ4p0InXTvhZVylvK/C/+S3APozcA9aj57sLlkSfolwcXDWUJZnH PLsYWQwV0W/xGI5Pk3a6k8YrRGPWQxAkfaHRPgoKNzIFMebkMfxie4RMvdmpasXhA7Su 8+5A== X-Gm-Message-State: AOAM533DH7LmZ/XIHKChvDX5Jij02CQ6EUmirNdf3Z1HneBpbzP4GiPg cWK2oOmAkBVTM5WDf/WF64gz7kzP8UpcqQ== X-Google-Smtp-Source: ABdhPJwNm1Dvu7iCKCvZ9GE/ZB9G0Uy+XR32+42tVd6W5l14RZ2fahcn+tz/QRp1OjZm5d6dUDrR3g== X-Received: by 2002:aa7:80d3:0:b029:13c:1611:66ba with SMTP id a19-20020aa780d30000b029013c161166bamr8289174pfn.5.1599246545894; Fri, 04 Sep 2020 12:09:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 15/19] target/microblaze: Treat pvr_regs as constant Date: Fri, 4 Sep 2020 12:08:38 -0700 Message-Id: <20200904190842.2282109-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::442; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Do not allow gdb to set the values, and don't bother dumping unchanging values with -d cpu. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- target/microblaze/gdbstub.c | 4 ---- target/microblaze/translate.c | 5 ----- 2 files changed, 9 deletions(-) diff --git a/target/microblaze/gdbstub.c b/target/microblaze/gdbstub.c index 9e3b9ac824..be39fd4540 100644 --- a/target/microblaze/gdbstub.c +++ b/target/microblaze/gdbstub.c @@ -132,10 +132,6 @@ int mb_cpu_gdb_write_register(CPUState *cs, uint8_t *m= em_buf, int n) case GDB_BTR: env->btr =3D tmp; break; - case GDB_PVR0 ... GDB_PVR11: - /* PVR12 is intentionally skipped */ - cpu->cfg.pvr_regs[n - GDB_PVR0] =3D tmp; - break; case GDB_EDR: env->edr =3D tmp; break; diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 9e4551d99b..eca422b3db 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1919,11 +1919,6 @@ void mb_cpu_dump_state(CPUState *cs, FILE *f, int fl= ags) env->esr, env->fsr, env->btr, env->edr, env->ear, env->slr, env->shr); =20 - for (i =3D 0; i < 12; i++) { - qemu_fprintf(f, "rpvr%-2d=3D%08x%c", - i, env->pvr.regs[i], i % 4 =3D=3D 3 ? '\n' : ' '); - } - for (i =3D 0; i < 32; i++) { qemu_fprintf(f, "r%2.2d=3D%08x%c", i, env->regs[i], i % 4 =3D=3D 3 ? '\n' : ' '); --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247164; cv=none; d=zohomail.com; s=zohoarc; b=QCSwbyMWGNvYHmCfBadltETuUlWVDue48OSlEtIsoTpPUNMSChyaxTK31BOR0txkjlzZb4pwad5HR/BDWoGSxRr7V3U8TIlM82HY1B+DKFlIQ/36t3Xh7dQegDqft6SwLvG2ZJFHAz6oEyXlLMMXM5jY2VN89gvbaS6/8cveYMk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247164; 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=GIYwSbqP2/Q+h6E6JYicJ9jGdOa2Pz7gLWfst3DCrHU=; b=GudL9VIpIUfU+fKasVHr6jbledeXYIEg5O3+MLioCqIqng1/xbjRRA0Z4Qnld6fcI1/s9uGto4NSFs7Y2ku0qrRvJ4rnTpewb476cjjvxkFPkyJfr8P+6qW9/DnD4Ckeeh9lNPJB1d+EmXsciXI+x1+RtLEFMPZbCqbARRYEoac= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247164588475.79368749496723; Fri, 4 Sep 2020 12:19:24 -0700 (PDT) Received: from localhost ([::1]:48462 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHF5-0001lA-90 for importer@patchew.org; Fri, 04 Sep 2020 15:19:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41850) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5E-00028r-Bl for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:12 -0400 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:37463) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH5B-0000rH-8f for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:12 -0400 Received: by mail-pg1-x543.google.com with SMTP id 5so4807520pgl.4 for ; Fri, 04 Sep 2020 12:09:08 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:06 -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=GIYwSbqP2/Q+h6E6JYicJ9jGdOa2Pz7gLWfst3DCrHU=; b=p4GtESMYMWerGZwL2UAxtVOLl1xs2bYFU1froYHQUsRZ0zqEhN3g3r6inTHahEfis1 ehY2Bv3VefoVoaATXSwRI/pq4K/+aZyqdY3C2d8b+yE3l2o/VE7zq65YlIOZRar9056r yW1lqGL8hLeDN3hAd6epEdrsEi4eQzdRkWJbKAMGVX7YbCto4P2jcWEfFAY4wXA8UESd vhB0DWJsM2EFi+xJ2RWMNi43SNW6Gycct6fLZOrbpKE3SXDgbzQU+XLItv3nVYHp2Ugr em3k9UResaqGX3+U1qHyuHskbagSx+T7gS+BE/rQa0MfG++spb8HeA0Z1Zlt2FHzPB73 pUQQ== 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=GIYwSbqP2/Q+h6E6JYicJ9jGdOa2Pz7gLWfst3DCrHU=; b=TWMhxjEuTTX2jYxZqpGi6r/af2QzM7MoFTGV3b2LrPFQ/jXFP1QMv9kJ3SYwCGffu2 Z3/h6SGeYv4jBoPSExASJ8Yav2SzyCzKMkU7ygYXUdpKdz3vcZ/3UyIYzSFsVjc5VLgW +sglxBWR7wYZxbl8EAp7tyoSEBEVU+RvsFXEvMpX5ewo4F5Q5MHQR4D7tSdpwIHzQcT5 EtmlMa3EuKWM7X+On9ZT0SfRzYEJUs0eEN63RSNa2ioPcM+ldpdqSGM0K+YUR0gU3wU4 Dc2TnIXn68NbspsO4xlX16UxCQl9CQvWyUm+MJesw+WsVWgsoK/VoKswaEgjoBvR2Qhh GYRA== X-Gm-Message-State: AOAM530P3J/erHWdVxGWZ8Gmw6bEowUXmqO3FH4VtIuyIag+e+0bNi0r N3arT4AESVFIdopZMq1eVlpGqeBo4OXJdQ== X-Google-Smtp-Source: ABdhPJyFDmRysfD4Lf6OBRZkJJb1txyerFF5nv8vGkI9ZBknGlrdYriofspjrNuqQaAx2D1Vp543WA== X-Received: by 2002:a63:4c:: with SMTP id 73mr8526187pga.286.1599246547136; Fri, 04 Sep 2020 12:09:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 16/19] target/microblaze: Move mmu parameters to MicroBlazeCPUConfig Date: Fri, 4 Sep 2020 12:08:39 -0700 Message-Id: <20200904190842.2282109-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::543; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x543.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" The final 4 fields in MicroBlazeMMU are configuration constants. Move them into MicroBlazeCPUConfig where they belong. Remove the leading "c_" from the member names, as that presumably implied "config", and that should not be explicit in the location. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 5 +++++ target/microblaze/mmu.h | 7 +------ target/microblaze/cpu.c | 9 +++++---- target/microblaze/helper.c | 4 ++-- target/microblaze/mmu.c | 30 +++++++++++++++++------------- 5 files changed, 30 insertions(+), 25 deletions(-) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index ef96f2fe02..b54f99da61 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -295,6 +295,8 @@ struct CPUMBState { typedef struct { char *version; =20 + uint64_t addr_mask; + uint32_t base_vectors; uint32_t pvr_user2; uint32_t pvr_regs[13]; @@ -304,6 +306,9 @@ typedef struct { uint8_t use_hw_mul; uint8_t pvr_user1; uint8_t pvr; + uint8_t mmu; + uint8_t mmu_tlb_access; + uint8_t mmu_zones; =20 bool stackprot; bool use_barrel; diff --git a/target/microblaze/mmu.h b/target/microblaze/mmu.h index c1feb811b9..7d0fbb8341 100644 --- a/target/microblaze/mmu.h +++ b/target/microblaze/mmu.h @@ -70,11 +70,6 @@ typedef struct { uint8_t tids[TLB_ENTRIES]; /* Control flops. */ uint32_t regs[3]; - - int c_mmu; - int c_mmu_tlb_access; - int c_mmu_zones; - uint64_t c_addr_mask; /* Mask to apply to physical addresses. */ } MicroBlazeMMU; =20 typedef struct { @@ -88,7 +83,7 @@ typedef struct { } err; } MicroBlazeMMULookup; =20 -unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroBlazeMMULookup *lu, +unsigned int mmu_translate(MicroBlazeCPU *cpu, MicroBlazeMMULookup *lu, target_ulong vaddr, int rw, int mmu_idx); uint32_t mmu_read(CPUMBState *env, bool ea, uint32_t rn); void mmu_write(CPUMBState *env, bool ea, uint32_t rn, uint32_t v); diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index b9bb7f0cc7..fde646a7ad 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -135,10 +135,6 @@ static void mb_cpu_reset(DeviceState *dev) #else mb_cpu_write_msr(env, 0); mmu_init(&env->mmu); - env->mmu.c_mmu =3D 3; - env->mmu.c_mmu_tlb_access =3D 3; - env->mmu.c_mmu_zones =3D 16; - env->mmu.c_addr_mask =3D MAKE_64BIT_MASK(0, cpu->cfg.addr_size); #endif } =20 @@ -232,6 +228,11 @@ static void mb_cpu_realizefn(DeviceState *dev, Error *= *errp) cpu->cfg.pvr_regs[11] =3D ((cpu->cfg.use_mmu ? PVR11_USE_MMU : 0) | 16 << 17); =20 + cpu->cfg.mmu =3D 3; + cpu->cfg.mmu_tlb_access =3D 3; + cpu->cfg.mmu_zones =3D 16; + cpu->cfg.addr_mask =3D MAKE_64BIT_MASK(0, cpu->cfg.addr_size); + mcc->parent_realize(dev, errp); } =20 diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c index c9f236c897..3d6ce1b31b 100644 --- a/target/microblaze/helper.c +++ b/target/microblaze/helper.c @@ -64,7 +64,7 @@ bool mb_cpu_tlb_fill(CPUState *cs, vaddr address, int siz= e, return true; } =20 - hit =3D mmu_translate(&env->mmu, &lu, address, access_type, mmu_idx); + hit =3D mmu_translate(cpu, &lu, address, access_type, mmu_idx); if (likely(hit)) { uint32_t vaddr =3D address & TARGET_PAGE_MASK; uint32_t paddr =3D lu.paddr + vaddr - lu.vaddr; @@ -240,7 +240,7 @@ hwaddr mb_cpu_get_phys_page_debug(CPUState *cs, vaddr a= ddr) unsigned int hit; =20 if (mmu_idx !=3D MMU_NOMMU_IDX) { - hit =3D mmu_translate(&env->mmu, &lu, addr, 0, 0); + hit =3D mmu_translate(cpu, &lu, addr, 0, 0); if (hit) { vaddr =3D addr & TARGET_PAGE_MASK; paddr =3D lu.paddr + vaddr - lu.vaddr; diff --git a/target/microblaze/mmu.c b/target/microblaze/mmu.c index 0546cfd0bc..1dbbb271c4 100644 --- a/target/microblaze/mmu.c +++ b/target/microblaze/mmu.c @@ -73,9 +73,10 @@ static void mmu_change_pid(CPUMBState *env, unsigned int= newpid) } =20 /* rw - 0 =3D read, 1 =3D write, 2 =3D fetch. */ -unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroBlazeMMULookup *lu, +unsigned int mmu_translate(MicroBlazeCPU *cpu, MicroBlazeMMULookup *lu, target_ulong vaddr, int rw, int mmu_idx) { + MicroBlazeMMU *mmu =3D &cpu->env.mmu; unsigned int i, hit =3D 0; unsigned int tlb_ex =3D 0, tlb_wr =3D 0, tlb_zsel; uint64_t tlb_tag, tlb_rpn, mask; @@ -114,13 +115,13 @@ unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroB= lazeMMULookup *lu, t0 =3D mmu->regs[MMU_R_ZPR] >> (30 - (tlb_zsel * 2)); t0 &=3D 0x3; =20 - if (tlb_zsel > mmu->c_mmu_zones) { + if (tlb_zsel > cpu->cfg.mmu_zones) { qemu_log_mask(LOG_GUEST_ERROR, "tlb zone select out of range! %d\n", tlb_zs= el); t0 =3D 1; /* Ignore. */ } =20 - if (mmu->c_mmu =3D=3D 1) { + if (cpu->cfg.mmu =3D=3D 1) { t0 =3D 1; /* Zones are disabled. */ } =20 @@ -157,7 +158,7 @@ unsigned int mmu_translate(MicroBlazeMMU *mmu, MicroBla= zeMMULookup *lu, tlb_rpn =3D d & TLB_RPN_MASK; =20 lu->vaddr =3D tlb_tag; - lu->paddr =3D tlb_rpn & mmu->c_addr_mask; + lu->paddr =3D tlb_rpn & cpu->cfg.addr_mask; lu->size =3D tlb_size; lu->err =3D ERR_HIT; lu->idx =3D i; @@ -175,10 +176,11 @@ done: /* Writes/reads to the MMU's special regs end up here. */ uint32_t mmu_read(CPUMBState *env, bool ext, uint32_t rn) { + MicroBlazeCPU *cpu =3D env_archcpu(env); unsigned int i; uint32_t r =3D 0; =20 - if (env->mmu.c_mmu < 2 || !env->mmu.c_mmu_tlb_access) { + if (cpu->cfg.mmu < 2 || !cpu->cfg.mmu_tlb_access) { qemu_log_mask(LOG_GUEST_ERROR, "MMU access on MMU-less system\n"); return 0; } @@ -191,7 +193,7 @@ uint32_t mmu_read(CPUMBState *env, bool ext, uint32_t r= n) /* Reads to HI/LO trig reads from the mmu rams. */ case MMU_R_TLBLO: case MMU_R_TLBHI: - if (!(env->mmu.c_mmu_tlb_access & 1)) { + if (!(cpu->cfg.mmu_tlb_access & 1)) { qemu_log_mask(LOG_GUEST_ERROR, "Invalid access to MMU reg %d\n", rn); return 0; @@ -204,7 +206,7 @@ uint32_t mmu_read(CPUMBState *env, bool ext, uint32_t r= n) break; case MMU_R_PID: case MMU_R_ZPR: - if (!(env->mmu.c_mmu_tlb_access & 1)) { + if (!(cpu->cfg.mmu_tlb_access & 1)) { qemu_log_mask(LOG_GUEST_ERROR, "Invalid access to MMU reg %d\n", rn); return 0; @@ -227,12 +229,14 @@ uint32_t mmu_read(CPUMBState *env, bool ext, uint32_t= rn) =20 void mmu_write(CPUMBState *env, bool ext, uint32_t rn, uint32_t v) { + MicroBlazeCPU *cpu =3D env_archcpu(env); uint64_t tmp64; unsigned int i; + qemu_log_mask(CPU_LOG_MMU, "%s rn=3D%d=3D%x old=3D%x\n", __func__, rn, v, env->mmu.= regs[rn]); =20 - if (env->mmu.c_mmu < 2 || !env->mmu.c_mmu_tlb_access) { + if (cpu->cfg.mmu < 2 || !cpu->cfg.mmu_tlb_access) { qemu_log_mask(LOG_GUEST_ERROR, "MMU access on MMU-less system\n"); return; } @@ -258,7 +262,7 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn, = uint32_t v) env->mmu.rams[rn & 1][i] =3D deposit64(tmp64, ext * 32, 32, v); break; case MMU_R_ZPR: - if (env->mmu.c_mmu_tlb_access <=3D 1) { + if (cpu->cfg.mmu_tlb_access <=3D 1) { qemu_log_mask(LOG_GUEST_ERROR, "Invalid access to MMU reg %d\n", rn); return; @@ -272,7 +276,7 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn, = uint32_t v) env->mmu.regs[rn] =3D v; break; case MMU_R_PID: - if (env->mmu.c_mmu_tlb_access <=3D 1) { + if (cpu->cfg.mmu_tlb_access <=3D 1) { qemu_log_mask(LOG_GUEST_ERROR, "Invalid access to MMU reg %d\n", rn); return; @@ -292,14 +296,14 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn= , uint32_t v) MicroBlazeMMULookup lu; int hit; =20 - if (env->mmu.c_mmu_tlb_access <=3D 1) { + if (cpu->cfg.mmu_tlb_access <=3D 1) { qemu_log_mask(LOG_GUEST_ERROR, "Invalid access to MMU reg %d\n", rn); return; } =20 - hit =3D mmu_translate(&env->mmu, &lu, - v & TLB_EPN_MASK, 0, cpu_mmu_index(env, fa= lse)); + hit =3D mmu_translate(cpu, &lu, v & TLB_EPN_MASK, + 0, cpu_mmu_index(env, false)); if (hit) { env->mmu.regs[MMU_R_TLBX] =3D lu.idx; } else { --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599247077; cv=none; d=zohomail.com; s=zohoarc; b=WNt3lLwMlXRlfJ+rrPJyl1ycVDP1JsTubIO0vGSRl1wLP/4lN0R0atNcpNBHBOMbEUuPeTwQj1XoHOKze2/H5LgjpJHxh/wovR8c6fX1YbP2vw9kDYURu0Jsbj8qdoG434z2GGOxIIlymTxaAsOmgzNh8awUdOYHpx7NYzg/+qs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247077; 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=Yxppty28CTEMjPkeyhnxd+40vdMGPYpycADEgKMrbsc=; b=RvljJn1IcxdA7/bWMIcOB0SeA90/QU6/8h337QBPnYIgRpEod6C8WjC15tA0fNPQ8BqKOL6qPNKdRjVmn7dB60SbB55aHHNmgPBllrg1QuFY3rk/a2FKUlY/EnCXeEW1D85fO5/lOOEeeNRD9/zTzBSh13iAbEc2nxKgbrwAV4Y= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247077451867.4454804457724; Fri, 4 Sep 2020 12:17:57 -0700 (PDT) Received: from localhost ([::1]:41984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHDf-0007YN-LO for importer@patchew.org; Fri, 04 Sep 2020 15:17:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5F-0002BC-6Z for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:13 -0400 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:46091) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH5C-0000rk-C2 for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:12 -0400 Received: by mail-pg1-x543.google.com with SMTP id 31so4778225pgy.13 for ; Fri, 04 Sep 2020 12:09:09 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:07 -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=Yxppty28CTEMjPkeyhnxd+40vdMGPYpycADEgKMrbsc=; b=OcY92o6UvvbdidoXAu1sbSQGtME97fCmqIdmRZENwqso6ydVPZbY+7U8qCRUerhWRX dNN5tNzcGRlo2fFNeZcqe5nezY4IioAPldGaIYjTXxRV/ntf9XqQ1NGdBdcJ7McUThJb /NmLauXZg8nf29XSBLN1zCcAojQL8ogl4s1ChqTG+HOCiqunUXiC6LIZ2A+/c3vMOOq3 2YQOz3IH1iWJa8gEMULU8IBEwOfqfWQ7lrYA8sHwb0gf6amWXyRl0o6iFv+Znc6lEkog YjxEZLqnwbpb07eqJI5Or9Wsn808N2ZmieTll5rxMMqiL2E9EXR85DAc083KqmAQItga ssCg== 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=Yxppty28CTEMjPkeyhnxd+40vdMGPYpycADEgKMrbsc=; b=bTbqUVox1QfX3UwWsLde3NpW6xOxa55/pRt8LcbJ6HoAr6W7Qxd3mtrcCDZ2gOiAE0 h2R5rirp2wgKItFzYMRAUzYJOYTA+ZCGozfyYy7yGCMO8mui+sd643M4osOt7cGTw3RA iDx4P4wZZtzG4UUR4x8bh1rNNZru32E+G4Ai0YhUg2qCG1bA5tK8Le/gzjTvYu1oa7Un qkGN4EtzSm0pT8uzGF7G+8Z48Cc6oLXBk6H/tcamr5oW4JlryLEAcGlZpTJjJzou1/mH K1AwnfmYE3pnUhXj1C75id59Y+300m3FYWUbgWB1pENegKzJvOVKEa6oufA07pC5cvQX jr0A== X-Gm-Message-State: AOAM5330JEkZhtJheWUq6wsyBrAeKDT/JXF7NOceo1M7rVQvvgdIO68S H2mWJQlzkG0h3BCle8zN7h6EwqDqjxO3nA== X-Google-Smtp-Source: ABdhPJx7PlhO4EDuGPIVe+8KyjdbZ8+I0Ek3qkH/IGPjNzooRRoVBusnzZlTSiZeEUuUyU9IXuHnnw== X-Received: by 2002:a63:7c9:: with SMTP id 192mr8185606pgh.181.1599246548115; Fri, 04 Sep 2020 12:09:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 17/19] target/microblaze: Fill in VMStateDescription for cpu Date: Fri, 4 Sep 2020 12:08:40 -0700 Message-Id: <20200904190842.2282109-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::543; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x543.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- target/microblaze/cpu.h | 4 ++ target/microblaze/cpu.c | 8 +-- target/microblaze/machine.c | 106 ++++++++++++++++++++++++++++++++++ target/microblaze/meson.build | 5 +- 4 files changed, 115 insertions(+), 8 deletions(-) create mode 100644 target/microblaze/machine.c diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index b54f99da61..297b36879a 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -429,4 +429,8 @@ static inline int cpu_mmu_index(CPUMBState *env, bool i= fetch) return MMU_KERNEL_IDX; } =20 +#ifndef CONFIG_USER_ONLY +extern const VMStateDescription vmstate_mb_cpu; +#endif + #endif diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index fde646a7ad..9b2482159d 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -26,7 +26,6 @@ #include "cpu.h" #include "qemu/module.h" #include "hw/qdev-properties.h" -#include "migration/vmstate.h" #include "exec/exec-all.h" #include "fpu/softfloat-helpers.h" =20 @@ -251,11 +250,6 @@ static void mb_cpu_initfn(Object *obj) #endif } =20 -static const VMStateDescription vmstate_mb_cpu =3D { - .name =3D "cpu", - .unmigratable =3D 1, -}; - static Property mb_properties[] =3D { DEFINE_PROP_UINT32("base-vectors", MicroBlazeCPU, cfg.base_vectors, 0), DEFINE_PROP_BOOL("use-stack-protection", MicroBlazeCPU, cfg.stackprot, @@ -335,8 +329,8 @@ static void mb_cpu_class_init(ObjectClass *oc, void *da= ta) #ifndef CONFIG_USER_ONLY cc->do_transaction_failed =3D mb_cpu_transaction_failed; cc->get_phys_page_debug =3D mb_cpu_get_phys_page_debug; -#endif dc->vmsd =3D &vmstate_mb_cpu; +#endif device_class_set_props(dc, mb_properties); cc->gdb_num_core_regs =3D 32 + 27; =20 diff --git a/target/microblaze/machine.c b/target/microblaze/machine.c new file mode 100644 index 0000000000..acdb8d0474 --- /dev/null +++ b/target/microblaze/machine.c @@ -0,0 +1,106 @@ +/* + * Microblaze VMState for qemu. + * + * Copyright (c) 2020 Linaro, Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "migration/cpu.h" + + +static VMStateField vmstate_mmu_fields[] =3D { + VMSTATE_UINT64_2DARRAY(rams, MicroBlazeMMU, 2, TLB_ENTRIES), + VMSTATE_UINT8_ARRAY(tids, MicroBlazeMMU, TLB_ENTRIES), + VMSTATE_UINT32_ARRAY(regs, MicroBlazeMMU, 3), + VMSTATE_END_OF_LIST() +}; + +static const VMStateDescription vmstate_mmu =3D { + .name =3D "mmu", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D vmstate_mmu_fields, +}; + +static int get_msr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) +{ + CPUMBState *env =3D container_of(opaque, CPUMBState, msr); + + mb_cpu_write_msr(env, qemu_get_be32(f)); + return 0; +} + +static int put_msr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, QJSON *vmdesc) +{ + CPUMBState *env =3D container_of(opaque, CPUMBState, msr); + + qemu_put_be32(f, mb_cpu_read_msr(env)); + return 0; +} + +static const VMStateInfo vmstate_msr =3D { + .name =3D "msr", + .get =3D get_msr, + .put =3D put_msr, +}; + +static VMStateField vmstate_env_fields[] =3D { + VMSTATE_UINT32_ARRAY(regs, CPUMBState, 32), + + VMSTATE_UINT32(pc, CPUMBState), + VMSTATE_SINGLE(msr, CPUMBState, 0, vmstate_msr, uint32_t), + VMSTATE_UINT32(esr, CPUMBState), + VMSTATE_UINT32(fsr, CPUMBState), + VMSTATE_UINT32(btr, CPUMBState), + VMSTATE_UINT32(edr, CPUMBState), + VMSTATE_UINT32(slr, CPUMBState), + VMSTATE_UINT32(shr, CPUMBState), + VMSTATE_UINT64(ear, CPUMBState), + + VMSTATE_UINT32(btarget, CPUMBState), + VMSTATE_UINT32(imm, CPUMBState), + VMSTATE_UINT32(iflags, CPUMBState), + + VMSTATE_UINT32(res_val, CPUMBState), + VMSTATE_UINTTL(res_addr, CPUMBState), + + VMSTATE_STRUCT(mmu, CPUMBState, 0, vmstate_mmu, MicroBlazeMMU), + + VMSTATE_END_OF_LIST() +}; + +static const VMStateDescription vmstate_env =3D { + .name =3D "env", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D vmstate_env_fields, +}; + +static VMStateField vmstate_cpu_fields[] =3D { + VMSTATE_CPU(), + VMSTATE_STRUCT(env, MicroBlazeCPU, 1, vmstate_env, CPUMBState), + VMSTATE_END_OF_LIST() +}; + +const VMStateDescription vmstate_mb_cpu =3D { + .name =3D "cpu", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D vmstate_cpu_fields, +}; diff --git a/target/microblaze/meson.build b/target/microblaze/meson.build index 639c3f73a8..05ee0ec163 100644 --- a/target/microblaze/meson.build +++ b/target/microblaze/meson.build @@ -11,7 +11,10 @@ microblaze_ss.add(files( )) =20 microblaze_softmmu_ss =3D ss.source_set() -microblaze_softmmu_ss.add(files('mmu.c')) +microblaze_softmmu_ss.add(files( + 'mmu.c', + 'machine.c', +)) =20 target_arch +=3D {'microblaze': microblaze_ss} target_softmmu_arch +=3D {'microblaze': microblaze_softmmu_ss} --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 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=1599246992; cv=none; d=zohomail.com; s=zohoarc; b=Sm82Rzw+Pwdvga7iiotRXYPirbsBzK87eoPK3Gsk5vzu1U5fnuny6mZZDNJCcwZOwzlJvCvCvr7beoeMFsjrTkYA3pB9qt1NTrKoYgjX/Tc/YsUx1VFRi0bkF2b9Yf5K/2ZZ4jznfMkOng0cOckgdS/UIGNYsX6tU4wiagi8U3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599246992; 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=eQ3iwBZyN+fYD1otNJTbsrzs1UqXrhzf0NCiu+0zRvU=; b=WToRTaJmhdnvyin9vLgjvWEhX7jW8vj0CY4txsyW8weY8fkBZYZyO+s5l2drfmV+t+y3Z61MAIIvVxo5kN9Ii7y7o8Yy/a3CVQqyC9Q2ddayO0asiRYCYvGLyMX/s3f5NsAcBtmzXgSjl6Wf15QnCR2cnBEZwvSMQEBfiMXX5w0= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599246992430723.1474632294284; Fri, 4 Sep 2020 12:16:32 -0700 (PDT) Received: from localhost ([::1]:35074 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHCJ-0004jN-4H for importer@patchew.org; Fri, 04 Sep 2020 15:16:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41860) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5E-0002AW-UK for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:12 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:45595) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH5D-0000rz-3Q for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:12 -0400 Received: by mail-pf1-x444.google.com with SMTP id k15so5097563pfc.12 for ; Fri, 04 Sep 2020 12:09:10 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:08 -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=eQ3iwBZyN+fYD1otNJTbsrzs1UqXrhzf0NCiu+0zRvU=; b=C1SBqr5SckSyhKJ1r0VZLFFOW2MhCwnJfhyPA0S78ZD11VALisLyuDF4RlFAz82KJl EzKiYP/wOxfKGSdee3zZQHqHcgqTqxRRHYuoxFVFxJ/WlxEW+IRUe4WpB7fp2fujnHZV 5aEtWrKk6JbZgnU0NiGT3ONwXszg8UtnccFlS7/pJAUp+UzWbIO8fDSGsuEBLgQD3oP7 s6uheY3hGjVojf7kiVpK+0Idy662mQMTMTSK/WPfqsy8QXudGKIothU+whJ/4/mvyXWf 9IJsHvfA9KE1WqWyIBWADBwSoH2zKFMPTA7JKOmUptwXitb/oOlqkA+b57n5q3jhYi4a yytQ== 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=eQ3iwBZyN+fYD1otNJTbsrzs1UqXrhzf0NCiu+0zRvU=; b=NvR11JYnU2BkzjeVXRrowwMiZU89H/jeJu7CsRWvk1DY5a9egxRqoHx/1aB6roDcCs mlndm9lWCKqKQhp5aYeVVrWhJ9fPpmquaGdsOwomunV2C7/XlRqbOaAm8/ZGOY4rGWzk n/wSIJV6hsFngtdvi7tPXTAR1s+GDBOn/mI/pnxfLlEuL7LGBXU+P4etWxyuI7gYM3AU diUvEDexmzHl+pYKKRNfdhEPFQv/K3XvqxHGd6LebeZpomimpe9aoJg1PUd64372hn8q f7G6rdANp4+kH6xadbWPn7lpE5zB4K1SzSMR0Yjrzuh+Xf7iEtdNmax/L0OsmOlF0r85 LPzA== X-Gm-Message-State: AOAM530QuMP3THhkWORjCRSyUhGAK0TBzFAh2VwDQkYDEiuj07eXLAvr czlyRkoh7ePW4CLNB3GPGvJgWGSTK5V6cw== X-Google-Smtp-Source: ABdhPJwcgRUjQc/HdqvDUGAAFz263zVLd8Me3KNges+T8wZOdL4+VbC1N1d2a/qLbUHr+l+V17/qrw== X-Received: by 2002:a63:a709:: with SMTP id d9mr8659878pgf.168.1599246549310; Fri, 04 Sep 2020 12:09:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 18/19] target/microblaze: Put MicroBlazeCPUConfig into DisasContext Date: Fri, 4 Sep 2020 12:08:41 -0700 Message-Id: <20200904190842.2282109-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::444; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" The bulk of the translator should not have access to the complete cpu state, to avoid the temptation to examine bits that are in run time, but not translation time context. We do need access to the constant cpu configuration, and that is sufficient, so put that into DisasContext. Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Edgar E. Iglesias --- target/microblaze/translate.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index eca422b3db..abfcc7e6c8 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -60,7 +60,7 @@ static TCGv_i32 cpu_res_val; /* This is the state at translation time. */ typedef struct DisasContext { DisasContextBase base; - MicroBlazeCPU *cpu; + const MicroBlazeCPUConfig *cfg; =20 /* TCG op of the current insn_start. */ TCGOp *insn_start; @@ -159,7 +159,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target= _ulong dest) static bool trap_illegal(DisasContext *dc, bool cond) { if (cond && (dc->tb_flags & MSR_EE) - && dc->cpu->cfg.illegal_opcode_exception) { + && dc->cfg->illegal_opcode_exception) { gen_raise_hw_excp(dc, ESR_EC_ILLEGAL_OP); } return cond; @@ -291,7 +291,7 @@ static bool do_typeb_val(DisasContext *dc, arg_typeb *a= rg, bool side_effects, =20 #define DO_TYPEA_CFG(NAME, CFG, SE, FN) \ static bool trans_##NAME(DisasContext *dc, arg_typea *a) \ - { return dc->cpu->cfg.CFG && do_typea(dc, a, SE, FN); } + { return dc->cfg->CFG && do_typea(dc, a, SE, FN); } =20 #define DO_TYPEA0(NAME, SE, FN) \ static bool trans_##NAME(DisasContext *dc, arg_typea0 *a) \ @@ -299,7 +299,7 @@ static bool do_typeb_val(DisasContext *dc, arg_typeb *a= rg, bool side_effects, =20 #define DO_TYPEA0_CFG(NAME, CFG, SE, FN) \ static bool trans_##NAME(DisasContext *dc, arg_typea0 *a) \ - { return dc->cpu->cfg.CFG && do_typea0(dc, a, SE, FN); } + { return dc->cfg->CFG && do_typea0(dc, a, SE, FN); } =20 #define DO_TYPEBI(NAME, SE, FNI) \ static bool trans_##NAME(DisasContext *dc, arg_typeb *a) \ @@ -307,7 +307,7 @@ static bool do_typeb_val(DisasContext *dc, arg_typeb *a= rg, bool side_effects, =20 #define DO_TYPEBI_CFG(NAME, CFG, SE, FNI) \ static bool trans_##NAME(DisasContext *dc, arg_typeb *a) \ - { return dc->cpu->cfg.CFG && do_typeb_imm(dc, a, SE, FNI); } + { return dc->cfg->CFG && do_typeb_imm(dc, a, SE, FNI); } =20 #define DO_TYPEBV(NAME, SE, FN) \ static bool trans_##NAME(DisasContext *dc, arg_typeb *a) \ @@ -683,7 +683,7 @@ static TCGv compute_ldst_addr_typea(DisasContext *dc, i= nt ra, int rb) tcg_gen_movi_tl(ret, 0); } =20 - if ((ra =3D=3D 1 || rb =3D=3D 1) && dc->cpu->cfg.stackprot) { + if ((ra =3D=3D 1 || rb =3D=3D 1) && dc->cfg->stackprot) { gen_helper_stackprot(cpu_env, ret); } return ret; @@ -703,7 +703,7 @@ static TCGv compute_ldst_addr_typeb(DisasContext *dc, i= nt ra, int imm) tcg_gen_movi_tl(ret, (uint32_t)imm); } =20 - if (ra =3D=3D 1 && dc->cpu->cfg.stackprot) { + if (ra =3D=3D 1 && dc->cfg->stackprot) { gen_helper_stackprot(cpu_env, ret); } return ret; @@ -712,7 +712,7 @@ static TCGv compute_ldst_addr_typeb(DisasContext *dc, i= nt ra, int imm) #ifndef CONFIG_USER_ONLY static TCGv compute_ldst_addr_ea(DisasContext *dc, int ra, int rb) { - int addr_size =3D dc->cpu->cfg.addr_size; + int addr_size =3D dc->cfg->addr_size; TCGv ret =3D tcg_temp_new(); =20 if (addr_size =3D=3D 32 || ra =3D=3D 0) { @@ -772,7 +772,7 @@ static bool do_load(DisasContext *dc, int rd, TCGv addr= , MemOp mop, =20 if (size > MO_8 && (dc->tb_flags & MSR_EE) && - dc->cpu->cfg.unaligned_exceptions) { + dc->cfg->unaligned_exceptions) { record_unaligned_ess(dc, rd, size, false); mop |=3D MO_ALIGN; } @@ -918,7 +918,7 @@ static bool do_store(DisasContext *dc, int rd, TCGv add= r, MemOp mop, =20 if (size > MO_8 && (dc->tb_flags & MSR_EE) && - dc->cpu->cfg.unaligned_exceptions) { + dc->cfg->unaligned_exceptions) { record_unaligned_ess(dc, rd, size, true); mop |=3D MO_ALIGN; } @@ -1325,7 +1325,7 @@ DO_RTS(rtsd, 0) static bool trans_zero(DisasContext *dc, arg_zero *arg) { /* If opcode_0_illegal, trap. */ - if (dc->cpu->cfg.opcode_0_illegal) { + if (dc->cfg->opcode_0_illegal) { trap_illegal(dc, true); return true; } @@ -1658,7 +1658,7 @@ static void mb_tr_init_disas_context(DisasContextBase= *dcb, CPUState *cs) MicroBlazeCPU *cpu =3D MICROBLAZE_CPU(cs); int bound; =20 - dc->cpu =3D cpu; + dc->cfg =3D &cpu->cfg; dc->tb_flags =3D dc->base.tb->flags; dc->ext_imm =3D dc->base.tb->cs_base; dc->r0 =3D NULL; --=20 2.25.1 From nobody Thu May 2 19:54:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1599247160; cv=none; d=zohomail.com; s=zohoarc; b=IqPLT87MUtEKU9wdt6SKRjuU3xZO+pKGNaQaEPgum/ZgtIcNEZyN9X4EiVaOa2CT1iaKUbduag5oieQVyxY9EZkZCcs8+lywAwKrL2d328XkRk8X966lGcEkjncTn4awQgoII+I4ahEK2CzmzXZbJINBhBiLFJ16OCjep/XngD0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599247160; 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=MI85xgpGyBSBN9cbj9PllJj9cCeDay9VieIb0EKJa4A=; b=YNJO25htYNfyGvVCwC9FGqobOs7uE5pYHvDRDESodXQkSks/IX+1Oa2HtLvYPNSSrXCLSxh+Xjw/vgX7yUrFOMqeREEAXh9barwer7HvC/G274xemM9VFpKmHKw1kInKczDn/0sQq9ksJkijMqRCHz9H0QbDFZb7JQdE+qUa16s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599247160145674.758843825383; Fri, 4 Sep 2020 12:19:20 -0700 (PDT) Received: from localhost ([::1]:48182 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kEHF0-0001eN-O7 for importer@patchew.org; Fri, 04 Sep 2020 15:19:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kEH5F-0002D6-Tf for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:13 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:38072) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kEH5E-0000sF-As for qemu-devel@nongnu.org; Fri, 04 Sep 2020 15:09:13 -0400 Received: by mail-pf1-x443.google.com with SMTP id d22so5118930pfn.5 for ; Fri, 04 Sep 2020 12:09:11 -0700 (PDT) Received: from localhost.localdomain ([71.212.141.89]) by smtp.gmail.com with ESMTPSA id x19sm1897941pge.22.2020.09.04.12.09.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2020 12:09:09 -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=MI85xgpGyBSBN9cbj9PllJj9cCeDay9VieIb0EKJa4A=; b=KLdQWUW1UV+GGbMLKgvyDi+K0dkS3KswCfGsc7nljvyB3Qhk/BC9hqLatG6iYSYc2X //fvodfGkI6rEDDpXf101xSNDpQBrYP9E0U4Ry4sMw7fMMMzGBa7mNI5+D9SU9M4XZCL I8bs53nY/tsg8of2F1qjLewXAIoIqnqOh2IvmSa2y8eTwXKjD6mhN28E6uz/H5XTjWRZ SvJLH4s1QudP49H7ATZPp/3lfbIYSNWh5MQbtzy+4zCul+OFaG2rTiMokw5AdUqhxu3Q Y1uQ1a7zZjekkNaRIZUypdmEFSy6SDbb5yKq115VHt8t0+hgmkMaJU+zaLwf/4gyVI/r t1mw== 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=MI85xgpGyBSBN9cbj9PllJj9cCeDay9VieIb0EKJa4A=; b=V+oQTCpl8TTR2JOksWtvaZ/1+f5Yqi5rWgj8nj+QOwvVsOeGtSh9AycWMZrw2JlG9d MZaOQ65NdIjsF1HZ+YjKtcd1gVOCZBV/1jLeGzcPVDtLPfvwooYjNvYfzLjxhnUWRQYj LMmts1mMm8WRl+jDVs/vaJ5fF643vETaEUeFx5MQwX12+cMg8RA9zHUC4FO2x34a+Ofy lfRaYombGXkpgVmAimbJ93V4ElcPfBvyKkr071EFw9AmKGBB52Qe/Cnou3Ne8+cvhhVD LnNODAnNfs1eAvBRXUYbLkFbc4qey9tVEHeaI3EIoz9tIdZJLOarj6kS3gh68nBPg6Ea 0INg== X-Gm-Message-State: AOAM530ZL7z0dwroo+MzhIT/y2CDJYdrbODsuvfRFAJlVo8Eexd09SjP 7GfvaWV7hy2V4yvEHm2IlgqInwY5ravmzA== X-Google-Smtp-Source: ABdhPJz2D2R12i2qksXSprBlINT5XObh8bVnwKcySbr42tkT0kEgpUQ6baTmeaJtPJeeX8lnQZ0dDA== X-Received: by 2002:a63:fe06:: with SMTP id p6mr8287927pgh.337.1599246550673; Fri, 04 Sep 2020 12:09:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 19/19] configure: Do not set TARGET_ABI32 for microblaze Date: Fri, 4 Sep 2020 12:08:42 -0700 Message-Id: <20200904190842.2282109-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904190842.2282109-1-richard.henderson@linaro.org> References: <20200904190842.2282109-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::443; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x443.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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: edgar.iglesias@xilinx.com, Peter Maydell , f4bug@amsat.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" In 19f27b6c2493 TARGET_ABI_LONG was reduced to 32 bits for CONFIG_USER_ONLY. There is no need to set this by hand; it will now be set automatically by include/exec/user/abitypes.h. Reported-by: Peter Maydell Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Tested-by: Edgar E. Iglesias --- configure | 1 - 1 file changed, 1 deletion(-) diff --git a/configure b/configure index f555923311..fbe34dfbbc 100755 --- a/configure +++ b/configure @@ -7740,7 +7740,6 @@ case "$target_name" in TARGET_SYSTBL_ABI=3Dcommon mttcg=3D"yes" bflt=3D"yes" - echo "TARGET_ABI32=3Dy" >> $config_target_mak ;; mips|mipsel) mttcg=3D"yes" --=20 2.25.1