mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
bulk: Call in place single use cpu_env()
Avoid CPUArchState local variable when cpu_env() is used once. Mechanical patch using the following Coccinelle spatch script: @@ type CPUArchState; identifier env; expression cs; @@ { - CPUArchState *env = cpu_env(cs); ... when != env - env + cpu_env(cs) ... when != env } Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240129164514.73104-5-philmd@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
97e0310601
commit
94956d7b51
9 changed files with 16 additions and 31 deletions
|
@ -300,7 +300,6 @@ static SegmentCache whpx_seg_h2q(const WHV_X64_SEGMENT_REGISTER *hs)
|
|||
/* X64 Extended Control Registers */
|
||||
static void whpx_set_xcrs(CPUState *cpu)
|
||||
{
|
||||
CPUX86State *env = cpu_env(cpu);
|
||||
HRESULT hr;
|
||||
struct whpx_state *whpx = &whpx_global;
|
||||
WHV_REGISTER_VALUE xcr0;
|
||||
|
@ -311,7 +310,7 @@ static void whpx_set_xcrs(CPUState *cpu)
|
|||
}
|
||||
|
||||
/* Only xcr0 is supported by the hypervisor currently */
|
||||
xcr0.Reg64 = env->xcr0;
|
||||
xcr0.Reg64 = cpu_env(cpu)->xcr0;
|
||||
hr = whp_dispatch.WHvSetVirtualProcessorRegisters(
|
||||
whpx->partition, cpu->cpu_index, &xcr0_name, 1, &xcr0);
|
||||
if (FAILED(hr)) {
|
||||
|
@ -321,7 +320,6 @@ static void whpx_set_xcrs(CPUState *cpu)
|
|||
|
||||
static int whpx_set_tsc(CPUState *cpu)
|
||||
{
|
||||
CPUX86State *env = cpu_env(cpu);
|
||||
WHV_REGISTER_NAME tsc_reg = WHvX64RegisterTsc;
|
||||
WHV_REGISTER_VALUE tsc_val;
|
||||
HRESULT hr;
|
||||
|
@ -345,7 +343,7 @@ static int whpx_set_tsc(CPUState *cpu)
|
|||
}
|
||||
}
|
||||
|
||||
tsc_val.Reg64 = env->tsc;
|
||||
tsc_val.Reg64 = cpu_env(cpu)->tsc;
|
||||
hr = whp_dispatch.WHvSetVirtualProcessorRegisters(
|
||||
whpx->partition, cpu->cpu_index, &tsc_reg, 1, &tsc_val);
|
||||
if (FAILED(hr)) {
|
||||
|
@ -556,7 +554,6 @@ static void whpx_set_registers(CPUState *cpu, int level)
|
|||
|
||||
static int whpx_get_tsc(CPUState *cpu)
|
||||
{
|
||||
CPUX86State *env = cpu_env(cpu);
|
||||
WHV_REGISTER_NAME tsc_reg = WHvX64RegisterTsc;
|
||||
WHV_REGISTER_VALUE tsc_val;
|
||||
HRESULT hr;
|
||||
|
@ -569,14 +566,13 @@ static int whpx_get_tsc(CPUState *cpu)
|
|||
return -1;
|
||||
}
|
||||
|
||||
env->tsc = tsc_val.Reg64;
|
||||
cpu_env(cpu)->tsc = tsc_val.Reg64;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* X64 Extended Control Registers */
|
||||
static void whpx_get_xcrs(CPUState *cpu)
|
||||
{
|
||||
CPUX86State *env = cpu_env(cpu);
|
||||
HRESULT hr;
|
||||
struct whpx_state *whpx = &whpx_global;
|
||||
WHV_REGISTER_VALUE xcr0;
|
||||
|
@ -594,7 +590,7 @@ static void whpx_get_xcrs(CPUState *cpu)
|
|||
return;
|
||||
}
|
||||
|
||||
env->xcr0 = xcr0.Reg64;
|
||||
cpu_env(cpu)->xcr0 = xcr0.Reg64;
|
||||
}
|
||||
|
||||
static void whpx_get_registers(CPUState *cpu)
|
||||
|
@ -1400,8 +1396,7 @@ static vaddr whpx_vcpu_get_pc(CPUState *cpu, bool exit_context_valid)
|
|||
{
|
||||
if (cpu->vcpu_dirty) {
|
||||
/* The CPU registers have been modified by other parts of QEMU. */
|
||||
CPUArchState *env = cpu_env(cpu);
|
||||
return env->eip;
|
||||
return cpu_env(cpu)->eip;
|
||||
} else if (exit_context_valid) {
|
||||
/*
|
||||
* The CPU registers have not been modified by neither other parts
|
||||
|
@ -1439,12 +1434,11 @@ static vaddr whpx_vcpu_get_pc(CPUState *cpu, bool exit_context_valid)
|
|||
|
||||
static int whpx_handle_halt(CPUState *cpu)
|
||||
{
|
||||
CPUX86State *env = cpu_env(cpu);
|
||||
int ret = 0;
|
||||
|
||||
bql_lock();
|
||||
if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
|
||||
(env->eflags & IF_MASK)) &&
|
||||
(cpu_env(cpu)->eflags & IF_MASK)) &&
|
||||
!(cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
|
||||
cpu->exception_index = EXCP_HLT;
|
||||
cpu->halted = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue