diff options
author | Sandipan Das <sandipan@linux.ibm.com> | 2018-09-06 12:27:29 +0530 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-09-07 11:29:50 +1000 |
commit | be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf (patch) | |
tree | c3d40faf2e3aa93b4ccf21206a8f200dc4962f82 | |
parent | a84f71793aab5d06b5798e78e1cee82cc3e4b3e2 (diff) | |
download | qemu-be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf.zip qemu-be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf.tar.gz qemu-be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf.tar.bz2 |
target-ppc: Extend HWCAP2 bits for ISA 3.0
This adds the HWCAP2 bit to detect if a linux user process is
running on an ISA 3.0 compliant cpu like POWER9. This can be
verified using a simple test program that prints the value in
the auxiliary vector for AT_HWCAP2 as shown below.
Before:
$ qemu-ppc64le -cpu power8 test
0x8c000000
$ qemu-ppc64le -cpu power9 test
0x8c000000
After:
$ qemu-ppc64le -cpu power8 test
0x8c000000
$ qemu-ppc64le -cpu power9 test
0x8c800000
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | linux-user/elfload.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 8638612..e97c4cd 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -710,6 +710,7 @@ enum { QEMU_PPC_FEATURE2_HAS_EBB = 0x10000000, /* Event Base Branching */ QEMU_PPC_FEATURE2_HAS_ISEL = 0x08000000, /* Integer Select */ QEMU_PPC_FEATURE2_HAS_TAR = 0x04000000, /* Target Address Register */ + QEMU_PPC_FEATURE2_ARCH_3_00 = 0x00800000, /* ISA 3.00 */ }; #define ELF_HWCAP get_elf_hwcap() @@ -764,6 +765,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE2(PPC2_BCTAR_ISA207, QEMU_PPC_FEATURE2_HAS_TAR); GET_FEATURE2((PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 | PPC2_ISA207S), QEMU_PPC_FEATURE2_ARCH_2_07); + GET_FEATURE2(PPC2_ISA300, QEMU_PPC_FEATURE2_ARCH_3_00); #undef GET_FEATURE #undef GET_FEATURE2 |