提交 6dd40a90 编写于 作者: R Richard Henderson

target/lm32: Use env_cpu, env_archcpu

Cleanup in the boilerplate that each target must define.
Replace lm32_env_get_cpu with env_archcpu.  The combination
CPU(lm32_env_get_cpu) should have used ENV_GET_CPU to begin;
use env_cpu now.
Reviewed-by: NAlistair Francis <alistair.francis@wdc.com>
Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
上级 6aa9e42f
...@@ -195,11 +195,6 @@ struct LM32CPU { ...@@ -195,11 +195,6 @@ struct LM32CPU {
uint32_t features; uint32_t features;
}; };
static inline LM32CPU *lm32_env_get_cpu(CPULM32State *env)
{
return container_of(env, LM32CPU, env);
}
#define ENV_OFFSET offsetof(LM32CPU, env) #define ENV_OFFSET offsetof(LM32CPU, env)
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
......
...@@ -58,28 +58,23 @@ hwaddr lm32_cpu_get_phys_page_debug(CPUState *cs, vaddr addr) ...@@ -58,28 +58,23 @@ hwaddr lm32_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
void lm32_breakpoint_insert(CPULM32State *env, int idx, target_ulong address) void lm32_breakpoint_insert(CPULM32State *env, int idx, target_ulong address)
{ {
LM32CPU *cpu = lm32_env_get_cpu(env); cpu_breakpoint_insert(env_cpu(env), address, BP_CPU,
cpu_breakpoint_insert(CPU(cpu), address, BP_CPU,
&env->cpu_breakpoint[idx]); &env->cpu_breakpoint[idx]);
} }
void lm32_breakpoint_remove(CPULM32State *env, int idx) void lm32_breakpoint_remove(CPULM32State *env, int idx)
{ {
LM32CPU *cpu = lm32_env_get_cpu(env);
if (!env->cpu_breakpoint[idx]) { if (!env->cpu_breakpoint[idx]) {
return; return;
} }
cpu_breakpoint_remove_by_ref(CPU(cpu), env->cpu_breakpoint[idx]); cpu_breakpoint_remove_by_ref(env_cpu(env), env->cpu_breakpoint[idx]);
env->cpu_breakpoint[idx] = NULL; env->cpu_breakpoint[idx] = NULL;
} }
void lm32_watchpoint_insert(CPULM32State *env, int idx, target_ulong address, void lm32_watchpoint_insert(CPULM32State *env, int idx, target_ulong address,
lm32_wp_t wp_type) lm32_wp_t wp_type)
{ {
LM32CPU *cpu = lm32_env_get_cpu(env);
int flags = 0; int flags = 0;
switch (wp_type) { switch (wp_type) {
...@@ -98,26 +93,24 @@ void lm32_watchpoint_insert(CPULM32State *env, int idx, target_ulong address, ...@@ -98,26 +93,24 @@ void lm32_watchpoint_insert(CPULM32State *env, int idx, target_ulong address,
} }
if (flags != 0) { if (flags != 0) {
cpu_watchpoint_insert(CPU(cpu), address, 1, flags, cpu_watchpoint_insert(env_cpu(env), address, 1, flags,
&env->cpu_watchpoint[idx]); &env->cpu_watchpoint[idx]);
} }
} }
void lm32_watchpoint_remove(CPULM32State *env, int idx) void lm32_watchpoint_remove(CPULM32State *env, int idx)
{ {
LM32CPU *cpu = lm32_env_get_cpu(env);
if (!env->cpu_watchpoint[idx]) { if (!env->cpu_watchpoint[idx]) {
return; return;
} }
cpu_watchpoint_remove_by_ref(CPU(cpu), env->cpu_watchpoint[idx]); cpu_watchpoint_remove_by_ref(env_cpu(env), env->cpu_watchpoint[idx]);
env->cpu_watchpoint[idx] = NULL; env->cpu_watchpoint[idx] = NULL;
} }
static bool check_watchpoints(CPULM32State *env) static bool check_watchpoints(CPULM32State *env)
{ {
LM32CPU *cpu = lm32_env_get_cpu(env); LM32CPU *cpu = env_archcpu(env);
int i; int i;
for (i = 0; i < cpu->num_watchpoints; i++) { for (i = 0; i < cpu->num_watchpoints; i++) {
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
void raise_exception(CPULM32State *env, int index) void raise_exception(CPULM32State *env, int index)
{ {
CPUState *cs = CPU(lm32_env_get_cpu(env)); CPUState *cs = env_cpu(env);
cs->exception_index = index; cs->exception_index = index;
cpu_loop_exit(cs); cpu_loop_exit(cs);
...@@ -29,7 +29,7 @@ void HELPER(raise_exception)(CPULM32State *env, uint32_t index) ...@@ -29,7 +29,7 @@ void HELPER(raise_exception)(CPULM32State *env, uint32_t index)
void HELPER(hlt)(CPULM32State *env) void HELPER(hlt)(CPULM32State *env)
{ {
CPUState *cs = CPU(lm32_env_get_cpu(env)); CPUState *cs = env_cpu(env);
cs->halted = 1; cs->halted = 1;
cs->exception_index = EXCP_HLT; cs->exception_index = EXCP_HLT;
...@@ -39,7 +39,7 @@ void HELPER(hlt)(CPULM32State *env) ...@@ -39,7 +39,7 @@ void HELPER(hlt)(CPULM32State *env)
void HELPER(ill)(CPULM32State *env) void HELPER(ill)(CPULM32State *env)
{ {
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
CPUState *cs = CPU(lm32_env_get_cpu(env)); CPUState *cs = env_cpu(env);
fprintf(stderr, "VM paused due to illegal instruction. " fprintf(stderr, "VM paused due to illegal instruction. "
"Connect a debugger or switch to the monitor console " "Connect a debugger or switch to the monitor console "
"to find out more.\n"); "to find out more.\n");
......
...@@ -1053,7 +1053,7 @@ static inline void decode(DisasContext *dc, uint32_t ir) ...@@ -1053,7 +1053,7 @@ static inline void decode(DisasContext *dc, uint32_t ir)
void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns) void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
{ {
CPULM32State *env = cs->env_ptr; CPULM32State *env = cs->env_ptr;
LM32CPU *cpu = lm32_env_get_cpu(env); LM32CPU *cpu = env_archcpu(env);
struct DisasContext ctx, *dc = &ctx; struct DisasContext ctx, *dc = &ctx;
uint32_t pc_start; uint32_t pc_start;
uint32_t page_start; uint32_t page_start;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册