All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Max Filippov <jcmvbkbc@gmail.com>,
	Riku Voipio <riku.voipio@iki.fi>,
	Richard Henderson <richard.henderson@linaro.org>,
	Laurent Vivier <laurent@vivier.eu>,
	Peter Maydell <peter.maydell@linaro.org>
Subject: [Qemu-devel] [PULL 02/15] linux-user: Add AT_HWCAP2 for aarch64-linux-user
Date: Tue, 10 Sep 2019 18:35:47 +0200	[thread overview]
Message-ID: <20190910163600.19971-3-laurent@vivier.eu> (raw)
In-Reply-To: <20190910163600.19971-1-laurent@vivier.eu>

From: Richard Henderson <richard.henderson@linaro.org>

Add the HWCAP2_* bits from kernel version v5.3-rc3.
Enable the bits corresponding to ARMv8.5-CondM and ARMv8.5-FRINT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20190809171156.3476-1-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 linux-user/elfload.c | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 3365e192eb3f..43c16a846d33 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -607,9 +607,23 @@ enum {
     ARM_HWCAP_A64_SB            = 1 << 29,
     ARM_HWCAP_A64_PACA          = 1 << 30,
     ARM_HWCAP_A64_PACG          = 1UL << 31,
+
+    ARM_HWCAP2_A64_DCPODP       = 1 << 0,
+    ARM_HWCAP2_A64_SVE2         = 1 << 1,
+    ARM_HWCAP2_A64_SVEAES       = 1 << 2,
+    ARM_HWCAP2_A64_SVEPMULL     = 1 << 3,
+    ARM_HWCAP2_A64_SVEBITPERM   = 1 << 4,
+    ARM_HWCAP2_A64_SVESHA3      = 1 << 5,
+    ARM_HWCAP2_A64_SVESM4       = 1 << 6,
+    ARM_HWCAP2_A64_FLAGM2       = 1 << 7,
+    ARM_HWCAP2_A64_FRINT        = 1 << 8,
 };
 
-#define ELF_HWCAP get_elf_hwcap()
+#define ELF_HWCAP   get_elf_hwcap()
+#define ELF_HWCAP2  get_elf_hwcap2()
+
+#define GET_FEATURE_ID(feat, hwcap) \
+    do { if (cpu_isar_feature(feat, cpu)) { hwcaps |= hwcap; } } while (0)
 
 static uint32_t get_elf_hwcap(void)
 {
@@ -621,8 +635,6 @@ static uint32_t get_elf_hwcap(void)
     hwcaps |= ARM_HWCAP_A64_CPUID;
 
     /* probe for the extra features */
-#define GET_FEATURE_ID(feat, hwcap) \
-    do { if (cpu_isar_feature(feat, cpu)) { hwcaps |= hwcap; } } while (0)
 
     GET_FEATURE_ID(aa64_aes, ARM_HWCAP_A64_AES);
     GET_FEATURE_ID(aa64_pmull, ARM_HWCAP_A64_PMULL);
@@ -645,11 +657,22 @@ static uint32_t get_elf_hwcap(void)
     GET_FEATURE_ID(aa64_sb, ARM_HWCAP_A64_SB);
     GET_FEATURE_ID(aa64_condm_4, ARM_HWCAP_A64_FLAGM);
 
-#undef GET_FEATURE_ID
+    return hwcaps;
+}
+
+static uint32_t get_elf_hwcap2(void)
+{
+    ARMCPU *cpu = ARM_CPU(thread_cpu);
+    uint32_t hwcaps = 0;
+
+    GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2);
+    GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT);
 
     return hwcaps;
 }
 
+#undef GET_FEATURE_ID
+
 #endif /* not TARGET_AARCH64 */
 #endif /* TARGET_ARM */
 
-- 
2.21.0



  parent reply	other threads:[~2019-09-10 16:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-10 16:35 [Qemu-devel] [PULL 00/15] Linux user for 4.2 patches Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 01/15] linux-user: remove useless variable Laurent Vivier
2019-09-10 16:35 ` Laurent Vivier [this message]
2019-09-10 16:35 ` [Qemu-devel] [PULL 03/15] linux-user: erroneous fd_trans_unregister call Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 04/15] linux-user: fail and report on bad dfilter specs Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 05/15] linux-user: add memfd_create Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 06/15] linux-user: Pass CPUState to MAX_RESERVED_VA Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 07/15] linux-user/arm: Adjust MAX_RESERVED_VA for M-profile Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 08/15] linux-user: Support gdb 'qOffsets' query for ELF Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 09/15] target/xtensa: linux-user: add call0 ABI support Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 10/15] linux-user: drop redundant handling of environment variables Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 11/15] linux-user: Add support for RNDRESEEDCRNG ioctl Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 12/15] linux-user: Add support for FIOGETOWN and FIOSETOWN ioctls Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 13/15] linux-user: Add support for FDFLUSH ioctl Laurent Vivier
2019-09-10 16:35 ` [Qemu-devel] [PULL 14/15] linux-user: Add support for FDMSGON and FDMSGOFF ioctls Laurent Vivier
2019-09-10 16:36 ` [Qemu-devel] [PULL 15/15] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls Laurent Vivier
2019-09-10 20:52 ` [Qemu-devel] [PULL 00/15] Linux user for 4.2 patches no-reply
2019-09-11  0:38 ` no-reply
2019-09-11  2:32 ` no-reply
2019-09-11  4:36 ` no-reply
2019-09-11  6:36   ` Laurent Vivier
2019-09-11  6:45 ` no-reply
2019-09-11  7:37 ` no-reply
2019-09-11  8:40 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190910163600.19971-3-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=jcmvbkbc@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=riku.voipio@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.