From nobody Tue Nov 26 16:35:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1706306742; cv=none; d=zohomail.com; s=zohoarc; b=Txubj/hGPwc2foqM6hF7Q0pn6Jy8rMncOEp8soTajOceJsdF/EnUKCFpfZkHRq7Nt6HO91xvmWtYfhde8o4ExC1zVfWrC0O5reXEQCL/+KewEoyIQSOUC9mgOZ8lTcc0Uwa/Ny3B5dOHeLi3xN88zF6pPo1pzg8V7TLv8g+hdCk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706306742; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=O/oRcO4tifb6RNqppQVorvK9C+RbZOPQjJLz1T1FbLY=; b=UBp70ZNOgZ+OSxsjjmKjpSF9xao6IyoAi25wLZrcgLuwTiuB7EtY6sEs62Wds6CwI/VowPq97nkwOYpehr60W5ZQMT5p6UgCZz24Vdi9zQSjfpoZ9Bx8lKFlSqfoPWyNcFtqj9CGfwejOFoSXDifFj9tAD36ym6opkoPkzJ4yhE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1706306742530120.65373453824179; Fri, 26 Jan 2024 14:05:42 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.672552.1046695 (Exim 4.92) (envelope-from ) id 1rTUK3-0000k1-OA; Fri, 26 Jan 2024 22:05:15 +0000 Received: by outflank-mailman (output) from mailman id 672552.1046695; Fri, 26 Jan 2024 22:05:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rTUK3-0000ju-LF; Fri, 26 Jan 2024 22:05:15 +0000 Received: by outflank-mailman (input) for mailman id 672552; Fri, 26 Jan 2024 22:05:14 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rTUK2-0000jl-8k for xen-devel@lists.xenproject.org; Fri, 26 Jan 2024 22:05:14 +0000 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [2a00:1450:4864:20::32a]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id f9d30e6a-bc96-11ee-98f5-efadbce2ee36; Fri, 26 Jan 2024 23:05:11 +0100 (CET) Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-40ee418e7edso13000765e9.2 for ; Fri, 26 Jan 2024 14:05:11 -0800 (PST) Received: from m1x-phil.lan ([176.176.142.39]) by smtp.gmail.com with ESMTPSA id cw18-20020a170906c79200b00a31636793dfsm1038645ejb.201.2024.01.26.14.05.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 26 Jan 2024 14:05:10 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f9d30e6a-bc96-11ee-98f5-efadbce2ee36 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1706306711; x=1706911511; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O/oRcO4tifb6RNqppQVorvK9C+RbZOPQjJLz1T1FbLY=; b=zqGJnKLwwI1zd5UrzuFLoB0mDJZyZLfDtDTxEZy6OHtwUf7V+9We2RfrIybaVpudYP LAmpV8L1nAyGO5AFkinjQt0GRxfvTOQJd/SkT7MCJtGM1+rLehoABYhTqT6eeAsVkOjD rhh/t/LF4IcXJxE9jWAjS/kn8FCyiEvmirPQKtF4T6YsS+XN9fEVFb/nxTCwCcXxkBgb QFOHy6C5fg+Z3VPzbgc+ntO6yG5+IoFc46FYfgUTOtWIcjbJjTMOHJ6MYqfT+hc2Qp8Y 7ic80IFCjOW0Lo2qju1jNGiCDQJZ7FqLwxgzFq3+JeHGNjf0woelZ1pmOoz4jr4CYmjZ zpaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706306711; x=1706911511; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O/oRcO4tifb6RNqppQVorvK9C+RbZOPQjJLz1T1FbLY=; b=itR/8veGw8PaXl54vhCmNSa9H6geQWeb5IVs2lJRuWk96HykGsCRtrKKP4YxqudXbC 2sUb9K9wgnEEzTNmOPASqn0HwmzBA4EJbxflesJSpbCiSfGe6oKxZ3LjUGN4/lfwfv2N cqfTG6oh1ty9JxOqZlayIJRGlyJB3iysxcCaKzIfAqjBrL+uDwNVkbEnuXIILUby1Xvm n22xnyBxAYj8RuYhGAYuE1Fngavsl1c1OY5yQLwtgOfFVtISYH8ghPSS75Bc4nPDAMVr ZwHu22M0rylSgHweHnaSTRmXzZ1mzX3x2EH3VgjeUk+6EvlZxXIKANWsfgTOwgAYg+Ud T3Rw== X-Gm-Message-State: AOJu0YwTuenIi3lUYs8OKVIaVtl8V5BaL95CdvywzW9ffMhgW/wmXBvQ lEb3GEdjHjMQNhJALKXAcmuVhdveN7pub+LbRwIAAJ9feQBmEAZXokC8p5Faa5A= X-Google-Smtp-Source: AGHT+IFqlZ6gejaHz+iVyCgYbo6dNxfkBfnjFlmKrgI+NEH34xUembPlE5gAMbO4+w2GB13SlMXmPA== X-Received: by 2002:a05:600c:2d03:b0:40e:4ab2:cd75 with SMTP id x3-20020a05600c2d0300b0040e4ab2cd75mr349220wmf.74.1706306711223; Fri, 26 Jan 2024 14:05:11 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Thomas Huth , qemu-s390x@nongnu.org, qemu-riscv@nongnu.org, Eduardo Habkost , kvm@vger.kernel.org, qemu-ppc@nongnu.org, Richard Henderson , Vladimir Sementsov-Ogievskiy , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Michael S. Tsirkin" , Marcel Apfelbaum , Stefano Stabellini , Anthony Perard , Paul Durrant , Cameron Esfahani , Roman Bolshakov , Marcelo Tosatti , David Woodhouse , xen-devel@lists.xenproject.org Subject: [PATCH v2 10/23] target/i386: Prefer fast cpu_env() over slower CPU QOM cast macro Date: Fri, 26 Jan 2024 23:03:52 +0100 Message-ID: <20240126220407.95022-11-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240126220407.95022-1-philmd@linaro.org> References: <20240126220407.95022-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1706306744595100001 Mechanical patch produced running the command documented in scripts/coccinelle/cpu_env.cocci_template header. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: David Woodhouse Reviewed-by: Richard Henderson Reviewed-by: Zhao Liu --- target/i386/hvf/vmx.h | 13 +++------- hw/i386/vmmouse.c | 6 ++--- hw/i386/xen/xen-hvm.c | 3 +-- target/i386/arch_memory_mapping.c | 3 +-- target/i386/cpu-dump.c | 3 +-- target/i386/cpu.c | 37 +++++++++------------------ target/i386/helper.c | 39 ++++++++--------------------- target/i386/hvf/hvf.c | 8 ++---- target/i386/hvf/x86.c | 4 +-- target/i386/hvf/x86_emu.c | 6 ++--- target/i386/hvf/x86_task.c | 10 +++----- target/i386/hvf/x86hvf.c | 6 ++--- target/i386/kvm/kvm.c | 6 ++--- target/i386/kvm/xen-emu.c | 32 ++++++++--------------- target/i386/tcg/sysemu/bpt_helper.c | 3 +-- target/i386/tcg/tcg-cpu.c | 14 +++-------- target/i386/tcg/user/excp_helper.c | 3 +-- target/i386/tcg/user/seg_helper.c | 3 +-- 18 files changed, 59 insertions(+), 140 deletions(-) diff --git a/target/i386/hvf/vmx.h b/target/i386/hvf/vmx.h index 0fffcfa46c..1ad042269b 100644 --- a/target/i386/hvf/vmx.h +++ b/target/i386/hvf/vmx.h @@ -175,8 +175,7 @@ static inline void macvm_set_cr4(hv_vcpuid_t vcpu, uint= 64_t cr4) =20 static inline void macvm_set_rip(CPUState *cpu, uint64_t rip) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; + CPUX86State *env =3D cpu_env(cpu); uint64_t val; =20 /* BUG, should take considering overlap.. */ @@ -196,10 +195,7 @@ static inline void macvm_set_rip(CPUState *cpu, uint64= _t rip) =20 static inline void vmx_clear_nmi_blocking(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - - env->hflags2 &=3D ~HF2_NMI_MASK; + cpu_env(cpu)->hflags2 &=3D ~HF2_NMI_MASK; uint32_t gi =3D (uint32_t) rvmcs(cpu->accel->fd, VMCS_GUEST_INTERRUPTI= BILITY); gi &=3D ~VMCS_INTERRUPTIBILITY_NMI_BLOCKING; wvmcs(cpu->accel->fd, VMCS_GUEST_INTERRUPTIBILITY, gi); @@ -207,10 +203,7 @@ static inline void vmx_clear_nmi_blocking(CPUState *cp= u) =20 static inline void vmx_set_nmi_blocking(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - - env->hflags2 |=3D HF2_NMI_MASK; + cpu_env(cpu)->hflags2 |=3D HF2_NMI_MASK; uint32_t gi =3D (uint32_t)rvmcs(cpu->accel->fd, VMCS_GUEST_INTERRUPTIB= ILITY); gi |=3D VMCS_INTERRUPTIBILITY_NMI_BLOCKING; wvmcs(cpu->accel->fd, VMCS_GUEST_INTERRUPTIBILITY, gi); diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c index a8d014d09a..f292a14a15 100644 --- a/hw/i386/vmmouse.c +++ b/hw/i386/vmmouse.c @@ -74,8 +74,7 @@ struct VMMouseState { =20 static void vmmouse_get_data(uint32_t *data) { - X86CPU *cpu =3D X86_CPU(current_cpu); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(current_cpu); =20 data[0] =3D env->regs[R_EAX]; data[1] =3D env->regs[R_EBX]; data[2] =3D env->regs[R_ECX]; data[3] =3D env->regs[R_EDX]; @@ -84,8 +83,7 @@ static void vmmouse_get_data(uint32_t *data) =20 static void vmmouse_set_data(const uint32_t *data) { - X86CPU *cpu =3D X86_CPU(current_cpu); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(current_cpu); =20 env->regs[R_EAX] =3D data[0]; env->regs[R_EBX] =3D data[1]; env->regs[R_ECX] =3D data[2]; env->regs[R_EDX] =3D data[3]; diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index f42621e674..61e5060117 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -487,8 +487,7 @@ static void regs_to_cpu(vmware_regs_t *vmport_regs, ior= eq_t *req) =20 static void regs_from_cpu(vmware_regs_t *vmport_regs) { - X86CPU *cpu =3D X86_CPU(current_cpu); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(current_cpu); =20 vmport_regs->ebx =3D env->regs[R_EBX]; vmport_regs->ecx =3D env->regs[R_ECX]; diff --git a/target/i386/arch_memory_mapping.c b/target/i386/arch_memory_ma= pping.c index d1ff659128..c0604d5956 100644 --- a/target/i386/arch_memory_mapping.c +++ b/target/i386/arch_memory_mapping.c @@ -269,8 +269,7 @@ static void walk_pml5e(MemoryMappingList *list, Address= Space *as, bool x86_cpu_get_memory_mapping(CPUState *cs, MemoryMappingList *list, Error **errp) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); int32_t a20_mask; =20 if (!cpu_paging_enabled(cs)) { diff --git a/target/i386/cpu-dump.c b/target/i386/cpu-dump.c index 40697064d9..5459d84abd 100644 --- a/target/i386/cpu-dump.c +++ b/target/i386/cpu-dump.c @@ -343,8 +343,7 @@ void x86_cpu_dump_local_apic_state(CPUState *cs, int fl= ags) =20 void x86_cpu_dump_state(CPUState *cs, FILE *f, int flags) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); int eflags, i, nb; char cc_op_name[32]; static const char *seg_name[6] =3D { "ES", "CS", "SS", "DS", "FS", "GS= " }; diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 03822d9ba8..4702bff071 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5062,8 +5062,7 @@ static void x86_cpuid_version_get_family(Object *obj,= Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); int64_t value; =20 value =3D (env->cpuid_version >> 8) & 0xf; @@ -5077,8 +5076,7 @@ static void x86_cpuid_version_set_family(Object *obj,= Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); const int64_t min =3D 0; const int64_t max =3D 0xff + 0xf; int64_t value; @@ -5104,8 +5102,7 @@ static void x86_cpuid_version_get_model(Object *obj, = Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); int64_t value; =20 value =3D (env->cpuid_version >> 4) & 0xf; @@ -5117,8 +5114,7 @@ static void x86_cpuid_version_set_model(Object *obj, = Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); const int64_t min =3D 0; const int64_t max =3D 0xff; int64_t value; @@ -5140,11 +5136,9 @@ static void x86_cpuid_version_get_stepping(Object *o= bj, Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; int64_t value; =20 - value =3D env->cpuid_version & 0xf; + value =3D cpu_env(CPU(obj))->cpuid_version & 0xf; visit_type_int(v, name, &value, errp); } =20 @@ -5152,8 +5146,7 @@ static void x86_cpuid_version_set_stepping(Object *ob= j, Visitor *v, const char *name, void *opaque, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); const int64_t min =3D 0; const int64_t max =3D 0xf; int64_t value; @@ -5173,8 +5166,7 @@ static void x86_cpuid_version_set_stepping(Object *ob= j, Visitor *v, =20 static char *x86_cpuid_get_vendor(Object *obj, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); char *value; =20 value =3D g_malloc(CPUID_VENDOR_SZ + 1); @@ -5186,8 +5178,7 @@ static char *x86_cpuid_get_vendor(Object *obj, Error = **errp) static void x86_cpuid_set_vendor(Object *obj, const char *value, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); int i; =20 if (strlen(value) !=3D CPUID_VENDOR_SZ) { @@ -5208,8 +5199,7 @@ static void x86_cpuid_set_vendor(Object *obj, const c= har *value, =20 static char *x86_cpuid_get_model_id(Object *obj, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); char *value; int i; =20 @@ -5224,8 +5214,7 @@ static char *x86_cpuid_get_model_id(Object *obj, Erro= r **errp) static void x86_cpuid_set_model_id(Object *obj, const char *model_id, Error **errp) { - X86CPU *cpu =3D X86_CPU(obj); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(CPU(obj)); int c, len, i; =20 if (model_id =3D=3D NULL) { @@ -7673,8 +7662,7 @@ static vaddr x86_cpu_get_pc(CPUState *cs) =20 int x86_cpu_pending_interrupt(CPUState *cs, int interrupt_request) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 #if !defined(CONFIG_USER_ONLY) if (interrupt_request & CPU_INTERRUPT_POLL) { @@ -7722,8 +7710,7 @@ static bool x86_cpu_has_work(CPUState *cs) =20 static void x86_disas_set_info(CPUState *cs, disassemble_info *info) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 info->mach =3D (env->hflags & HF_CS64_MASK ? bfd_mach_x86_64 : env->hflags & HF_CS32_MASK ? bfd_mach_i386_i386 diff --git a/target/i386/helper.c b/target/i386/helper.c index 2070dd0dda..1e519c8b13 100644 --- a/target/i386/helper.c +++ b/target/i386/helper.c @@ -230,8 +230,7 @@ void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_= cr4) hwaddr x86_cpu_get_phys_page_attrs_debug(CPUState *cs, vaddr addr, MemTxAttrs *attrs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); target_ulong pde_addr, pte_addr; uint64_t pte; int32_t a20_mask; @@ -625,9 +624,7 @@ void cpu_load_efer(CPUX86State *env, uint64_t val) =20 uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 return address_space_ldub(as, addr, attrs, NULL); @@ -635,9 +632,7 @@ uint8_t x86_ldub_phys(CPUState *cs, hwaddr addr) =20 uint32_t x86_lduw_phys(CPUState *cs, hwaddr addr) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 return address_space_lduw(as, addr, attrs, NULL); @@ -645,9 +640,7 @@ uint32_t x86_lduw_phys(CPUState *cs, hwaddr addr) =20 uint32_t x86_ldl_phys(CPUState *cs, hwaddr addr) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 return address_space_ldl(as, addr, attrs, NULL); @@ -655,9 +648,7 @@ uint32_t x86_ldl_phys(CPUState *cs, hwaddr addr) =20 uint64_t x86_ldq_phys(CPUState *cs, hwaddr addr) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 return address_space_ldq(as, addr, attrs, NULL); @@ -665,9 +656,7 @@ uint64_t x86_ldq_phys(CPUState *cs, hwaddr addr) =20 void x86_stb_phys(CPUState *cs, hwaddr addr, uint8_t val) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 address_space_stb(as, addr, val, attrs, NULL); @@ -675,9 +664,7 @@ void x86_stb_phys(CPUState *cs, hwaddr addr, uint8_t va= l) =20 void x86_stl_phys_notdirty(CPUState *cs, hwaddr addr, uint32_t val) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 address_space_stl_notdirty(as, addr, val, attrs, NULL); @@ -685,9 +672,7 @@ void x86_stl_phys_notdirty(CPUState *cs, hwaddr addr, u= int32_t val) =20 void x86_stw_phys(CPUState *cs, hwaddr addr, uint32_t val) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 address_space_stw(as, addr, val, attrs, NULL); @@ -695,9 +680,7 @@ void x86_stw_phys(CPUState *cs, hwaddr addr, uint32_t v= al) =20 void x86_stl_phys(CPUState *cs, hwaddr addr, uint32_t val) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 address_space_stl(as, addr, val, attrs, NULL); @@ -705,9 +688,7 @@ void x86_stl_phys(CPUState *cs, hwaddr addr, uint32_t v= al) =20 void x86_stq_phys(CPUState *cs, hwaddr addr, uint64_t val) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - MemTxAttrs attrs =3D cpu_get_mem_attrs(env); + MemTxAttrs attrs =3D cpu_get_mem_attrs(cpu_env(cs)); AddressSpace *as =3D cpu_addressspace(cs, attrs); =20 address_space_stq(as, addr, val, attrs, NULL); diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index 11ffdd4c69..772578e3f4 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -159,10 +159,7 @@ static bool ept_emulation_fault(hvf_slot *slot, uint64= _t gpa, uint64_t ept_qual) =20 void hvf_arch_vcpu_destroy(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - - g_free(env->hvf_mmio_buf); + g_free(cpu_env(cpu)->hvf_mmio_buf); } =20 static void init_tsc_freq(CPUX86State *env) @@ -313,8 +310,7 @@ int hvf_arch_init_vcpu(CPUState *cpu) =20 static void hvf_store_events(CPUState *cpu, uint32_t ins_len, uint64_t idt= vec_info) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; + CPUX86State *env =3D cpu_env(cpu); =20 env->exception_nr =3D -1; env->exception_pending =3D 0; diff --git a/target/i386/hvf/x86.c b/target/i386/hvf/x86.c index 80e36136d0..932635232b 100644 --- a/target/i386/hvf/x86.c +++ b/target/i386/hvf/x86.c @@ -128,9 +128,7 @@ bool x86_is_real(CPUState *cpu) =20 bool x86_is_v8086(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - return x86_is_protected(cpu) && (env->eflags & VM_MASK); + return x86_is_protected(cpu) && (cpu_env(cpu)->eflags & VM_MASK); } =20 bool x86_is_long_mode(CPUState *cpu) diff --git a/target/i386/hvf/x86_emu.c b/target/i386/hvf/x86_emu.c index 3a3f0a50d0..0d13b32f91 100644 --- a/target/i386/hvf/x86_emu.c +++ b/target/i386/hvf/x86_emu.c @@ -1419,8 +1419,7 @@ static void init_cmd_handler() =20 void load_regs(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 int i =3D 0; RRX(env, R_EAX) =3D rreg(cs->accel->fd, HV_X86_RAX); @@ -1442,8 +1441,7 @@ void load_regs(CPUState *cs) =20 void store_regs(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 int i =3D 0; wreg(cs->accel->fd, HV_X86_RAX, RAX(env)); diff --git a/target/i386/hvf/x86_task.c b/target/i386/hvf/x86_task.c index f09bfbdda5..c173e9d883 100644 --- a/target/i386/hvf/x86_task.c +++ b/target/i386/hvf/x86_task.c @@ -33,8 +33,7 @@ // TODO: taskswitch handling static void save_state_to_tss32(CPUState *cpu, struct x86_tss_segment32 *t= ss) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; + CPUX86State *env =3D cpu_env(cpu); =20 /* CR3 and ldt selector are not saved intentionally */ tss->eip =3D (uint32_t)env->eip; @@ -58,8 +57,7 @@ static void save_state_to_tss32(CPUState *cpu, struct x86= _tss_segment32 *tss) =20 static void load_state_from_tss32(CPUState *cpu, struct x86_tss_segment32 = *tss) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; + CPUX86State *env =3D cpu_env(cpu); =20 wvmcs(cpu->accel->fd, VMCS_GUEST_CR3, tss->cr3); =20 @@ -128,9 +126,7 @@ void vmx_handle_task_switch(CPUState *cpu, x68_segment_= selector tss_sel, int rea uint32_t desc_limit; struct x86_call_gate task_gate_desc; struct vmx_segment vmx_seg; - - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; + CPUX86State *env =3D cpu_env(cpu); =20 x86_read_segment_descriptor(cpu, &next_tss_desc, tss_sel); x86_read_segment_descriptor(cpu, &curr_tss_desc, old_tss_sel); diff --git a/target/i386/hvf/x86hvf.c b/target/i386/hvf/x86hvf.c index 3b1ef5f49a..1e7fd587fe 100644 --- a/target/i386/hvf/x86hvf.c +++ b/target/i386/hvf/x86hvf.c @@ -238,8 +238,7 @@ void hvf_get_msrs(CPUState *cs) =20 int hvf_put_registers(CPUState *cs) { - X86CPU *x86cpu =3D X86_CPU(cs); - CPUX86State *env =3D &x86cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 wreg(cs->accel->fd, HV_X86_RAX, env->regs[R_EAX]); wreg(cs->accel->fd, HV_X86_RBX, env->regs[R_EBX]); @@ -282,8 +281,7 @@ int hvf_put_registers(CPUState *cs) =20 int hvf_get_registers(CPUState *cs) { - X86CPU *x86cpu =3D X86_CPU(cs); - CPUX86State *env =3D &x86cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->regs[R_EAX] =3D rreg(cs->accel->fd, HV_X86_RAX); env->regs[R_EBX] =3D rreg(cs->accel->fd, HV_X86_RBX); diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 76a66246eb..e4f1c62888 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -754,8 +754,7 @@ static inline bool freq_within_bounds(int freq, int tar= get_freq) =20 static int kvm_arch_set_tsc_khz(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); int r, cur_freq; bool set_ioctl =3D false; =20 @@ -5369,8 +5368,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) =20 bool kvm_arch_stop_on_emulation_error(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 kvm_cpu_synchronize_state(cs); return !(env->cr[0] & CR0_PE_MASK) || diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c index fc2c2321ac..10350a22d1 100644 --- a/target/i386/kvm/xen-emu.c +++ b/target/i386/kvm/xen-emu.c @@ -313,10 +313,7 @@ static int kvm_xen_set_vcpu_callback_vector(CPUState *= cs) =20 static void do_set_vcpu_callback_vector(CPUState *cs, run_on_cpu_data data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - - env->xen_vcpu_callback_vector =3D data.host_int; + cpu_env(cs)->xen_vcpu_callback_vector =3D data.host_int; =20 if (kvm_xen_has_cap(EVTCHN_SEND)) { kvm_xen_set_vcpu_callback_vector(cs); @@ -325,8 +322,7 @@ static void do_set_vcpu_callback_vector(CPUState *cs, r= un_on_cpu_data data) =20 static int set_vcpu_info(CPUState *cs, uint64_t gpa) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); MemoryRegionSection mrs =3D { .mr =3D NULL }; void *vcpu_info_hva =3D NULL; int ret; @@ -362,8 +358,7 @@ static int set_vcpu_info(CPUState *cs, uint64_t gpa) =20 static void do_set_vcpu_info_default_gpa(CPUState *cs, run_on_cpu_data dat= a) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->xen_vcpu_info_default_gpa =3D data.host_ulong; =20 @@ -375,8 +370,7 @@ static void do_set_vcpu_info_default_gpa(CPUState *cs, = run_on_cpu_data data) =20 static void do_set_vcpu_info_gpa(CPUState *cs, run_on_cpu_data data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->xen_vcpu_info_gpa =3D data.host_ulong; =20 @@ -479,8 +473,7 @@ void kvm_xen_inject_vcpu_callback_vector(uint32_t vcpu_= id, int type) /* Must always be called with xen_timers_lock held */ static int kvm_xen_set_vcpu_timer(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 struct kvm_xen_vcpu_attr va =3D { .type =3D KVM_XEN_VCPU_ATTR_TYPE_TIMER, @@ -527,8 +520,7 @@ int kvm_xen_set_vcpu_virq(uint32_t vcpu_id, uint16_t vi= rq, uint16_t port) =20 static void do_set_vcpu_time_info_gpa(CPUState *cs, run_on_cpu_data data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->xen_vcpu_time_info_gpa =3D data.host_ulong; =20 @@ -538,8 +530,7 @@ static void do_set_vcpu_time_info_gpa(CPUState *cs, run= _on_cpu_data data) =20 static void do_set_vcpu_runstate_gpa(CPUState *cs, run_on_cpu_data data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->xen_vcpu_runstate_gpa =3D data.host_ulong; =20 @@ -549,8 +540,7 @@ static void do_set_vcpu_runstate_gpa(CPUState *cs, run_= on_cpu_data data) =20 static void do_vcpu_soft_reset(CPUState *cs, run_on_cpu_data data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->xen_vcpu_info_gpa =3D INVALID_GPA; env->xen_vcpu_info_default_gpa =3D INVALID_GPA; @@ -1813,8 +1803,7 @@ uint16_t kvm_xen_get_evtchn_max_pirq(void) =20 int kvm_put_xen_state(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); uint64_t gpa; int ret; =20 @@ -1887,8 +1876,7 @@ int kvm_put_xen_state(CPUState *cs) =20 int kvm_get_xen_state(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); uint64_t gpa; int ret; =20 diff --git a/target/i386/tcg/sysemu/bpt_helper.c b/target/i386/tcg/sysemu/b= pt_helper.c index 4d96a48a3c..90d6117497 100644 --- a/target/i386/tcg/sysemu/bpt_helper.c +++ b/target/i386/tcg/sysemu/bpt_helper.c @@ -208,8 +208,7 @@ bool check_hw_breakpoints(CPUX86State *env, bool force_= dr6_update) =20 void breakpoint_handler(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 if (cs->watchpoint_hit) { if (cs->watchpoint_hit->flags & BP_CPU) { diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index e1405b7be9..8f8fd6529d 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -29,8 +29,7 @@ =20 static void x86_cpu_exec_enter(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 CC_SRC =3D env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); env->df =3D 1 - (2 * ((env->eflags >> 10) & 1)); @@ -40,8 +39,7 @@ static void x86_cpu_exec_enter(CPUState *cs) =20 static void x86_cpu_exec_exit(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 env->eflags =3D cpu_compute_eflags(env); } @@ -65,8 +63,7 @@ static void x86_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, const uint64_t *data) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); int cc_op =3D data[1]; uint64_t new_pc; =20 @@ -96,11 +93,8 @@ static void x86_restore_state_to_opc(CPUState *cs, #ifndef CONFIG_USER_ONLY static bool x86_debug_check_breakpoint(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; - /* RF disables all architectural breakpoints. */ - return !(env->eflags & RF_MASK); + return !(cpu_env(cs)->eflags & RF_MASK); } #endif =20 diff --git a/target/i386/tcg/user/excp_helper.c b/target/i386/tcg/user/excp= _helper.c index b3bdb7831a..bfcae9f39e 100644 --- a/target/i386/tcg/user/excp_helper.c +++ b/target/i386/tcg/user/excp_helper.c @@ -26,8 +26,7 @@ void x86_cpu_record_sigsegv(CPUState *cs, vaddr addr, MMUAccessType access_type, bool maperr, uintptr_t ra) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 /* * The error_code that hw reports as part of the exception frame diff --git a/target/i386/tcg/user/seg_helper.c b/target/i386/tcg/user/seg_h= elper.c index c45f2ac2ba..2f89dbb51e 100644 --- a/target/i386/tcg/user/seg_helper.c +++ b/target/i386/tcg/user/seg_helper.c @@ -78,8 +78,7 @@ static void do_interrupt_user(CPUX86State *env, int intno= , int is_int, =20 void x86_cpu_do_interrupt(CPUState *cs) { - X86CPU *cpu =3D X86_CPU(cs); - CPUX86State *env =3D &cpu->env; + CPUX86State *env =3D cpu_env(cs); =20 /* if user mode only, we simulate a fake exception which will be handled outside the cpu execution --=20 2.41.0