From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028573399100.96271584430554; Sat, 15 Sep 2018 09:22:53 -0700 (PDT) Received: from localhost ([::1]:56114 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DLQ-0008T1-5j for importer@patchew.org; Sat, 15 Sep 2018 12:22:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGW-0004UV-77 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGS-0003rf-Bb for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:47 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:34607) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGS-0003qF-2S for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:44 -0400 Received: by mail-pg1-x541.google.com with SMTP id d19-v6so5764633pgv.1 for ; Sat, 15 Sep 2018 09:17:43 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:41 -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; bh=ZeBhA5gK6Nz1BUUeKdqdNFL5VVM/P7Tt/zCtWw9GfPs=; b=ZipBv+TRAxaO5DErzuMe4OEJGjbVr9s4j9CtUshJsEHnvnbeXQpx3GJoYcVclumgTd o4dHh1ygGFnQNJcO2hvHZE+zCVq/9w3yNc+Sj4YunmQ9WeGoBsVDqDFbFIEDDARxGDqN KvIAFpQBML9wFD3Nt9t3BT9sBniA1wOvWb7es= 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; bh=ZeBhA5gK6Nz1BUUeKdqdNFL5VVM/P7Tt/zCtWw9GfPs=; b=O+bNDjF4K3+SwhAtyacmLHHj7rWWcEZ7hanBxsiIY9nNZdqWZu59O37K7zslAiHyaz fJzGDvuvVwUnEU3cV33soxfqVlTU6IDgwXLw4ByXdjwjG7Uxjiyr2ZemRRU8DUlKM3qL UaMilqpY2N0myzk7QiepwPKSEKLWWu24YJz3dsrFdJnfy+XtIZyO7Wt99KIiuKDe/yCf Psiw5i4ieMdbd43U0TMm0sye24Q778dwhcwUord1xuHnyHh+TqolxKwG8eSJ0UWqFCdX Xzl/Lpz2HZagsgS4l81YOUOXVCfOgtnHlfNc6Yr57Ffivh5VOZC3+VfOFXVtwi0ZAnz5 80kQ== X-Gm-Message-State: APzg51D21SKdlmBLWVwRhreyce2udLenDALuYAeEbhuXZAZJfHzPCLMy 43iwkv31yZYkEahZO5enwPBTB/NAMCw= X-Google-Smtp-Source: ANB0VdYjjFA1BSWXtPew8jr5vAxyp0E1rbBKxoFGGDK/42VdYYWjr0oqbQ0CYNAyF79B+sL9IXqeSw== X-Received: by 2002:a62:4e56:: with SMTP id c83-v6mr18189248pfb.240.1537028262612; Sat, 15 Sep 2018 09:17:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:26 -0700 Message-Id: <20180915161738.25257-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 Subject: [Qemu-devel] [PATCH 01/13] target/arm: Add ARM_FEATURE_SWP X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" These insns have been removed from the ISA, but are also not present on some cpus with V7VE. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.h | 1 + linux-user/elfload.c | 3 ++- target/arm/cpu.c | 10 ++++++++++ target/arm/translate.c | 4 ++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 65c0fa0a65..acfb2f9104 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1495,6 +1495,7 @@ enum arm_features { ARM_FEATURE_V8_FP16, /* implements v8.2 half-precision float */ ARM_FEATURE_V8_FCMA, /* has complex number part of v8.3 extensions. */ ARM_FEATURE_M_MAIN, /* M profile Main Extension */ + ARM_FEATURE_SWP, /* implements swp/swpb */ }; =20 static inline int arm_feature(CPUARMState *env, int feature) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 8638612aec..fcac2563f1 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -450,7 +450,6 @@ static uint32_t get_elf_hwcap(void) ARMCPU *cpu =3D ARM_CPU(thread_cpu); uint32_t hwcaps =3D 0; =20 - hwcaps |=3D ARM_HWCAP_ARM_SWP; hwcaps |=3D ARM_HWCAP_ARM_HALF; hwcaps |=3D ARM_HWCAP_ARM_THUMB; hwcaps |=3D ARM_HWCAP_ARM_FAST_MULT; @@ -458,7 +457,9 @@ static uint32_t get_elf_hwcap(void) /* probe for the extra features */ #define GET_FEATURE(feat, hwcap) \ do { if (arm_feature(&cpu->env, feat)) { hwcaps |=3D hwcap; } } while = (0) + /* EDSP is in v5TE and above, but all our v5 CPUs are v5TE */ + GET_FEATURE(ARM_FEATURE_SWP, ARM_HWCAP_ARM_SWP); GET_FEATURE(ARM_FEATURE_V5, ARM_HWCAP_ARM_EDSP); GET_FEATURE(ARM_FEATURE_VFP, ARM_HWCAP_ARM_VFP); GET_FEATURE(ARM_FEATURE_IWMMXT, ARM_HWCAP_ARM_IWMMXT); diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 258ba6dcaa..3bc7a16327 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1075,6 +1075,7 @@ static void arm926_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); set_feature(&cpu->env, ARM_FEATURE_CACHE_TEST_CLEAN); set_feature(&cpu->env, ARM_FEATURE_JAZELLE); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x41069265; cpu->reset_fpsid =3D 0x41011090; cpu->ctr =3D 0x1dd20d2; @@ -1089,6 +1090,7 @@ static void arm946_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_V5); set_feature(&cpu->env, ARM_FEATURE_PMSA); set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x41059461; cpu->ctr =3D 0x0f004006; cpu->reset_sctlr =3D 0x00000078; @@ -1105,6 +1107,7 @@ static void arm1026_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); set_feature(&cpu->env, ARM_FEATURE_CACHE_TEST_CLEAN); set_feature(&cpu->env, ARM_FEATURE_JAZELLE); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x4106a262; cpu->reset_fpsid =3D 0x410110a0; cpu->ctr =3D 0x1dd20d2; @@ -1139,6 +1142,7 @@ static void arm1136_r2_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); set_feature(&cpu->env, ARM_FEATURE_CACHE_DIRTY_REG); set_feature(&cpu->env, ARM_FEATURE_CACHE_BLOCK_OPS); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x4107b362; cpu->reset_fpsid =3D 0x410120b4; cpu->mvfr0 =3D 0x11111111; @@ -1171,6 +1175,7 @@ static void arm1136_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); set_feature(&cpu->env, ARM_FEATURE_CACHE_DIRTY_REG); set_feature(&cpu->env, ARM_FEATURE_CACHE_BLOCK_OPS); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x4117b363; cpu->reset_fpsid =3D 0x410120b4; cpu->mvfr0 =3D 0x11111111; @@ -1204,6 +1209,7 @@ static void arm1176_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_CACHE_DIRTY_REG); set_feature(&cpu->env, ARM_FEATURE_CACHE_BLOCK_OPS); set_feature(&cpu->env, ARM_FEATURE_EL3); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x410fb767; cpu->reset_fpsid =3D 0x410120b5; cpu->mvfr0 =3D 0x11111111; @@ -1235,6 +1241,7 @@ static void arm11mpcore_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_VAPA); set_feature(&cpu->env, ARM_FEATURE_MPIDR); set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x410fb022; cpu->reset_fpsid =3D 0x410120b4; cpu->mvfr0 =3D 0x11111111; @@ -1378,6 +1385,7 @@ static void cortex_r5_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_ARM_DIV); set_feature(&cpu->env, ARM_FEATURE_V7MP); set_feature(&cpu->env, ARM_FEATURE_PMSA); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x411fc153; /* r1p3 */ cpu->id_pfr0 =3D 0x0131; cpu->id_pfr1 =3D 0x001; @@ -1426,6 +1434,7 @@ static void cortex_a8_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_THUMB2EE); set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); set_feature(&cpu->env, ARM_FEATURE_EL3); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x410fc080; cpu->reset_fpsid =3D 0x410330c0; cpu->mvfr0 =3D 0x11110222; @@ -1500,6 +1509,7 @@ static void cortex_a9_initfn(Object *obj) */ set_feature(&cpu->env, ARM_FEATURE_V7MP); set_feature(&cpu->env, ARM_FEATURE_CBAR); + set_feature(&cpu->env, ARM_FEATURE_SWP); cpu->midr =3D 0x410fc090; cpu->reset_fpsid =3D 0x41033090; cpu->mvfr0 =3D 0x11110222; diff --git a/target/arm/translate.c b/target/arm/translate.c index c6a5d2ac44..2688380ae6 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -9390,6 +9390,10 @@ static void disas_arm_insn(DisasContext *s, unsigned= int insn) TCGv taddr; TCGMemOp opc =3D s->be_data; =20 + if (!arm_dc_feature(s, ARM_FEATURE_SWP)) { + goto illegal_op; + } + rm =3D (insn) & 0xf; =20 if (insn & (1 << 22)) { --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028406615607.0926917713157; Sat, 15 Sep 2018 09:20:06 -0700 (PDT) Received: from localhost ([::1]:56098 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DIf-0005i2-PF for importer@patchew.org; Sat, 15 Sep 2018 12:20:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGY-0004Ue-5M for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGW-0003vP-73 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:50 -0400 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]:43018) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGU-0003rs-6u for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:46 -0400 Received: by mail-pg1-x52b.google.com with SMTP id v66-v6so5742937pgb.10 for ; Sat, 15 Sep 2018 09:17:44 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:42 -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; bh=rwcYuZ5kPERbTjWG0XDUEgttRImNBrSZ5trQPvNeXok=; b=KBPJViXnbHycONNeMvaSvVeidbvRDpy9za0SgbjT+idTaFbdYuw+WLaWD2Zm5snySs R3Du6NIoIG3+oqpGc03cpRF3bDRFCCy99A+Ued/OUJ+kbkrXjJlt+tRIZ7/8p5cNfUkI jBf5ueu4vJQNk/lJEw16eHuoHY/yUGI6H9myY= 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; bh=rwcYuZ5kPERbTjWG0XDUEgttRImNBrSZ5trQPvNeXok=; b=eP/26tE6dXfFZ1iSjVKcETZI7a/FmYEn+YlZwxg7j/DvOXNVlsJYfT+4cKvQwXHi/9 9uCHdFpDch2X9KJioRqwn8DsImgUlTrrBEqS3VSXXHmf3sM9Yictl1Kdg9Q5mpLVM8YP W4ZfDBE12S/5sKm4gKsGKZHIEdHQ8M5gQ7C+k1sKMnUoxrMGUeDMQyQe5VmujDKiB43B PpPdX1hGpGkVy2BXmX0GMP7h/9oGLFhUY8gJEHUl3BUPRg0j9KbZzmEJ4BNo/n18uvUr CNW572Wx0fhwTp2kfw1f4slXSBRGlFUeHY6RC8s0nX8c5k6cvEfk9dyXP776mzcIlzuV 95Xg== X-Gm-Message-State: APzg51BEEXI72nSDkjA6Dv8ljLRI943nO2nFJZksehETrlT0OA9WDefT BC5Xzyg7upjhi+juag4YNWL1w+yr6sk= X-Google-Smtp-Source: ANB0VdZJlYbgdUGT7hWn9jdLRqJbINHvuZ1Aa0MrV9DtEVE7/yUvE2+SDcJMW3QXj39l43aszMWdGg== X-Received: by 2002:a62:7e93:: with SMTP id z141-v6mr18084537pfc.14.1537028263749; Sat, 15 Sep 2018 09:17:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:27 -0700 Message-Id: <20180915161738.25257-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52b Subject: [Qemu-devel] [PATCH 02/13] target/arm: Derive id_isar0 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? Test with -machine none -cpu foo. ??? The assertion does fire for quite a lot of cpus, ??? but quite a few of them appear to be existing bugs. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 3bc7a16327..44483e3dea 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -756,6 +756,50 @@ static void arm_cpu_finalizefn(Object *obj) } } =20 +static uint32_t resolve_id_isar0(CPUARMState *env, uint32_t orig) +{ + uint32_t ret =3D 0; + + if (arm_feature(env, ARM_FEATURE_SWP)) { + ret =3D deposit32(ret, 0, 4, 1); /* Swap */ + } + if (arm_feature(env, ARM_FEATURE_V5)) { + ret =3D deposit32(ret , 4, 4, 1); /* BitCount */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2)) { + ret =3D deposit32(ret, 8, 4, 1); /* BitField */ + ret =3D deposit32(ret, 12, 4, 1); /* CmpBranch */ + } + + /* + * Coproc -- generically, v5te has mcrr (3), v6 has mcrr2 (4), + * and v8 requires none (0). There does not appear to be a way + * to guess the value though, as some v6 and v7 cores also use none. + */ + ret |=3D orig & MAKE_64BIT_MASK(16, 4); + + if (arm_feature(env, ARM_FEATURE_V5)) { + ret =3D deposit32(ret, 20, 4, 1); /* Debug */ + } + /* Divide */ + if (arm_feature(env, ARM_FEATURE_ARM_DIV)) { + ret =3D deposit32(ret, 24, 4, 2); + } else if (arm_feature(env, ARM_FEATURE_THUMB_DIV)) { + ret =3D deposit32(ret, 24, 4, 1); + } + + return ret; +} + +static void resolve_id_regs(ARMCPU *cpu) +{ + CPUARMState *env =3D &cpu->env; + uint64_t orig; + + cpu->id_isar0 =3D resolve_id_isar0(env, orig =3D cpu->id_isar0); + g_assert_cmphex(cpu->id_isar0, =3D=3D, orig); +} + static void arm_cpu_realizefn(DeviceState *dev, Error **errp) { CPUState *cs =3D CPU(dev); @@ -1003,6 +1047,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error= **errp) set_feature(env, ARM_FEATURE_VBAR); } =20 + resolve_id_regs(cpu); register_cp_regs_for_features(cpu); arm_cpu_register_gdb_regs_for_features(cpu); =20 --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028405077263.2161627204965; Sat, 15 Sep 2018 09:20:05 -0700 (PDT) Received: from localhost ([::1]:56099 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DIh-0005iy-SS for importer@patchew.org; Sat, 15 Sep 2018 12:20:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGZ-0004VY-Ce for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGY-0003wi-1m for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:51 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:41556) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGW-0003tW-57 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:48 -0400 Received: by mail-pl1-x641.google.com with SMTP id b12-v6so5519591plr.8 for ; Sat, 15 Sep 2018 09:17:46 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:44 -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; bh=KmfQb6CgWMOtHBBehbdrq8gACsfnGvLxYEnfidsiT6o=; b=cg0g8gFlOrjr6KNZ7eUiku6rAXXSvXddrkKoiHb4Pvm3C7kkMS8Elq53sKYP2XGB52 HPXe2c7fcKerfa7uV64K89OHdiDX+AufvF3X8c6t/PyDGFEn3t7nQNwOg57h9Z+k0Vm4 WjlX+gyL2AxJpKsXkQ9rbCNudjiDKBgHjEOns= 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; bh=KmfQb6CgWMOtHBBehbdrq8gACsfnGvLxYEnfidsiT6o=; b=j6QDBzPHMCpaimqdE5rUb5aIKmlX5hajStIv3pn6fd2xD1tO3+KJ1Du8xbNL6PPIoQ 70pyS3dprjACc72a1liyx/Wh2Rc5TPcPBnQgxWPR1vuyYtj/vFAKApHNI3ZD0xrUl0lx qKyDkiu3XLtGQgvyjUZXx/paiDVoWhtj5SMNiDre0TT3JP1MxaJPnwQ6+YFT9DkDIwrR i+MyuLqb9mF7NRpkZMzsVz35JEXUKE2fudKFaOPBYCK1c1bAW9k6OF3nCoLk6bu5CMwL fU5RJ7Gpn8YM78J9K4Nn5vMjjS21pNzUERlZ2TaOZ6XminnwcQtLnI89I1CThnuJUBp2 y12A== X-Gm-Message-State: APzg51C2whDbRBI2HxzMr69+DiCeIvDU/OtT4mRzgWpOcNxb3HNZA7GS dcZqZOoSelMrTBxKI9U1HcqSpZ4N3Rc= X-Google-Smtp-Source: ANB0VdYuePVDpfM8Myixxb8jPag77oB1zsUpUdjR/H7pU9zgg82BffWu8CW744Mb72y9MlqWTQKByA== X-Received: by 2002:a17:902:14e:: with SMTP id 72-v6mr17237775plb.299.1537028265120; Sat, 15 Sep 2018 09:17:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:28 -0700 Message-Id: <20180915161738.25257-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 Subject: [Qemu-devel] [PATCH 03/13] target/arm: Derive id_isar1 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? The assertion does fire for quite a lot of cpus, ??? but quite a few of them appear to be existing bugs. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 44483e3dea..a477e722af 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -791,13 +791,48 @@ static uint32_t resolve_id_isar0(CPUARMState *env, ui= nt32_t orig) return ret; } =20 +static uint32_t resolve_id_isar1(CPUARMState *env) +{ + uint32_t ret =3D 0; + + if (arm_feature(env, ARM_FEATURE_V6)) { + ret =3D deposit32(ret, 0, 4, 1); /* Endian */ + if (!arm_feature(env, ARM_FEATURE_M)) { + ret =3D deposit32(ret, 4, 4, 1); /* Except */ + ret =3D deposit32(ret, 8, 4, 1); /* Except_AR */ + } + /* Extend */ + ret =3D deposit32(ret, 12, 4, + arm_feature(env, ARM_FEATURE_THUMB_DSP) ? 2 := 1); + } + if (arm_feature(env, ARM_FEATURE_THUMB2)) { + ret =3D deposit32(ret, 16, 4, 1); /* IfThen */ + ret =3D deposit32(ret, 20, 4, 1); /* Immediate */ + } + /* Interwork -- note we don't support pre-armv4t. */ + ret =3D deposit32(ret, 24, 4, + arm_feature(env, ARM_FEATURE_V7) + && !arm_feature(env, ARM_FEATURE_M) ? 3 : + arm_feature(env, ARM_FEATURE_V5) ? 2 : 1); + if (arm_feature(env, ARM_FEATURE_JAZELLE)) { + ret =3D deposit32(ret, 28, 4, 1); /* Jazelle */ + } + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; uint64_t orig; =20 - cpu->id_isar0 =3D resolve_id_isar0(env, orig =3D cpu->id_isar0); + orig =3D cpu->id_isar0; + cpu->id_isar0 =3D resolve_id_isar0(env, orig); g_assert_cmphex(cpu->id_isar0, =3D=3D, orig); + + orig =3D cpu->id_isar1; + cpu->id_isar1 =3D resolve_id_isar1(env); + g_assert_cmphex(cpu->id_isar1, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15370285804100.9369624639917902; Sat, 15 Sep 2018 09:23:00 -0700 (PDT) Received: from localhost ([::1]:56116 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DLX-0000Iv-2G for importer@patchew.org; Sat, 15 Sep 2018 12:22:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60157) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGZ-0004Vb-E8 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGY-0003wt-5W for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:51 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]:41796) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGW-0003uV-8Q for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:49 -0400 Received: by mail-pg1-x530.google.com with SMTP id s15-v6so5749458pgv.8 for ; Sat, 15 Sep 2018 09:17:47 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=8tq7ljLEg+ZEL7FdvFxOiLdkjOjupm3VfXgk7BqhQxQ=; b=IMwrJE7wwr2qSvfzT8rBltBm4E1azbnZx53rG0mZLyzLTERlvG46DK50Y/n2t5w6lE kJMbpGLjxw/mTJDRYn6RyEAVfpHzKSadvnOr9daIpfjZ7oNIZNLThVQwoqiMXc0TVsOi qdc0szoG48W1zpbIAI9XzxW1og1Quwr6Bxy14= 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; bh=8tq7ljLEg+ZEL7FdvFxOiLdkjOjupm3VfXgk7BqhQxQ=; b=SQ0gUaQMRGUZZCRjavFroegcoeii18XwEOXez81p2nG5dsnyWMMoVXj6g8U0mHduaG hOSYRRsViS2JUKurt3NE5oLTmbAGyp/yyFr3ulQPRHoZivJ36tJmMrXNZqr4OslxssWi jCJZhEDHgs5ZhI4U6LN1TOevz2c0V7VTUuhIAgzgCW0cQVfGZ45YB/p/kn0pEGyhm6n9 ms5Cr8JXMDw9R/aH3hIrKEerUTvmRBYeLL1wjaZIV3EAg6CLLm7ZZiMDvtePy13SMfYR qBYqwconztdcGOl6eOphhv/Y77cEZY9ShkbCDncczIkrdm7YmJvNaQxQnTN18Lmmw3Mf UdLQ== X-Gm-Message-State: APzg51CXv6u8d74fBKk2+jensolnj4HAMesCvj9A470B0u/RZcq9w5hU Zpa7OLXaId3ll9N9ChYq8gYjyQ8qOY8= X-Google-Smtp-Source: ANB0VdZDw6h9B1g0xtzmSoOijHAuUaNmI1R/7kLMg3lJ0axbHvil4WAm9ml34Fo+JW0sVHMuua4u2g== X-Received: by 2002:aa7:818f:: with SMTP id g15-v6mr17920249pfi.71.1537028266511; Sat, 15 Sep 2018 09:17:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:29 -0700 Message-Id: <20180915161738.25257-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::530 Subject: [Qemu-devel] [PATCH 04/13] target/arm: Derive id_isar2 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? The assertion does fire for the old cpus; they may be existing bugs. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index a477e722af..379d6a08a4 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -821,6 +821,40 @@ static uint32_t resolve_id_isar1(CPUARMState *env) return ret; } =20 +static uint32_t resolve_id_isar2(CPUARMState *env, uint32_t orig) +{ + uint32_t ret =3D 0; + + /* LoadStore */ + ret =3D deposit32(ret, 0, 4, + arm_feature(env, ARM_FEATURE_V8) ? 2 : + arm_feature(env, ARM_FEATURE_V5) ? 1 : 0); + /* + * MemHint -- v7mp has pldw (4), v7 has pli (3), but values 1 & 2 + * mean the same thing, and there does not seem to be a way to tell + * them apart for v5 & v6. + */ + ret |=3D orig & MAKE_64BIT_MASK(4, 4); + /* MultiAccessInt -- micro-architectural detail. */ + ret |=3D orig & MAKE_64BIT_MASK(8, 4); + /* Mult -- note we don't support pre-armv4t. */ + ret =3D deposit32(ret, 12, 4, arm_feature(env, ARM_FEATURE_THUMB2) ? 2= : 1); + /* MultS -- note we don't support pre-armv4t. */ + ret =3D deposit32(ret, 16, 4, + arm_feature(env, ARM_FEATURE_V6) ? 3 : + arm_feature(env, ARM_FEATURE_V5) ? 2 : 1); + /* MultU -- note we don't support pre-armv4t. */ + ret =3D deposit32(ret, 20, 4, arm_feature(env, ARM_FEATURE_V6) ? 2 : 1= ); + /* PSR_AR */ + ret =3D deposit32(ret, 24, 4, arm_feature(env, ARM_FEATURE_M) ? 0 : 1); + /* Reversal */ + ret =3D deposit32(ret, 28, 4, + arm_feature(env, ARM_FEATURE_THUMB2) ? 2 : + arm_feature(env, ARM_FEATURE_V6) ? 1 : 0); + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -833,6 +867,10 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_isar1; cpu->id_isar1 =3D resolve_id_isar1(env); g_assert_cmphex(cpu->id_isar1, =3D=3D, orig); + + orig =3D cpu->id_isar2; + cpu->id_isar2 =3D resolve_id_isar2(env, orig); + g_assert_cmphex(cpu->id_isar2, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028406593460.26793825397795; Sat, 15 Sep 2018 09:20:06 -0700 (PDT) Received: from localhost ([::1]:56097 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DIf-0005hS-MR for importer@patchew.org; Sat, 15 Sep 2018 12:20:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60158) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGZ-0004Vc-ED for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGY-0003xJ-Az for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:51 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:39259) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGY-0003w9-3h for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:50 -0400 Received: by mail-pl1-x62b.google.com with SMTP id w14-v6so5512224plp.6 for ; Sat, 15 Sep 2018 09:17:49 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:47 -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; bh=tvi/mbA94iRKAk5mttQm6rCEMmYUp5dXIsY8p9CRUYY=; b=TYY+fSxtXBcctqHueHLhbfJ2zyiljNNxvf1aNcrRuZaFNdreBwyWROyTMU9Fr9Q/G8 ABByykeFGDGAJjwB6reowt/XxAe+1HclVNvhOuRR25IwvYxDEykqhvulHejpABIr+ta9 W2sb1gRqerxzY/h3SxInGp6ujtPtXgOAUPNf4= 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; bh=tvi/mbA94iRKAk5mttQm6rCEMmYUp5dXIsY8p9CRUYY=; b=FXdYGhWzyuM37yIqkfXO+gSgn1bDRUotorcwNOwSrQ2UewVNrk0eP8lKo/cUE5gJon bxSQXlEvGtqiZvy0qr6O65SLbkvyTsYwykAL6/b6UWM3OSkmMJ/yZj/JxB7NdtO8cvjp LOJgPo9dqCg5l0tmRoEpdNkVbddgYstnEnAeobfWx51XutngvqVZfJkon6hboVl4xDfI 2+LMTTLRO3T54ZdecrfvUiyAFk7418IJxRJ0cOVCT7XJw7VB6UgywRqFmufbRHAklKXW KHp9VIzTLnMADXHbQD7UHi4/E50EhhakK78rH78huEezr33kBlzPPOnYdJKK4nrf5FCg cvZQ== X-Gm-Message-State: APzg51AoD6GcevWi6c55bqEZ+vjFEvFQLtBrMBJdpH2y7hSRf09Veyqw 8ncjTQlwg8kGkf3c4uRxth7p7wHAtvo= X-Google-Smtp-Source: ANB0VdbmWctPO1HumJvcHo5I9H8k/DuZp6YdfgVoo+/d9ZURJVluToVBv5n7RBC+zQo9Fq7DO1x4qQ== X-Received: by 2002:a17:902:59ce:: with SMTP id d14-v6mr17330308plj.42.1537028267905; Sat, 15 Sep 2018 09:17:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:30 -0700 Message-Id: <20180915161738.25257-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::62b Subject: [Qemu-devel] [PATCH 05/13] target/arm: Derive id_isar3 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? The assertion does fire for the old cpus; they may be existing bugs. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 379d6a08a4..2b199845fc 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -855,6 +855,38 @@ static uint32_t resolve_id_isar2(CPUARMState *env, uin= t32_t orig) return ret; } =20 +static uint32_t resolve_id_isar3(CPUARMState *env) +{ + uint32_t ret =3D 0; + + if (arm_feature(env, ARM_FEATURE_V5)) { + ret =3D deposit32(ret, 0, 4, 1); /* Saturate */ + } + if (arm_feature(env, ARM_FEATURE_V6)) { + ret =3D deposit32(ret, 4, 4, 3); /* SIMD */ + } + ret =3D deposit32(ret, 8, 4, 1); /* SVC -- no pre-armv4= t */ + /* SynchPrim */ + if (arm_feature(env, ARM_FEATURE_V6K)) { + ret =3D deposit32(ret, 12, 4, 2); /* ldrex, ldrexb, ldre= xd */ + } else if (arm_feature(env, ARM_FEATURE_V6)) { + ret =3D deposit32(ret, 12, 4, 1); /* ldrex only */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2)) { + ret =3D deposit32(ret, 16, 4, 1); /* TabBranch */ + ret =3D deposit32(ret, 20, 4, 1); /* T32Copy */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2) || + arm_feature(env, ARM_FEATURE_V6K)) { + ret =3D deposit32(ret, 24, 4, 1); /* TrueNOP */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2EE)) { + ret =3D deposit32(ret, 28, 4, 1); /* T32EE */ + } + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -871,6 +903,10 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_isar2; cpu->id_isar2 =3D resolve_id_isar2(env, orig); g_assert_cmphex(cpu->id_isar2, =3D=3D, orig); + + orig =3D cpu->id_isar3; + cpu->id_isar3 =3D resolve_id_isar3(env); + g_assert_cmphex(cpu->id_isar3, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028577696500.65443563949975; Sat, 15 Sep 2018 09:22:57 -0700 (PDT) Received: from localhost ([::1]:56115 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DLU-0000Gv-AN for importer@patchew.org; Sat, 15 Sep 2018 12:22:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60165) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGZ-0004Vm-Ml for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGY-0003xY-KM for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:51 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:43668) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGY-0003wb-Dy for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:50 -0400 Received: by mail-pl1-x62b.google.com with SMTP id f66-v6so5523177plb.10 for ; Sat, 15 Sep 2018 09:17:50 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=VMUIk1o86kq7ilsu3dulB0Zcq4Bgif0IEpo1hy0Ljxs=; b=EkbN+nuEjzXp3iIpw5ZtRx/kO3v9HMKRJkmLP9Swf/ABwO6Pmnt46aR+5/5cOVCbiG B2k4IlORLBGQaDdr55vPBsxhDB/Xb/cRSdRV23FluJN2JJ3ffowm36kIUJUCPH5UbFed 1HoYDBwbfcc7s1JTGnDPEYJ5rl+kjx7iQrzvc= 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; bh=VMUIk1o86kq7ilsu3dulB0Zcq4Bgif0IEpo1hy0Ljxs=; b=mWvMrV3u+tzOxRWmgg3t4Fr0/TrnPJYf5clNvN9ckk3yflGkqN3Ajdlu7FDogzP70w RexmX0oYOdkFeFHNzvMxqykDBxP1qH80GXFMYwHp3tgaeMuToAJ/X5JZ2hZRoUCHaclC BJb5Wx+hXvYIXNP0LkJoM3E/qefYn8wy6ieznt/GhBP2lUs8E821Byx90HYSKf5KvDuk 7D1IEtjLpaY1RGw4HAo145KRyrO1Z2GMvq6C/insWXL6spw3Xf+yRRGhk00FvVIL6CJi biM/SToKaqwoXnTdGeKr81FTeJRopLMXfIclILV4PKqx83TsHbI2PT8jUhOKsneEbQ1t eOAA== X-Gm-Message-State: APzg51ApoTCXAh/KRH73ggwwesViPeG6AaoTwHAsaXu8qVXbniWDzmUy 2dxXTAMhwGpbpxs0e/Zr7BJ35g31Rzg= X-Google-Smtp-Source: ANB0Vdb8MPufUfIDHXLerT70zs+8ma+OS5d/q6LxbHjFMydzgNL6/jmfCwM+sU+PhTPRamwTxeLKOg== X-Received: by 2002:a17:902:e109:: with SMTP id cc9-v6mr17254683plb.96.1537028269258; Sat, 15 Sep 2018 09:17:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:31 -0700 Message-Id: <20180915161738.25257-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::62b Subject: [Qemu-devel] [PATCH 06/13] target/arm: Derive id_isar4 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? The assertion does fire for the old cpus; they may be existing bugs. ??? Willfully provide a value for SWP_frac that matches our implementation. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 2b199845fc..3c6ddd6532 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -887,6 +887,45 @@ static uint32_t resolve_id_isar3(CPUARMState *env) return ret; } =20 +static uint32_t resolve_id_isar4(CPUARMState *env) +{ + uint32_t ret =3D 0; + + /* Unpriv -- note we don't support pre-armv4t. */ + ret =3D deposit32(ret, 0, 4, arm_feature(env, ARM_FEATURE_THUMB2) ? 2 = : 1); + /* WithShifts */ + if (!arm_feature(env, ARM_FEATURE_M)) { + ret =3D deposit32(ret, 4, 4, 4); + } else if (arm_feature(env, ARM_FEATURE_V8)) { + ret =3D deposit32(ret, 4, 4, 3); + } + ret =3D deposit32(ret, 8, 4, 1); /* Writeback */ + if (arm_feature(env, ARM_FEATURE_EL3)) { + /* Note that EL3 indicates Security Extensions. */ + /* ??? In translate.c we check V6K instead. */ + ret =3D deposit32(ret, 12, 4, 1); /* SMC */ + } + if (arm_feature(env, ARM_FEATURE_V7)) { + ret =3D deposit32(ret, 16, 4, 1); /* Barrier */ + } + if (!arm_feature(env, ARM_FEATURE_V6K) && + arm_feature(env, ARM_FEATURE_V6)) { + ret =3D deposit32(ret, 20, 4, 3); /* SyncPrim_frac */ + } + if (arm_feature(env, ARM_FEATURE_M)) { + ret =3D deposit32(ret, 24, 4, 1); /* PSR_M */ + } + /* + * SWP_frac -- Value 1 indicates that SWP and SWPB only work in a + * uniprocessor context. Looking at ARM_FEATURE_SWP, we will have + * already set ID_ISAR0.Swap to 1, which means that SWP_frac must + * be ignored. While leaving this field 0 may not match certain + * real cpus, it is correct with respect to our implementation. + */ + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -907,6 +946,11 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_isar3; cpu->id_isar3 =3D resolve_id_isar3(env); g_assert_cmphex(cpu->id_isar3, =3D=3D, orig); + + orig =3D cpu->id_isar4; + cpu->id_isar4 =3D resolve_id_isar4(env); + /* Willfully ignore the SWP_frac field. */ + g_assert_cmphex(cpu->id_isar4 & 0x0fffffff, =3D=3D, orig & 0x0fffffff); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028751372476.22411718996307; Sat, 15 Sep 2018 09:25:51 -0700 (PDT) Received: from localhost ([::1]:56130 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DOF-0002hJ-1d for importer@patchew.org; Sat, 15 Sep 2018 12:25:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60217) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGe-0004Zz-0G for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGa-000429-QC for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:55 -0400 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:33563) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGZ-0003yR-Vo for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:52 -0400 Received: by mail-pg1-x542.google.com with SMTP id s7-v6so5767063pgc.0 for ; Sat, 15 Sep 2018 09:17:51 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=b6nRAODSj3A+njpmEvkKG6MZDCxoqpBC7OBUkW09dQw=; b=Dm91mEnTKO40yVZECepwOevFnZucSkWmooWqfOnIkpX9a1/vzU8Oy+ud7N7ezr5jBz u2eqJz5GQgkKQMuOPpNm9lCZFuoQxXnLj+U9/+vGdDNyENaMEoeh5xMSw55vNgFUBtpZ 8wg8h1dwLe/+COYcCNhC1d95fymUR2pXk4FIw= 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; bh=b6nRAODSj3A+njpmEvkKG6MZDCxoqpBC7OBUkW09dQw=; b=aP1wFh0p4uOCuLRWmi1TKW53P86Lz1B7ceap23DDGrhVQNxYD++H9I5BaSzDtZq1Oj nIHX0Iaj1TUBoCbaZWpyRSwoq3a3JuW7O/XOBPGUmrdQmcGhq89Vmh4mQtZORrqBWvqY Q8mpzrLsKw/ubyXYgKmaVf92b0E6ac3Hb8dvZnvF5get6/BlyMcFM1WespjKBPfmjULo KjndRySERcD3PirfUG0VTW3DAuwPFdedVSkVJ3WHw3qkYVtBGfQPk2Of5d+Wdo2AD3cC FNtZYon0w0RmQK6WwALUEb0FfaGrpTJEuz3mXGXTzGvLSQddXGleTN8vuFnRv+G499OQ WT8w== X-Gm-Message-State: APzg51AaPw00Xm07zG2C/EAbDOVJ3Jf9O+DjQWsD6HXCXtEetK9VOrbC ih90UgT4FtXOAsFe1QUsfk23woGLk0I= X-Google-Smtp-Source: ANB0VdZpDNqF70AknDx/iSMsBye2GLMrjniR5MmRhmhrJJXtHACg2wXwuj+8JJjuDVO+bs+i9NHpqQ== X-Received: by 2002:a63:a619:: with SMTP id t25-v6mr16514274pge.288.1537028270562; Sat, 15 Sep 2018 09:17:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:32 -0700 Message-Id: <20180915161738.25257-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::542 Subject: [Qemu-devel] [PATCH 07/13] target/arm: Derive id_isar5 and id_isar6 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Unlike the other id_sar registers, these contain post-v8.0 features that are not included with any existing cpu models. They would be enabled by -cpu max when we enable them for system mode. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 3c6ddd6532..c227044946 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -926,6 +926,49 @@ static uint32_t resolve_id_isar4(CPUARMState *env) return ret; } =20 +static uint32_t resolve_id_isar5(CPUARMState *env) +{ + uint32_t ret =3D 0; + + /* SEVL -- we always implement as NOP. */ + /* AES */ + if (arm_feature(env, ARM_FEATURE_V8_PMULL)) { + ret =3D deposit32(ret, 4, 4, 2); + } else if (arm_feature(env, ARM_FEATURE_V8_AES)) { + ret =3D deposit32(ret, 4, 4, 1); + } + if (arm_feature(env, ARM_FEATURE_V8_SHA1)) { + ret =3D deposit32(ret, 8, 4, 1); /* SHA1 */ + } + if (arm_feature(env, ARM_FEATURE_V8_SHA256)) { + ret =3D deposit32(ret, 12, 4, 1); /* SHA2 */ + } + if (arm_feature(env, ARM_FEATURE_CRC)) { + ret =3D deposit32(ret, 16, 4, 1); /* CRC32 */ + } + if (arm_feature(env, ARM_FEATURE_V8_RDM)) { + ret =3D deposit32(ret, 24, 4, 1); /* RDM */ + } + if (arm_feature(env, ARM_FEATURE_V8_FCMA)) { + ret =3D deposit32(ret, 28, 4, 1); /* VCMA */ + } + + return ret; +} + +static uint32_t resolve_id_isar6(CPUARMState *env) +{ + uint32_t ret =3D 0; + + /* JSCVT -- not implemented yet */ + /* FHM -- not implemented yet */ + if (arm_feature(env, ARM_FEATURE_V8_DOTPROD)) { + ret =3D deposit32(ret, 4, 4, 1); /* DP */ + } + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -951,6 +994,9 @@ static void resolve_id_regs(ARMCPU *cpu) cpu->id_isar4 =3D resolve_id_isar4(env); /* Willfully ignore the SWP_frac field. */ g_assert_cmphex(cpu->id_isar4 & 0x0fffffff, =3D=3D, orig & 0x0fffffff); + + cpu->id_isar5 =3D resolve_id_isar5(env); + cpu->id_isar6 =3D resolve_id_isar6(env); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028584228971.375378606798; Sat, 15 Sep 2018 09:23:04 -0700 (PDT) Received: from localhost ([::1]:56117 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DLb-0000LX-3k for importer@patchew.org; Sat, 15 Sep 2018 12:23:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGd-0004Zv-W4 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGc-00043R-1c for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:55 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]:43669) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGb-00040p-4p for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:53 -0400 Received: by mail-pl1-x62c.google.com with SMTP id f66-v6so5523197plb.10 for ; Sat, 15 Sep 2018 09:17:53 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:51 -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; bh=k+TNqtjUjOGSK55CCIwBJa0g8BPa9U7tdVQTrJqAV3A=; b=cFBRopNEZ0/35dSj2tylOXIiuAe/IORloKpns8/7dcTm67RLpfm9HIEBHf+LaCMusB jQGmbIqRHAN01h66xL8lC/kvQG+6S1aPBekLTmL3qAy00bMwHXjn3VrX6DR3FkPPoZpH JdKyqhvYD5Jeyzo9Tzq8qwZwcfg7LnL0zbDMM= 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; bh=k+TNqtjUjOGSK55CCIwBJa0g8BPa9U7tdVQTrJqAV3A=; b=V9QvQlZyuETTf/0YZVmcA0PSPgNWXMbeyN3xP5cXzZUKeQ9zgSg+OWwX3MI8kCPsl5 5XMSANk9xnfZVD6rCLHO4CO7ENYl4M4AcQ2mKhyiOiNfGvbzxb/e2F5GzJC0h+UbUhNi icmKLDCQXcScbrjJCEyMVBSSaDwW9F4Ss0DV/fEcMU0zww/vj1FEdfHQ+o4LWIVCLQ5L qxke5o9e/P57iF7nwjKWJdxU4MP8Y2YNT7PKc3StYfsj5hCg3oLRRVpaSrYpUCTPiqB/ F6YcqBuNpvYTLZUBKePkWPST3jb/riqkivOEdRE9LdTjLDnv/HHyUYcNRULOA2l+R7Ru iDRA== X-Gm-Message-State: APzg51BoJRfkS5tb7DH3CLoWbJ334+BH8ZSASZpNz/Y1Ct1muXk/l4Gl yPd6TfPdkehH1LoTKrlckG91TcbS44M= X-Google-Smtp-Source: ANB0VdbdjA8hBxJiVmuPaDUAdlJ5+pIXbd0OjL9NYoWOTZxDtDN+RcCnUkqjodC7vA44j6WQ6AKIXg== X-Received: by 2002:a17:902:5a02:: with SMTP id q2-v6mr17487677pli.253.1537028271883; Sat, 15 Sep 2018 09:17:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:33 -0700 Message-Id: <20180915161738.25257-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::62c Subject: [Qemu-devel] [PATCH 08/13] target/arm: Derive id_pfr0 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ??? The assertion does fire for old cpus; they may be existing bugs. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index c227044946..0151c278e8 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -969,6 +969,29 @@ static uint32_t resolve_id_isar6(CPUARMState *env) return ret; } =20 +static uint32_t resolve_id_pfr0(CPUARMState *env) +{ + uint32_t ret =3D 0; + + if (!arm_feature(env, ARM_FEATURE_M)) { + ret =3D deposit32(ret, 0, 4, 1); /* State0 -- A32 */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2)) { + ret =3D deposit32(ret, 4, 4, 3); /* State1 -- T32 */ + } else if (arm_feature(env, ARM_FEATURE_V5)) { + ret =3D deposit32(ret, 4, 4, 1); /* State1 -- bl/blx on= ly */ + } + if (arm_feature(env, ARM_FEATURE_JAZELLE)) { + ret =3D deposit32(ret, 8, 4, 1); /* State2 -- Jazelle */ + } + if (arm_feature(env, ARM_FEATURE_THUMB2EE)) { + ret =3D deposit32(ret, 12, 4, 1); /* State3 -- T32EE */ + } + /* RAS -- not implemented yet */ + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -997,6 +1020,10 @@ static void resolve_id_regs(ARMCPU *cpu) =20 cpu->id_isar5 =3D resolve_id_isar5(env); cpu->id_isar6 =3D resolve_id_isar6(env); + + orig =3D cpu->id_pfr0; + cpu->id_pfr0 =3D resolve_id_pfr0(env); + g_assert_cmphex(cpu->id_pfr0, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028751362517.427080658338; Sat, 15 Sep 2018 09:25:51 -0700 (PDT) Received: from localhost ([::1]:56128 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DO9-0002cO-Li for importer@patchew.org; Sat, 15 Sep 2018 12:25:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60216) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGe-0004Zy-0H for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGd-00044Z-1X for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:55 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]:34776) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGc-00043P-HJ for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:54 -0400 Received: by mail-pl1-x635.google.com with SMTP id f6-v6so5532392plo.1 for ; Sat, 15 Sep 2018 09:17:54 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=pLO73eoAwsD8yr0Blf5mlHEU8DCO0XukLLz4TVq1v2U=; b=D8s2gGdDfSk6mwj17WBrsUnpPwO75vYpEI33ttrcDj97IDzsrxwKMLVFAu6PHUbeHV LyzdxRmgWxft2U4tdX/Q5YyqbBmhI4aYk1IABONBzg/XyyRXzxVYAcmn4DlBfR0Anqiu 9K+q5BieSNbsvkKUgABQ0/nhJnZCXF7SYcg4U= 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; bh=pLO73eoAwsD8yr0Blf5mlHEU8DCO0XukLLz4TVq1v2U=; b=rt0ImCQoUrppnEq58Meco88u7TpgeSPx468eDkkIQrpdOF9ib3+rqh5YDmxkz2QyaM wgWhOTzFB2S3EPIGRRS/8fh6P27eGjePdyj/CwAC51kdSQj8MTFSwhyC/Rbq5ODJDKFo GE6cOaYBGHdjq930ReCI7fz0hHf3t9ydxfkGcxgM4sUZF4oYinHU2hduKSQPg/eJfg2p Ngu5mLLUrzzAqB0kvUXGhGRWOsE2QXv/qkfRG5xVCflFI6PehCHWZaRI7/BZpodG9ye1 K3AzzqTT5olJraRNJr4sw+bWVszNMkcFaP6IlMF+UizGj2qXtBAY8x281N24WxiGeFzj BNbw== X-Gm-Message-State: APzg51AtwZfbVSQiKTh7zQ6fnXb/kCZzBKA20784t+5GBCYkRI+AB6/a oRc3v+8JtWirFyGgYujR4RqkcUgnlTw= X-Google-Smtp-Source: ANB0VdZ1qcz3q1lHGhF892tfXBkwMBcam46GXyIB4n36AyI9Txc4/YLVTjGHRl1CASjeuNepkGXZ/w== X-Received: by 2002:a17:902:724c:: with SMTP id c12-v6mr17076808pll.326.1537028273206; Sat, 15 Sep 2018 09:17:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:34 -0700 Message-Id: <20180915161738.25257-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::635 Subject: [Qemu-devel] [PATCH 09/13] target/arm: Derive id_pfr1 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 0151c278e8..4fb3e0a9ea 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -992,6 +992,31 @@ static uint32_t resolve_id_pfr0(CPUARMState *env) return ret; } =20 +static uint32_t resolve_id_pfr1(CPUARMState *env) +{ + uint32_t ret =3D 0; + + if (arm_feature(env, ARM_FEATURE_M)) { + ret =3D deposit32(ret, 8, 4, 2); /* MProgMod */ + } else { + ret =3D deposit32(ret, 0, 4, 1); /* ProgMod */ + } + if (arm_feature(env, ARM_FEATURE_EL3)) { + ret =3D deposit32(ret, 4, 4, 1); /* Security */ + } + if (arm_feature(env, ARM_FEATURE_EL2)) { + ret =3D deposit32(ret, 12, 4, 1); /* Virtualization */ + } + if (arm_feature(env, ARM_FEATURE_GENERIC_TIMER)) { + ret =3D deposit32(ret, 16, 4, 1); /* GenTimer */ + } + /* Sec_frac -- no partial features implemented without EL3 */ + /* Virt_frac -- no partial features implemented without EL2 */ + /* GIC -- info not available yet; filled in by id_pfr1_read */ + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -1024,6 +1049,10 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_pfr0; cpu->id_pfr0 =3D resolve_id_pfr0(env); g_assert_cmphex(cpu->id_pfr0, =3D=3D, orig); + + orig =3D cpu->id_pfr1; + cpu->id_pfr1 =3D resolve_id_pfr1(env); + g_assert_cmphex(cpu->id_pfr1, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028893018197.7654303304189; Sat, 15 Sep 2018 09:28:13 -0700 (PDT) Received: from localhost ([::1]:56149 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DQZ-00058P-N1 for importer@patchew.org; Sat, 15 Sep 2018 12:28:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGf-0004cC-WB for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGf-00047A-90 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:57 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]:43776) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGe-000457-30 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:57 -0400 Received: by mail-pf1-x433.google.com with SMTP id j26-v6so5639105pfi.10 for ; Sat, 15 Sep 2018 09:17:55 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=jgmkTEluYq/Qp7SO+CS3JMwIujLwX/BOHR5l9U0Ukbw=; b=ary9sSbH8ZGW182aHqLzYAQ1LEITJbii3BQUuD6SguZ64wesaGRMC0t6SiXqdtAsgY b9yt5O4ZPBhGVGjrpDdZRNseY7eJGpKRbVMW9X0ahPAjp4yhZc+N4//KUruGjMRBc/S2 JaF9nOq+ySKndSPYjs+42l4/ORo0XBbmiQ6cI= 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; bh=jgmkTEluYq/Qp7SO+CS3JMwIujLwX/BOHR5l9U0Ukbw=; b=dIey33tjKur4PSn67gwkti63w7rzfy/9U3AN93cEciavgNFka6kWlQNVHo9jBEeT/V S7xPGLIg0WbO1lwGo8DyerqvzHsRaAZwjNOH+JOf76L5E1s+QJFXOsTR4FqZiULtNgcA OIURXektYZ4HwAQRWOele4+EwyKMGqqp1kvmNSXK1NEMcN/teAMZP4XXlpXlNf8xyfEm KKbBrwLpejwgP3zqyC43OmPucGVRwpJ9iwyYhzIJMruvM3WUmWqvj/1h9+crFjdHJQbA Rd6dY6yom/GrMoXtvb67AilF2NmhVxSy2r6feQMJ3raP+/DL9m8wnUXMYbSNj2cm6pOK Up1A== X-Gm-Message-State: APzg51A56cvzuEHBfMwnc43cMdCgy4ov5YJaF6NwejB8dRcyCqFvr1FJ d0YBeqk0y/FztUyBvrZ4KBxnNKtkBRA= X-Google-Smtp-Source: ANB0VdZaVXfh7Cf5Jd9i3omvLIEII69knzikkQ5rGe/Kh4fnLpmQJVFsDHUX4SxI0Mkzpc2CTBC4cA== X-Received: by 2002:a63:3cc:: with SMTP id 195-v6mr16189011pgd.229.1537028274634; Sat, 15 Sep 2018 09:17:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:35 -0700 Message-Id: <20180915161738.25257-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::433 Subject: [Qemu-devel] [PATCH 10/13] target/arm: Derive id_aa64isar0 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 4fb3e0a9ea..1c51b9f631 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1017,6 +1017,51 @@ static uint32_t resolve_id_pfr1(CPUARMState *env) return ret; } =20 +static uint64_t resolve_id_aa64isar0(CPUARMState *env) +{ + uint64_t ret =3D 0; + + /* AES */ + if (arm_feature(env, ARM_FEATURE_V8_PMULL)) { + ret =3D deposit64(ret, 4, 4, 2); + } else if (arm_feature(env, ARM_FEATURE_V8_AES)) { + ret =3D deposit64(ret, 4, 4, 1); + } + if (arm_feature(env, ARM_FEATURE_V8_SHA1)) { + ret =3D deposit64(ret, 8, 4, 1); /* SHA1 */ + } + /* SHA2 */ + if (arm_feature(env, ARM_FEATURE_V8_SHA512)) { + ret =3D deposit64(ret, 12, 4, 2); + } else if (arm_feature(env, ARM_FEATURE_V8_SHA256)) { + ret =3D deposit64(ret, 12, 4, 1); + } + if (arm_feature(env, ARM_FEATURE_CRC)) { + ret =3D deposit64(ret, 16, 4, 1); /* CRC32 */ + } + if (arm_feature(env, ARM_FEATURE_V8_ATOMICS)) { + ret =3D deposit64(ret, 20, 4, 2); /* Atomic */ + } + if (arm_feature(env, ARM_FEATURE_V8_RDM)) { + ret =3D deposit64(ret, 28, 4, 1); /* RDM */ + } + if (arm_feature(env, ARM_FEATURE_V8_SHA3)) { + ret =3D deposit64(ret, 32, 4, 1); /* SHA3 */ + } + if (arm_feature(env, ARM_FEATURE_V8_SM3)) { + ret =3D deposit64(ret, 36, 4, 1); /* SM3 */ + } + if (arm_feature(env, ARM_FEATURE_V8_SM4)) { + ret =3D deposit64(ret, 40, 4, 1); /* SM4 */ + } + if (arm_feature(env, ARM_FEATURE_V8_DOTPROD)) { + ret =3D deposit64(ret, 44, 4, 1); /* DP */ + } + /* FHM -- not implemented yet */ + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -1053,6 +1098,10 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_pfr1; cpu->id_pfr1 =3D resolve_id_pfr1(env); g_assert_cmphex(cpu->id_pfr1, =3D=3D, orig); + + orig =3D cpu->id_aa64isar0; + cpu->id_aa64isar0 =3D resolve_id_aa64isar0(env); + g_assert_cmphex(cpu->id_aa64isar0, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028754026785.4140985421535; Sat, 15 Sep 2018 09:25:54 -0700 (PDT) Received: from localhost ([::1]:56133 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DOG-0002jS-M4 for importer@patchew.org; Sat, 15 Sep 2018 12:25:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60252) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGg-0004cj-F5 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGf-00047d-Mw for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:58 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:43022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGf-000468-7B for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:57 -0400 Received: by mail-pg1-x52f.google.com with SMTP id v66-v6so5743051pgb.10 for ; Sat, 15 Sep 2018 09:17:56 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=SHjTofhC/zwswvOaMPM1hKLJnu4qclwgjX/edGpstDc=; b=jNmnuajwZXRbyTJWWQGlpCcBH2qmrN9jxGLwO1ngE9zTldC/CPoFYe/nDAY1AvZ0qL mXMv8cWp9fbnZBW6QP1noYeNGbgXwsVijkDwbElN8alLKBkQ6RUL+q3LqJOsMyttk1Ny RvlFXDTQYls6D90Ik/1VzGUcbAG3oexCBJUf0= 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; bh=SHjTofhC/zwswvOaMPM1hKLJnu4qclwgjX/edGpstDc=; b=c9JeWeHr4Q9Y99pNnHOf9aiiQ/SbJ4hlyXUVUFhlvFW+qlw+qNycrjH7tKtseVUdHd 9u+BPVevenAX/A5ks3u1lcpvbBU2IXiKvPzgseUEsCo3iGj/9hWYUn0nJLwd2P7ayw0W W3KAUmPaVqBIYTN01Nq4p6SIRMoYRpCvCIxzHQkvwnBzUgo7dXzCJj93Vtv1Txlap03n ZPnstaPoZ7SG+GIH4M13MPzyaUKDheZOpY0sIZHsOCP7Lcd2UIloz6yyjy/fAKdAMQQp NPvyg05S+VAFLvYL1CW4jSh3YwnjsEhePP/fJK0enYUiyIwTPny3ge5p7rNvz+Giq2h9 3aPg== X-Gm-Message-State: APzg51Do199qTvG8oS0YGRP8OlrHTbtVAdcr7SYMPnDHlwgjnDdaJ55n rN14QX+IaggvKUVxKRZheoTPtbF69xg= X-Google-Smtp-Source: ANB0VdYLlZrH6nf/zkqU9hOHZZRaINzLx0aUj47UHOd60ezpna41A1YuMBx3dNYDnJo6kzoyyIsPAQ== X-Received: by 2002:a63:e255:: with SMTP id y21-v6mr16671372pgj.160.1537028275722; Sat, 15 Sep 2018 09:17:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:36 -0700 Message-Id: <20180915161738.25257-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52f Subject: [Qemu-devel] [PATCH 11/13] target/arm: Derive id_aa64isar1 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 1c51b9f631..a9724f3bb1 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1062,6 +1062,24 @@ static uint64_t resolve_id_aa64isar0(CPUARMState *en= v) return ret; } =20 +static uint64_t resolve_id_aa64isar1(CPUARMState *env) +{ + uint64_t ret =3D 0; + + /* DPB -- not implemented yet */ + /* APA -- not implemented yet */ + /* API -- not implemented yet */ + /* JSCVT -- not implemented yet */ + if (arm_feature(env, ARM_FEATURE_V8_FCMA)) { + ret =3D deposit64(ret, 16, 4, 1); + } + /* LRCPC -- not implemented yet */ + /* GPA -- not implemented yet */ + /* GPI -- not implemented yet */ + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -1102,6 +1120,8 @@ static void resolve_id_regs(ARMCPU *cpu) orig =3D cpu->id_aa64isar0; cpu->id_aa64isar0 =3D resolve_id_aa64isar0(env); g_assert_cmphex(cpu->id_aa64isar0, =3D=3D, orig); + + cpu->id_aa64isar1 =3D resolve_id_aa64isar1(env); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028896309214.9319920647838; Sat, 15 Sep 2018 09:28:16 -0700 (PDT) Received: from localhost ([::1]:56150 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DQd-0005BW-CA for importer@patchew.org; Sat, 15 Sep 2018 12:28:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGh-0004dP-5K for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGg-00048P-Dd for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:59 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:44611) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGg-00047b-6t for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:58 -0400 Received: by mail-pg1-x534.google.com with SMTP id r1-v6so5742637pgp.11 for ; Sat, 15 Sep 2018 09:17:58 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17:55 -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; bh=QMWvxDHtEK366CXihsxXzYlxa+9KZq9t/nbEwvVlLXc=; b=PgVppPppYFGTkwEMg1dmCY6oFaTxFTD68pcKkyiP7bVpWpk/ryGXt5wSN5/yGCyoj9 vxYY6BYhm9y32Tzd8+Q4voSonOZKNyn5eYo+JZg/xqnbjRy/qqxyeniUDAZCqUHcJlQY HbC44S3vJJb+IdoJlp5/uqS53BOX8WU7LSbFA= 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; bh=QMWvxDHtEK366CXihsxXzYlxa+9KZq9t/nbEwvVlLXc=; b=heMEmaGg8VEPt2O4Db91JWnlPwz4oXO1Z2/TtWYXGkTcFJbMihrVrLEhC7p8gZuyKt bKPcm/US0hyjfkyqzg90Gf57BzrD4Gu614txBASXPpZj2Tff2yHxU0DcsMQmI7h5z58f Si1C7nGYn/pJtnCPF2VgDbDFbBdWalRYXlg8i7BVFYqmiJ+itW0kJjfaQTOESqq/goPh HB1n/2d0uu5EVtxh9YrJAS12kMU4oHOSHlNS6bgMIKh+flWfrUxN7XA/XLCaDDNzC2y3 PeDrfX1iBnUmee4Wumbo9zd2QHJAh6lQ/j4JptADLoBZKZsNQ4nhGvEmjubJmY57FzXU Me+w== X-Gm-Message-State: APzg51A8QmXeTF+Ej3AEAMNXDK8XP/Rc0bMM2FgKvVehxCfFsDxYCN51 QsNhIFM0i6Qo3c7uUXcVYSFzoa1gGc4= X-Google-Smtp-Source: ANB0VdYSmSwsHYEsXVGc33tkphxcyi75t1e8MuNcvRXVVSR9x3I9SFpqfe52NyEvsHk1hpUl6sqsqQ== X-Received: by 2002:a63:a112:: with SMTP id b18-v6mr14176499pgf.384.1537028276975; Sat, 15 Sep 2018 09:17:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:37 -0700 Message-Id: <20180915161738.25257-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::534 Subject: [Qemu-devel] [PATCH 12/13] target/arm: Derive id_aa64pfr0 from features X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index a9724f3bb1..2ec71104c9 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1080,6 +1080,31 @@ static uint64_t resolve_id_aa64isar1(CPUARMState *en= v) return ret; } =20 +static uint64_t resolve_id_aa64pfr0(CPUARMState *env) +{ + uint64_t ret =3D 0; + + ret =3D deposit64(ret, 0, 4, 2); /* EL0 */ + ret =3D deposit64(ret, 4, 4, 2); /* EL1 */ + if (arm_feature(env, ARM_FEATURE_EL2)) { + ret =3D deposit64(ret, 8, 4, 2); /* EL2 */ + } + if (arm_feature(env, ARM_FEATURE_EL3)) { + ret =3D deposit64(ret, 12, 4, 2); /* EL3 */ + } + if (arm_feature(env, ARM_FEATURE_V8_FP16)) { + ret =3D deposit64(ret, 16, 4, 1); /* FP */ + ret =3D deposit64(ret, 20, 4, 1); /* AdvSIMD */ + } + /* GIC -- info not available yet; filled in by id_aa64pfr0_read */ + /* RAS -- not implemented yet */ + if (arm_feature(env, ARM_FEATURE_SVE)) { + ret =3D deposit64(ret, 32, 4, 1); /* SVE */ + } + + return ret; +} + static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; @@ -1122,6 +1147,10 @@ static void resolve_id_regs(ARMCPU *cpu) g_assert_cmphex(cpu->id_aa64isar0, =3D=3D, orig); =20 cpu->id_aa64isar1 =3D resolve_id_aa64isar1(env); + + orig =3D cpu->id_aa64pfr0; + cpu->id_aa64pfr0 =3D resolve_id_aa64pfr0(env); + g_assert_cmphex(cpu->id_aa64pfr0, =3D=3D, orig); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1 From nobody Wed Nov 5 18:21:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537028753936517.9619629806541; Sat, 15 Sep 2018 09:25:53 -0700 (PDT) Received: from localhost ([::1]:56135 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DOK-0002p8-CQ for importer@patchew.org; Sat, 15 Sep 2018 12:25:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60281) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1DGi-0004eU-9R for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:18:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1DGh-0004AO-Kv for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:18:00 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:44997) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1DGh-000495-F4 for qemu-devel@nongnu.org; Sat, 15 Sep 2018 12:17:59 -0400 Received: by mail-pf1-x442.google.com with SMTP id k21-v6so5647300pff.11 for ; Sat, 15 Sep 2018 09:17:59 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-8-179.tukw.qwest.net. [97.113.8.179]) by smtp.gmail.com with ESMTPSA id k26-v6sm18648793pfb.167.2018.09.15.09.17.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 15 Sep 2018 09:17: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; bh=X4EBL1pJUwLy43RkKPhPWRfdseJ9dJR7+HfbclZf6GE=; b=fY+nUk7euNgsLtHa6HQMXO9a+wTlclX94wVpsIOQSjCH85BfuQJfEcNpNduR/F7LUE 6SpeknHvHVYT177mYcLZoEI7rjwbb/3iFf1Ova3YiXj8GGUCkimZVkqEXk2ksibgBvCX 3jRhneVwEVzH3XNs1d4JzLnCKrjUx1+sb+VuM= 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; bh=X4EBL1pJUwLy43RkKPhPWRfdseJ9dJR7+HfbclZf6GE=; b=G997DztWyq2faj+QZ/kWL8Lqi1t4H+OmRYzu/LgFXTnnavkbcZbhyOAFMJhyzI1hdq 8zYZDfkRViiuFDowJqv5164Jqlrv7W5og+EwPlPHiuKipFGGMApOA+oA3KZ4Q9uqeZ2l 7qeoY47B9hbouPyG6Zdr+h4k94X3ZAL4NeLX8KLcVaLTNQEfr1COPWQEgHN8w8OFLz2D fsn2f31rTIWrIFWMTHHtms74BLPybFGjcNQooNNA8WOJvuTnAYkq/0ndIOVfMKCJAqKe 51TbFgRMIQH6JII13kNsboQNZA8S2kXND4klk8DvJzyoxihPtfPndnGqLbBJcwKEVqHZ bfzg== X-Gm-Message-State: APzg51Aa/aIoYuw+53RynpsTcnupxmOgtT4o+7q/IxqoUkVwTdRUdirU 96+U+kOocskE6Wei32knvuIZ/sTYGX4= X-Google-Smtp-Source: ANB0VdYKqpc/0ymWgCzh951bbetfBWLi1gAVLs8ulSQbfeATAi2UIXCX5lxsfkdTLgngJ5qNps5xGA== X-Received: by 2002:a65:448a:: with SMTP id l10-v6mr16938909pgq.382.1537028278224; Sat, 15 Sep 2018 09:17:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 15 Sep 2018 09:17:38 -0700 Message-Id: <20180915161738.25257-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180915161738.25257-1-richard.henderson@linaro.org> References: <20180915161738.25257-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::442 Subject: [Qemu-devel] [PATCH 13/13] target/arm: Remove assertions from resolve_id_regs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This is a prerequisite to removing the now-redundant initializations from within the individual cpus. Signed-off-by: Richard Henderson Acked-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 2ec71104c9..79103926a4 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1108,49 +1108,22 @@ static uint64_t resolve_id_aa64pfr0(CPUARMState *en= v) static void resolve_id_regs(ARMCPU *cpu) { CPUARMState *env =3D &cpu->env; - uint64_t orig; =20 - orig =3D cpu->id_isar0; - cpu->id_isar0 =3D resolve_id_isar0(env, orig); - g_assert_cmphex(cpu->id_isar0, =3D=3D, orig); - - orig =3D cpu->id_isar1; + cpu->id_isar0 =3D resolve_id_isar0(env, cpu->id_isar0); cpu->id_isar1 =3D resolve_id_isar1(env); - g_assert_cmphex(cpu->id_isar1, =3D=3D, orig); - - orig =3D cpu->id_isar2; - cpu->id_isar2 =3D resolve_id_isar2(env, orig); - g_assert_cmphex(cpu->id_isar2, =3D=3D, orig); - - orig =3D cpu->id_isar3; + cpu->id_isar2 =3D resolve_id_isar2(env, cpu->id_isar2); cpu->id_isar3 =3D resolve_id_isar3(env); - g_assert_cmphex(cpu->id_isar3, =3D=3D, orig); - - orig =3D cpu->id_isar4; cpu->id_isar4 =3D resolve_id_isar4(env); - /* Willfully ignore the SWP_frac field. */ - g_assert_cmphex(cpu->id_isar4 & 0x0fffffff, =3D=3D, orig & 0x0fffffff); - cpu->id_isar5 =3D resolve_id_isar5(env); cpu->id_isar6 =3D resolve_id_isar6(env); - - orig =3D cpu->id_pfr0; cpu->id_pfr0 =3D resolve_id_pfr0(env); - g_assert_cmphex(cpu->id_pfr0, =3D=3D, orig); - - orig =3D cpu->id_pfr1; cpu->id_pfr1 =3D resolve_id_pfr1(env); - g_assert_cmphex(cpu->id_pfr1, =3D=3D, orig); =20 - orig =3D cpu->id_aa64isar0; - cpu->id_aa64isar0 =3D resolve_id_aa64isar0(env); - g_assert_cmphex(cpu->id_aa64isar0, =3D=3D, orig); - - cpu->id_aa64isar1 =3D resolve_id_aa64isar1(env); - - orig =3D cpu->id_aa64pfr0; - cpu->id_aa64pfr0 =3D resolve_id_aa64pfr0(env); - g_assert_cmphex(cpu->id_aa64pfr0, =3D=3D, orig); + if (arm_feature(env, ARM_FEATURE_AARCH64)) { + cpu->id_aa64isar0 =3D resolve_id_aa64isar0(env); + cpu->id_aa64isar1 =3D resolve_id_aa64isar1(env); + cpu->id_aa64pfr0 =3D resolve_id_aa64pfr0(env); + } } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) --=20 2.17.1