i386: make cpu_load_efer sysemu-only
cpu_load_efer is now used only for sysemu code. Therefore, move this function implementation to sysemu-only section of helper.c Signed-off-by: Claudio Fontana <cfontana@suse.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20210322132800.7470-22-cfontana@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1852f0942c
commit
6308728907
@ -1958,6 +1958,11 @@ static inline AddressSpace *cpu_addressspace(CPUState *cs, MemTxAttrs attrs)
|
|||||||
return cpu_get_address_space(cs, cpu_asidx_from_attrs(cs, attrs));
|
return cpu_get_address_space(cs, cpu_asidx_from_attrs(cs, attrs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* load efer and update the corresponding hflags. XXX: do consistency
|
||||||
|
* checks with cpuid bits?
|
||||||
|
*/
|
||||||
|
void cpu_load_efer(CPUX86State *env, uint64_t val);
|
||||||
uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr);
|
uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr);
|
||||||
uint32_t x86_lduw_phys(CPUState *cs, hwaddr addr);
|
uint32_t x86_lduw_phys(CPUState *cs, hwaddr addr);
|
||||||
uint32_t x86_ldl_phys(CPUState *cs, hwaddr addr);
|
uint32_t x86_ldl_phys(CPUState *cs, hwaddr addr);
|
||||||
@ -2054,21 +2059,6 @@ static inline uint32_t cpu_compute_eflags(CPUX86State *env)
|
|||||||
return eflags;
|
return eflags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* load efer and update the corresponding hflags. XXX: do consistency
|
|
||||||
checks with cpuid bits? */
|
|
||||||
static inline void cpu_load_efer(CPUX86State *env, uint64_t val)
|
|
||||||
{
|
|
||||||
env->efer = val;
|
|
||||||
env->hflags &= ~(HF_LMA_MASK | HF_SVME_MASK);
|
|
||||||
if (env->efer & MSR_EFER_LMA) {
|
|
||||||
env->hflags |= HF_LMA_MASK;
|
|
||||||
}
|
|
||||||
if (env->efer & MSR_EFER_SVME) {
|
|
||||||
env->hflags |= HF_SVME_MASK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline MemTxAttrs cpu_get_mem_attrs(CPUX86State *env)
|
static inline MemTxAttrs cpu_get_mem_attrs(CPUX86State *env)
|
||||||
{
|
{
|
||||||
return ((MemTxAttrs) { .secure = (env->hflags & HF_SMM_MASK) != 0 });
|
return ((MemTxAttrs) { .secure = (env->hflags & HF_SMM_MASK) != 0 });
|
||||||
|
@ -574,6 +574,19 @@ void do_cpu_sipi(X86CPU *cpu)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
||||||
|
void cpu_load_efer(CPUX86State *env, uint64_t val)
|
||||||
|
{
|
||||||
|
env->efer = val;
|
||||||
|
env->hflags &= ~(HF_LMA_MASK | HF_SVME_MASK);
|
||||||
|
if (env->efer & MSR_EFER_LMA) {
|
||||||
|
env->hflags |= HF_LMA_MASK;
|
||||||
|
}
|
||||||
|
if (env->efer & MSR_EFER_SVME) {
|
||||||
|
env->hflags |= HF_SVME_MASK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr)
|
uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr)
|
||||||
{
|
{
|
||||||
X86CPU *cpu = X86_CPU(cs);
|
X86CPU *cpu = X86_CPU(cs);
|
||||||
|
Loading…
Reference in New Issue
Block a user