target/arm/kvm: Inline set_feature() calls
We want to move the inlined declarations of set_feature() from cpu*.c to cpu.h. To avoid clashing with the KVM declarations, inline the few KVM calls. Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20200504172448.9402-2-philmd@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
ba080b8682
commit
f5cbb280bd
@ -22,11 +22,6 @@
|
||||
#include "internals.h"
|
||||
#include "qemu/log.h"
|
||||
|
||||
static inline void set_feature(uint64_t *features, int feature)
|
||||
{
|
||||
*features |= 1ULL << feature;
|
||||
}
|
||||
|
||||
static int read_sys_reg32(int fd, uint32_t *pret, uint64_t id)
|
||||
{
|
||||
struct kvm_one_reg idreg = { .id = id, .addr = (uintptr_t)pret };
|
||||
@ -146,14 +141,14 @@ bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf)
|
||||
* timers; this in turn implies most of the other feature
|
||||
* bits, but a few must be tested.
|
||||
*/
|
||||
set_feature(&features, ARM_FEATURE_V7VE);
|
||||
set_feature(&features, ARM_FEATURE_GENERIC_TIMER);
|
||||
features |= 1ULL << ARM_FEATURE_V7VE;
|
||||
features |= 1ULL << ARM_FEATURE_GENERIC_TIMER;
|
||||
|
||||
if (extract32(id_pfr0, 12, 4) == 1) {
|
||||
set_feature(&features, ARM_FEATURE_THUMB2EE);
|
||||
features |= 1ULL << ARM_FEATURE_THUMB2EE;
|
||||
}
|
||||
if (extract32(ahcf->isar.mvfr1, 12, 4) == 1) {
|
||||
set_feature(&features, ARM_FEATURE_NEON);
|
||||
features |= 1ULL << ARM_FEATURE_NEON;
|
||||
}
|
||||
|
||||
ahcf->features = features;
|
||||
|
@ -447,16 +447,6 @@ void kvm_arm_pmu_set_irq(CPUState *cs, int irq)
|
||||
}
|
||||
}
|
||||
|
||||
static inline void set_feature(uint64_t *features, int feature)
|
||||
{
|
||||
*features |= 1ULL << feature;
|
||||
}
|
||||
|
||||
static inline void unset_feature(uint64_t *features, int feature)
|
||||
{
|
||||
*features &= ~(1ULL << feature);
|
||||
}
|
||||
|
||||
static int read_sys_reg32(int fd, uint32_t *pret, uint64_t id)
|
||||
{
|
||||
uint64_t ret;
|
||||
@ -648,11 +638,11 @@ bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf)
|
||||
* with VFPv4+Neon; this in turn implies most of the other
|
||||
* feature bits.
|
||||
*/
|
||||
set_feature(&features, ARM_FEATURE_V8);
|
||||
set_feature(&features, ARM_FEATURE_NEON);
|
||||
set_feature(&features, ARM_FEATURE_AARCH64);
|
||||
set_feature(&features, ARM_FEATURE_PMU);
|
||||
set_feature(&features, ARM_FEATURE_GENERIC_TIMER);
|
||||
features |= 1ULL << ARM_FEATURE_V8;
|
||||
features |= 1ULL << ARM_FEATURE_NEON;
|
||||
features |= 1ULL << ARM_FEATURE_AARCH64;
|
||||
features |= 1ULL << ARM_FEATURE_PMU;
|
||||
features |= 1ULL << ARM_FEATURE_GENERIC_TIMER;
|
||||
|
||||
ahcf->features = features;
|
||||
|
||||
@ -802,7 +792,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
|
||||
if (cpu->has_pmu) {
|
||||
cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PMU_V3;
|
||||
} else {
|
||||
unset_feature(&env->features, ARM_FEATURE_PMU);
|
||||
env->features &= ~(1ULL << ARM_FEATURE_PMU);
|
||||
}
|
||||
if (cpu_isar_feature(aa64_sve, cpu)) {
|
||||
assert(kvm_arm_sve_supported(cs));
|
||||
|
Loading…
Reference in New Issue
Block a user