]>
Commit | Line | Data |
---|---|---|
0885f122 RH |
1 | /* |
2 | * SPDX-License-Identifier: GPL-2.0-or-later | |
3 | * Host specific cpu identification for LoongArch. | |
4 | */ | |
5 | ||
6 | #include "qemu/osdep.h" | |
7 | #include "host/cpuinfo.h" | |
8 | ||
9 | #ifdef CONFIG_GETAUXVAL | |
10 | # include <sys/auxv.h> | |
11 | #else | |
12 | # include "elf.h" | |
13 | #endif | |
14 | #include <asm/hwcap.h> | |
15 | ||
16 | unsigned cpuinfo; | |
17 | ||
18 | /* Called both as constructor and (possibly) via other constructors. */ | |
19 | unsigned __attribute__((constructor)) cpuinfo_init(void) | |
20 | { | |
21 | unsigned info = cpuinfo; | |
22 | unsigned long hwcap; | |
23 | ||
24 | if (info) { | |
25 | return info; | |
26 | } | |
27 | ||
28 | hwcap = qemu_getauxval(AT_HWCAP); | |
29 | ||
30 | info = CPUINFO_ALWAYS; | |
31 | info |= (hwcap & HWCAP_LOONGARCH_LSX ? CPUINFO_LSX : 0); | |
32 | ||
33 | cpuinfo = info; | |
34 | return info; | |
35 | } |