A transition from CPUFooState to FooCPU can be considered safe,
just like FooCPU::env access in the opposite direction.
The only benefit of the FOO_CPU() casts would be protection against
bogus CPUFooState pointers, but then surrounding code would likely
break, too.
This should slightly improve interrupt etc. performance when going from
CPUFooState to FooCPU.
For any additional CPU() casts see
3556c233d931ad5ffa46a35cb25cfc057732ebb8
(qom: allow turning cast debugging off).
Reported-by: Anthony Liguori <aliguori@us.ibm.com>
Acked-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
16 files changed:
static inline AlphaCPU *alpha_env_get_cpu(CPUAlphaState *env)
{
static inline AlphaCPU *alpha_env_get_cpu(CPUAlphaState *env)
{
- return ALPHA_CPU(container_of(env, AlphaCPU, env));
+ return container_of(env, AlphaCPU, env);
}
#define ENV_GET_CPU(e) CPU(alpha_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(alpha_env_get_cpu(e))
static inline ARMCPU *arm_env_get_cpu(CPUARMState *env)
{
static inline ARMCPU *arm_env_get_cpu(CPUARMState *env)
{
- return ARM_CPU(container_of(env, ARMCPU, env));
+ return container_of(env, ARMCPU, env);
}
#define ENV_GET_CPU(e) CPU(arm_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(arm_env_get_cpu(e))
static inline CRISCPU *cris_env_get_cpu(CPUCRISState *env)
{
static inline CRISCPU *cris_env_get_cpu(CPUCRISState *env)
{
- return CRIS_CPU(container_of(env, CRISCPU, env));
+ return container_of(env, CRISCPU, env);
}
#define ENV_GET_CPU(e) CPU(cris_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(cris_env_get_cpu(e))
static inline X86CPU *x86_env_get_cpu(CPUX86State *env)
{
static inline X86CPU *x86_env_get_cpu(CPUX86State *env)
{
- return X86_CPU(container_of(env, X86CPU, env));
+ return container_of(env, X86CPU, env);
}
#define ENV_GET_CPU(e) CPU(x86_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(x86_env_get_cpu(e))
static inline LM32CPU *lm32_env_get_cpu(CPULM32State *env)
{
static inline LM32CPU *lm32_env_get_cpu(CPULM32State *env)
{
- return LM32_CPU(container_of(env, LM32CPU, env));
+ return container_of(env, LM32CPU, env);
}
#define ENV_GET_CPU(e) CPU(lm32_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(lm32_env_get_cpu(e))
static inline M68kCPU *m68k_env_get_cpu(CPUM68KState *env)
{
static inline M68kCPU *m68k_env_get_cpu(CPUM68KState *env)
{
- return M68K_CPU(container_of(env, M68kCPU, env));
+ return container_of(env, M68kCPU, env);
}
#define ENV_GET_CPU(e) CPU(m68k_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(m68k_env_get_cpu(e))
static inline MicroBlazeCPU *mb_env_get_cpu(CPUMBState *env)
{
static inline MicroBlazeCPU *mb_env_get_cpu(CPUMBState *env)
{
- return MICROBLAZE_CPU(container_of(env, MicroBlazeCPU, env));
+ return container_of(env, MicroBlazeCPU, env);
}
#define ENV_GET_CPU(e) CPU(mb_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(mb_env_get_cpu(e))
static inline MIPSCPU *mips_env_get_cpu(CPUMIPSState *env)
{
static inline MIPSCPU *mips_env_get_cpu(CPUMIPSState *env)
{
- return MIPS_CPU(container_of(env, MIPSCPU, env));
+ return container_of(env, MIPSCPU, env);
}
#define ENV_GET_CPU(e) CPU(mips_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(mips_env_get_cpu(e))
static inline MoxieCPU *moxie_env_get_cpu(CPUMoxieState *env)
{
static inline MoxieCPU *moxie_env_get_cpu(CPUMoxieState *env)
{
- return MOXIE_CPU(container_of(env, MoxieCPU, env));
+ return container_of(env, MoxieCPU, env);
}
#define ENV_GET_CPU(e) CPU(moxie_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(moxie_env_get_cpu(e))
static inline OpenRISCCPU *openrisc_env_get_cpu(CPUOpenRISCState *env)
{
static inline OpenRISCCPU *openrisc_env_get_cpu(CPUOpenRISCState *env)
{
- return OPENRISC_CPU(container_of(env, OpenRISCCPU, env));
+ return container_of(env, OpenRISCCPU, env);
}
#define ENV_GET_CPU(e) CPU(openrisc_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(openrisc_env_get_cpu(e))
static inline PowerPCCPU *ppc_env_get_cpu(CPUPPCState *env)
{
static inline PowerPCCPU *ppc_env_get_cpu(CPUPPCState *env)
{
- return POWERPC_CPU(container_of(env, PowerPCCPU, env));
+ return container_of(env, PowerPCCPU, env);
}
#define ENV_GET_CPU(e) CPU(ppc_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(ppc_env_get_cpu(e))
static inline S390CPU *s390_env_get_cpu(CPUS390XState *env)
{
static inline S390CPU *s390_env_get_cpu(CPUS390XState *env)
{
- return S390_CPU(container_of(env, S390CPU, env));
+ return container_of(env, S390CPU, env);
}
#define ENV_GET_CPU(e) CPU(s390_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(s390_env_get_cpu(e))
static inline SuperHCPU *sh_env_get_cpu(CPUSH4State *env)
{
static inline SuperHCPU *sh_env_get_cpu(CPUSH4State *env)
{
- return SUPERH_CPU(container_of(env, SuperHCPU, env));
+ return container_of(env, SuperHCPU, env);
}
#define ENV_GET_CPU(e) CPU(sh_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(sh_env_get_cpu(e))
static inline SPARCCPU *sparc_env_get_cpu(CPUSPARCState *env)
{
static inline SPARCCPU *sparc_env_get_cpu(CPUSPARCState *env)
{
- return SPARC_CPU(container_of(env, SPARCCPU, env));
+ return container_of(env, SPARCCPU, env);
}
#define ENV_GET_CPU(e) CPU(sparc_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(sparc_env_get_cpu(e))
static inline UniCore32CPU *uc32_env_get_cpu(CPUUniCore32State *env)
{
static inline UniCore32CPU *uc32_env_get_cpu(CPUUniCore32State *env)
{
- return UNICORE32_CPU(container_of(env, UniCore32CPU, env));
+ return container_of(env, UniCore32CPU, env);
}
#define ENV_GET_CPU(e) CPU(uc32_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(uc32_env_get_cpu(e))
static inline XtensaCPU *xtensa_env_get_cpu(const CPUXtensaState *env)
{
static inline XtensaCPU *xtensa_env_get_cpu(const CPUXtensaState *env)
{
- return XTENSA_CPU(container_of(env, XtensaCPU, env));
+ return container_of(env, XtensaCPU, env);
}
#define ENV_GET_CPU(e) CPU(xtensa_env_get_cpu(e))
}
#define ENV_GET_CPU(e) CPU(xtensa_env_get_cpu(e))