Skip to content

Commit

Permalink
cpu-exec: Purge all uses of ENV_GET_CPU()
Browse files Browse the repository at this point in the history
Remove un-needed usages of ENV_GET_CPU() by converting the APIs to use
CPUState pointers and retrieving the env_ptr as minimally needed.

Scripted conversion for target-* change:

for I in target-*/cpu.h; do
    sed -i \
    's/\(^int cpu_[^_]*_exec(\)[^ ][^ ]* \*s);$/\1CPUState *cpu);/' \
    $I;
done

Signed-off-by: Peter Crosthwaite <[email protected]>
Signed-off-by: Andreas Färber <[email protected]>
  • Loading branch information
pcrost authored and afaerber committed Jul 9, 2015
1 parent 4bad9e3 commit ea3e984
Show file tree
Hide file tree
Showing 21 changed files with 49 additions and 49 deletions.
4 changes: 3 additions & 1 deletion bsd-user/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ static void set_idt(int n, unsigned int dpl)

void cpu_loop(CPUX86State *env)
{
X86CPU *cpu = x86_env_get_cpu(env);
CPUState *cs = CPU(cpu);
int trapnr;
abi_ulong pc;
//target_siginfo_t info;
Expand Down Expand Up @@ -512,7 +514,7 @@ void cpu_loop(CPUSPARCState *env)
//target_siginfo_t info;

while (1) {
trapnr = cpu_sparc_exec (env);
trapnr = cpu_sparc_exec(cs);

switch (trapnr) {
#ifndef TARGET_SPARC64
Expand Down
28 changes: 13 additions & 15 deletions cpu-exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,9 @@ static inline tcg_target_ulong cpu_tb_exec(CPUState *cpu, uint8_t *tb_ptr)

/* Execute the code without caching the generated code. An interpreter
could be used if available. */
static void cpu_exec_nocache(CPUArchState *env, int max_cycles,
static void cpu_exec_nocache(CPUState *cpu, int max_cycles,
TranslationBlock *orig_tb)
{
CPUState *cpu = ENV_GET_CPU(env);
TranslationBlock *tb;
target_ulong pc = orig_tb->pc;
target_ulong cs_base = orig_tb->cs_base;
Expand All @@ -254,12 +253,12 @@ static void cpu_exec_nocache(CPUArchState *env, int max_cycles,
tb_free(tb);
}

static TranslationBlock *tb_find_slow(CPUArchState *env,
static TranslationBlock *tb_find_slow(CPUState *cpu,
target_ulong pc,
target_ulong cs_base,
uint64_t flags)
{
CPUState *cpu = ENV_GET_CPU(env);
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
TranslationBlock *tb, **ptb1;
unsigned int h;
tb_page_addr_t phys_pc, phys_page1;
Expand Down Expand Up @@ -311,9 +310,9 @@ static TranslationBlock *tb_find_slow(CPUArchState *env,
return tb;
}

static inline TranslationBlock *tb_find_fast(CPUArchState *env)
static inline TranslationBlock *tb_find_fast(CPUState *cpu)
{
CPUState *cpu = ENV_GET_CPU(env);
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
TranslationBlock *tb;
target_ulong cs_base, pc;
int flags;
Expand All @@ -325,14 +324,13 @@ static inline TranslationBlock *tb_find_fast(CPUArchState *env)
tb = cpu->tb_jmp_cache[tb_jmp_cache_hash_func(pc)];
if (unlikely(!tb || tb->pc != pc || tb->cs_base != cs_base ||
tb->flags != flags)) {
tb = tb_find_slow(env, pc, cs_base, flags);
tb = tb_find_slow(cpu, pc, cs_base, flags);
}
return tb;
}

static void cpu_handle_debug_exception(CPUArchState *env)
static void cpu_handle_debug_exception(CPUState *cpu)
{
CPUState *cpu = ENV_GET_CPU(env);
CPUClass *cc = CPU_GET_CLASS(cpu);
CPUWatchpoint *wp;

Expand All @@ -349,12 +347,12 @@ static void cpu_handle_debug_exception(CPUArchState *env)

volatile sig_atomic_t exit_request;

int cpu_exec(CPUArchState *env)
int cpu_exec(CPUState *cpu)
{
CPUState *cpu = ENV_GET_CPU(env);
CPUClass *cc = CPU_GET_CLASS(cpu);
#ifdef TARGET_I386
X86CPU *x86_cpu = X86_CPU(cpu);
CPUArchState *env = &x86_cpu->env;
#endif
int ret, interrupt_request;
TranslationBlock *tb;
Expand Down Expand Up @@ -407,7 +405,7 @@ int cpu_exec(CPUArchState *env)
/* exit request from the cpu execution loop */
ret = cpu->exception_index;
if (ret == EXCP_DEBUG) {
cpu_handle_debug_exception(env);
cpu_handle_debug_exception(cpu);
}
cpu->exception_index = -1;
break;
Expand Down Expand Up @@ -483,7 +481,7 @@ int cpu_exec(CPUArchState *env)
}
spin_lock(&tcg_ctx.tb_ctx.tb_lock);
have_tb_lock = true;
tb = tb_find_fast(env);
tb = tb_find_fast(cpu);
/* Note: we do it here to avoid a gcc bug on Mac OS X when
doing it in tb_find_slow */
if (tcg_ctx.tb_ctx.tb_invalidated_flag) {
Expand Down Expand Up @@ -543,7 +541,7 @@ int cpu_exec(CPUArchState *env)
if (insns_left > 0) {
/* Execute remaining instructions. */
tb = (TranslationBlock *)(next_tb & ~TB_EXIT_MASK);
cpu_exec_nocache(env, insns_left, tb);
cpu_exec_nocache(cpu, insns_left, tb);
align_clocks(&sc, cpu);
}
cpu->exception_index = EXCP_INTERRUPT;
Expand All @@ -567,11 +565,11 @@ int cpu_exec(CPUArchState *env)
/* Reload env after longjmp - the compiler may have smashed all
* local variables as longjmp is marked 'noreturn'. */
cpu = current_cpu;
env = cpu->env_ptr;
cc = CPU_GET_CLASS(cpu);
cpu->can_do_io = 1;
#ifdef TARGET_I386
x86_cpu = X86_CPU(cpu);
env = &x86_cpu->env;
#endif
if (have_tb_lock) {
spin_unlock(&tcg_ctx.tb_ctx.tb_lock);
Expand Down
3 changes: 1 addition & 2 deletions cpus.c
Original file line number Diff line number Diff line change
Expand Up @@ -1359,7 +1359,6 @@ int vm_stop_force_state(RunState state)

static int tcg_cpu_exec(CPUState *cpu)
{
CPUArchState *env = cpu->env_ptr;
int ret;
#ifdef CONFIG_PROFILER
int64_t ti;
Expand Down Expand Up @@ -1394,7 +1393,7 @@ static int tcg_cpu_exec(CPUState *cpu)
cpu->icount_decr.u16.low = decr;
cpu->icount_extra = count;
}
ret = cpu_exec(env);
ret = cpu_exec(cpu);
#ifdef CONFIG_PROFILER
tcg_time += profile_getclock() - ti;
#endif
Expand Down
28 changes: 14 additions & 14 deletions linux-user/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ void cpu_loop(CPUX86State *env)

for(;;) {
cpu_exec_start(cs);
trapnr = cpu_x86_exec(env);
trapnr = cpu_x86_exec(cs);
cpu_exec_end(cs);
switch(trapnr) {
case 0x80:
Expand Down Expand Up @@ -674,7 +674,7 @@ void cpu_loop(CPUARMState *env)

for(;;) {
cpu_exec_start(cs);
trapnr = cpu_arm_exec(env);
trapnr = cpu_arm_exec(cs);
cpu_exec_end(cs);
switch(trapnr) {
case EXCP_UDEF:
Expand Down Expand Up @@ -1005,7 +1005,7 @@ void cpu_loop(CPUARMState *env)

for (;;) {
cpu_exec_start(cs);
trapnr = cpu_arm_exec(env);
trapnr = cpu_arm_exec(cs);
cpu_exec_end(cs);

switch (trapnr) {
Expand Down Expand Up @@ -1084,7 +1084,7 @@ void cpu_loop(CPUUniCore32State *env)

for (;;) {
cpu_exec_start(cs);
trapnr = uc32_cpu_exec(env);
trapnr = uc32_cpu_exec(cs);
cpu_exec_end(cs);
switch (trapnr) {
case UC32_EXCP_PRIV:
Expand Down Expand Up @@ -1285,7 +1285,7 @@ void cpu_loop (CPUSPARCState *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_sparc_exec (env);
trapnr = cpu_sparc_exec(cs);
cpu_exec_end(cs);

/* Compute PSR before exposing state. */
Expand Down Expand Up @@ -1565,7 +1565,7 @@ void cpu_loop(CPUPPCState *env)

for(;;) {
cpu_exec_start(cs);
trapnr = cpu_ppc_exec(env);
trapnr = cpu_ppc_exec(cs);
cpu_exec_end(cs);
switch(trapnr) {
case POWERPC_EXCP_NONE:
Expand Down Expand Up @@ -2417,7 +2417,7 @@ void cpu_loop(CPUMIPSState *env)

for(;;) {
cpu_exec_start(cs);
trapnr = cpu_mips_exec(env);
trapnr = cpu_mips_exec(cs);
cpu_exec_end(cs);
switch(trapnr) {
case EXCP_SYSCALL:
Expand Down Expand Up @@ -2654,7 +2654,7 @@ void cpu_loop(CPUOpenRISCState *env)

for (;;) {
cpu_exec_start(cs);
trapnr = cpu_exec(env);
trapnr = cpu_openrisc_exec(cs);
cpu_exec_end(cs);
gdbsig = 0;

Expand Down Expand Up @@ -2744,7 +2744,7 @@ void cpu_loop(CPUSH4State *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_sh4_exec (env);
trapnr = cpu_sh4_exec(cs);
cpu_exec_end(cs);

switch (trapnr) {
Expand Down Expand Up @@ -2806,7 +2806,7 @@ void cpu_loop(CPUCRISState *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_cris_exec (env);
trapnr = cpu_cris_exec(cs);
cpu_exec_end(cs);
switch (trapnr) {
case 0xaa:
Expand Down Expand Up @@ -2867,7 +2867,7 @@ void cpu_loop(CPUMBState *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_mb_exec (env);
trapnr = cpu_mb_exec(cs);
cpu_exec_end(cs);
switch (trapnr) {
case 0xaa:
Expand Down Expand Up @@ -2972,7 +2972,7 @@ void cpu_loop(CPUM68KState *env)

for(;;) {
cpu_exec_start(cs);
trapnr = cpu_m68k_exec(env);
trapnr = cpu_m68k_exec(cs);
cpu_exec_end(cs);
switch(trapnr) {
case EXCP_ILLEGAL:
Expand Down Expand Up @@ -3111,7 +3111,7 @@ void cpu_loop(CPUAlphaState *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_alpha_exec (env);
trapnr = cpu_alpha_exec(cs);
cpu_exec_end(cs);

/* All of the traps imply a transition through PALcode, which
Expand Down Expand Up @@ -3299,7 +3299,7 @@ void cpu_loop(CPUS390XState *env)

while (1) {
cpu_exec_start(cs);
trapnr = cpu_s390x_exec(env);
trapnr = cpu_s390x_exec(cs);
cpu_exec_end(cs);
switch (trapnr) {
case EXCP_INTERRUPT:
Expand Down
2 changes: 1 addition & 1 deletion target-alpha/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ AlphaCPU *cpu_alpha_init(const char *cpu_model);
#define cpu_init(cpu_model) CPU(cpu_alpha_init(cpu_model))

void alpha_cpu_list(FILE *f, fprintf_function cpu_fprintf);
int cpu_alpha_exec(CPUAlphaState *s);
int cpu_alpha_exec(CPUState *cpu);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-arm/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ typedef struct CPUARMState {
#include "cpu-qom.h"

ARMCPU *cpu_arm_init(const char *cpu_model);
int cpu_arm_exec(CPUARMState *s);
int cpu_arm_exec(CPUState *cpu);
uint32_t do_arm_semihosting(CPUARMState *env);
void aarch64_sync_32_to_64(CPUARMState *env);
void aarch64_sync_64_to_32(CPUARMState *env);
Expand Down
2 changes: 1 addition & 1 deletion target-cris/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ typedef struct CPUCRISState {
#include "cpu-qom.h"

CRISCPU *cpu_cris_init(const char *cpu_model);
int cpu_cris_exec(CPUCRISState *s);
int cpu_cris_exec(CPUState *cpu);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-i386/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -987,7 +987,7 @@ typedef struct CPUX86State {

X86CPU *cpu_x86_init(const char *cpu_model);
X86CPU *cpu_x86_create(const char *cpu_model, Error **errp);
int cpu_x86_exec(CPUX86State *s);
int cpu_x86_exec(CPUState *cpu);
void x86_cpu_list(FILE *f, fprintf_function cpu_fprintf);
void x86_cpudef_setup(void);
int cpu_x86_support_mca_broadcast(CPUX86State *env);
Expand Down
2 changes: 1 addition & 1 deletion target-lm32/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ static inline lm32_wp_t lm32_wp_type(uint32_t dc, int idx)
#include "cpu-qom.h"

LM32CPU *cpu_lm32_init(const char *cpu_model);
int cpu_lm32_exec(CPULM32State *s);
int cpu_lm32_exec(CPUState *cpu);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-m68k/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ typedef struct CPUM68KState {
void m68k_tcg_init(void);
void m68k_cpu_init_gdb(M68kCPU *cpu);
M68kCPU *cpu_m68k_init(const char *cpu_model);
int cpu_m68k_exec(CPUM68KState *s);
int cpu_m68k_exec(CPUState *cpu);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-microblaze/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ struct CPUMBState {

void mb_tcg_init(void);
MicroBlazeCPU *cpu_mb_init(const char *cpu_model);
int cpu_mb_exec(CPUMBState *s);
int cpu_mb_exec(CPUState *cpu);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-mips/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -746,7 +746,7 @@ enum {
*/
#define CPU_INTERRUPT_WAKE CPU_INTERRUPT_TGT_INT_0

int cpu_mips_exec(CPUMIPSState *s);
int cpu_mips_exec(CPUState *cpu);
void mips_tcg_init(void);
MIPSCPU *cpu_mips_init(const char *cpu_model);
int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc);
Expand Down
2 changes: 1 addition & 1 deletion target-moxie/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ static inline MoxieCPU *moxie_env_get_cpu(CPUMoxieState *env)
#define ENV_OFFSET offsetof(MoxieCPU, env)

MoxieCPU *cpu_moxie_init(const char *cpu_model);
int cpu_moxie_exec(CPUMoxieState *s);
int cpu_moxie_exec(CPUState *cpu);
void moxie_cpu_do_interrupt(CPUState *cs);
void moxie_cpu_dump_state(CPUState *cpu, FILE *f,
fprintf_function cpu_fprintf, int flags);
Expand Down
2 changes: 1 addition & 1 deletion target-openrisc/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ static inline OpenRISCCPU *openrisc_env_get_cpu(CPUOpenRISCState *env)
OpenRISCCPU *cpu_openrisc_init(const char *cpu_model);

void cpu_openrisc_list(FILE *f, fprintf_function cpu_fprintf);
int cpu_openrisc_exec(CPUOpenRISCState *s);
int cpu_openrisc_exec(CPUState *cpu);
void openrisc_cpu_do_interrupt(CPUState *cpu);
bool openrisc_cpu_exec_interrupt(CPUState *cpu, int int_req);
void openrisc_cpu_dump_state(CPUState *cpu, FILE *f,
Expand Down
2 changes: 1 addition & 1 deletion target-ppc/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@ do { \
PowerPCCPU *cpu_ppc_init(const char *cpu_model);
void ppc_translate_init(void);
void gen_update_current_nip(void *opaque);
int cpu_ppc_exec (CPUPPCState *s);
int cpu_ppc_exec (CPUState *s);
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
Expand Down
2 changes: 1 addition & 1 deletion target-s390x/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen);

S390CPU *cpu_s390x_init(const char *cpu_model);
void s390x_translate_init(void);
int cpu_s390x_exec(CPUS390XState *s);
int cpu_s390x_exec(CPUState *cpu);

/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
Expand Down
2 changes: 1 addition & 1 deletion target-sh4/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ typedef struct CPUSH4State {

void sh4_translate_init(void);
SuperHCPU *cpu_sh4_init(const char *cpu_model);
int cpu_sh4_exec(CPUSH4State * s);
int cpu_sh4_exec(CPUState *s);
int cpu_sh4_signal_handler(int host_signum, void *pinfo,
void *puc);
int superh_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw,
Expand Down
2 changes: 1 addition & 1 deletion target-sparc/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ int sparc_cpu_memory_rw_debug(CPUState *cpu, vaddr addr,
void gen_intermediate_code_init(CPUSPARCState *env);

/* cpu-exec.c */
int cpu_sparc_exec(CPUSPARCState *s);
int cpu_sparc_exec(CPUState *cpu);

/* win_helper.c */
target_ulong cpu_get_psr(CPUSPARCState *env1);
Expand Down
Loading

0 comments on commit ea3e984

Please sign in to comment.