[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 30/39] target/xtensa: Use env_cpu, env_archcp
From: |
Alistair Francis |
Subject: |
Re: [Qemu-devel] [PATCH v3 30/39] target/xtensa: Use env_cpu, env_archcpu |
Date: |
Thu, 9 May 2019 13:19:29 -0700 |
On Tue, May 7, 2019 at 5:37 PM Richard Henderson
<address@hidden> wrote:
>
> Move cpu_get_tb_cpu_state below the include of "exec/cpu-all.h"
> so that the definition of env_cpu is available.
>
> Reviewed-by: Peter Maydell <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Alistair
> ---
> target/xtensa/cpu.h | 17 ++++++-----------
> hw/xtensa/pic_cpu.c | 2 +-
> linux-user/xtensa/cpu_loop.c | 2 +-
> target/xtensa/dbg_helper.c | 4 ++--
> target/xtensa/exc_helper.c | 9 ++++-----
> target/xtensa/helper.c | 2 +-
> target/xtensa/mmu_helper.c | 11 ++++-------
> target/xtensa/xtensa-semi.c | 2 +-
> 8 files changed, 20 insertions(+), 29 deletions(-)
>
> diff --git a/target/xtensa/cpu.h b/target/xtensa/cpu.h
> index a20541b5d6..86c88eae40 100644
> --- a/target/xtensa/cpu.h
> +++ b/target/xtensa/cpu.h
> @@ -529,11 +529,6 @@ struct XtensaCPU {
> CPUXtensaState env;
> };
>
> -static inline XtensaCPU *xtensa_env_get_cpu(const CPUXtensaState *env)
> -{
> - return container_of(env, XtensaCPU, env);
> -}
> -
> #define ENV_OFFSET offsetof(XtensaCPU, env)
>
>
> @@ -711,10 +706,15 @@ static inline int cpu_mmu_index(CPUXtensaState *env,
> bool ifetch)
> #define XTENSA_CSBASE_LBEG_OFF_MASK 0x00ff0000
> #define XTENSA_CSBASE_LBEG_OFF_SHIFT 16
>
> +typedef CPUXtensaState CPUArchState;
> +typedef XtensaCPU ArchCPU;
> +
> +#include "exec/cpu-all.h"
> +
> static inline void cpu_get_tb_cpu_state(CPUXtensaState *env, target_ulong
> *pc,
> target_ulong *cs_base, uint32_t *flags)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
>
> *pc = env->pc;
> *cs_base = 0;
> @@ -784,9 +784,4 @@ static inline void cpu_get_tb_cpu_state(CPUXtensaState
> *env, target_ulong *pc,
> }
> }
>
> -typedef CPUXtensaState CPUArchState;
> -typedef XtensaCPU ArchCPU;
> -
> -#include "exec/cpu-all.h"
> -
> #endif
> diff --git a/hw/xtensa/pic_cpu.c b/hw/xtensa/pic_cpu.c
> index a8939f5e58..df3acbb541 100644
> --- a/hw/xtensa/pic_cpu.c
> +++ b/hw/xtensa/pic_cpu.c
> @@ -33,7 +33,7 @@
>
> void check_interrupts(CPUXtensaState *env)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
> int minlevel = xtensa_get_cintlevel(env);
> uint32_t int_set_enabled = env->sregs[INTSET] & env->sregs[INTENABLE];
> int level;
> diff --git a/linux-user/xtensa/cpu_loop.c b/linux-user/xtensa/cpu_loop.c
> index bee78edb8a..64831c9199 100644
> --- a/linux-user/xtensa/cpu_loop.c
> +++ b/linux-user/xtensa/cpu_loop.c
> @@ -123,7 +123,7 @@ static void xtensa_underflow12(CPUXtensaState *env)
>
> void cpu_loop(CPUXtensaState *env)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
> target_siginfo_t info;
> abi_ulong ret;
> int trapnr;
> diff --git a/target/xtensa/dbg_helper.c b/target/xtensa/dbg_helper.c
> index cd8fbd653a..be1f81107b 100644
> --- a/target/xtensa/dbg_helper.c
> +++ b/target/xtensa/dbg_helper.c
> @@ -71,7 +71,7 @@ void HELPER(wsr_ibreaka)(CPUXtensaState *env, uint32_t i,
> uint32_t v)
> static void set_dbreak(CPUXtensaState *env, unsigned i, uint32_t dbreaka,
> uint32_t dbreakc)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
> int flags = BP_CPU | BP_STOP_BEFORE_ACCESS;
> uint32_t mask = dbreakc | ~DBREAKC_MASK;
>
> @@ -118,7 +118,7 @@ void HELPER(wsr_dbreakc)(CPUXtensaState *env, uint32_t i,
> uint32_t v)
> set_dbreak(env, i, env->sregs[DBREAKA + i], v);
> } else {
> if (env->cpu_watchpoint[i]) {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
>
> cpu_watchpoint_remove_by_ref(cs, env->cpu_watchpoint[i]);
> env->cpu_watchpoint[i] = NULL;
> diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c
> index 4a1f7aef5d..601341d13a 100644
> --- a/target/xtensa/exc_helper.c
> +++ b/target/xtensa/exc_helper.c
> @@ -34,7 +34,7 @@
>
> void HELPER(exception)(CPUXtensaState *env, uint32_t excp)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
>
> cs->exception_index = excp;
> if (excp == EXCP_YIELD) {
> @@ -100,7 +100,7 @@ void HELPER(debug_exception)(CPUXtensaState *env,
> uint32_t pc, uint32_t cause)
>
> void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, uint32_t intlevel)
> {
> - CPUState *cpu;
> + CPUState *cpu = env_cpu(env);
>
> env->pc = pc;
> env->sregs[PS] = (env->sregs[PS] & ~PS_INTLEVEL) |
> @@ -111,11 +111,10 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc,
> uint32_t intlevel)
> qemu_mutex_unlock_iothread();
>
> if (env->pending_irq_level) {
> - cpu_loop_exit(CPU(xtensa_env_get_cpu(env)));
> + cpu_loop_exit(cpu);
> return;
> }
>
> - cpu = CPU(xtensa_env_get_cpu(env));
> cpu->halted = 1;
> HELPER(exception)(env, EXCP_HLT);
> }
> @@ -165,7 +164,7 @@ static void handle_interrupt(CPUXtensaState *env)
> (env->config->level_mask[level] &
> env->sregs[INTSET] &
> env->sregs[INTENABLE])) {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
>
> if (level > 1) {
> env->sregs[EPC1 + level - 1] = env->pc;
> diff --git a/target/xtensa/helper.c b/target/xtensa/helper.c
> index 5f37f378a3..7e5c10e098 100644
> --- a/target/xtensa/helper.c
> +++ b/target/xtensa/helper.c
> @@ -316,7 +316,7 @@ void xtensa_cpu_do_transaction_failed(CPUState *cs,
> hwaddr physaddr, vaddr addr,
>
> void xtensa_runstall(CPUXtensaState *env, bool runstall)
> {
> - CPUState *cpu = CPU(xtensa_env_get_cpu(env));
> + CPUState *cpu = env_cpu(env);
>
> env->runstall = runstall;
> cpu->halted = runstall;
> diff --git a/target/xtensa/mmu_helper.c b/target/xtensa/mmu_helper.c
> index 79a10da231..2603f43807 100644
> --- a/target/xtensa/mmu_helper.c
> +++ b/target/xtensa/mmu_helper.c
> @@ -46,12 +46,10 @@ void HELPER(itlb_hit_test)(CPUXtensaState *env, uint32_t
> vaddr)
>
> void HELPER(wsr_rasid)(CPUXtensaState *env, uint32_t v)
> {
> - XtensaCPU *cpu = xtensa_env_get_cpu(env);
> -
> v = (v & 0xffffff00) | 0x1;
> if (v != env->sregs[RASID]) {
> env->sregs[RASID] = v;
> - tlb_flush(CPU(cpu));
> + tlb_flush(env_cpu(env));
> }
> }
>
> @@ -250,7 +248,7 @@ void HELPER(itlb)(CPUXtensaState *env, uint32_t v,
> uint32_t dtlb)
> uint32_t wi;
> xtensa_tlb_entry *entry = get_tlb_entry(env, v, dtlb, &wi);
> if (entry->variable && entry->asid) {
> - tlb_flush_page(CPU(xtensa_env_get_cpu(env)), entry->vaddr);
> + tlb_flush_page(env_cpu(env), entry->vaddr);
> entry->asid = 0;
> }
> }
> @@ -296,8 +294,7 @@ void xtensa_tlb_set_entry_mmu(const CPUXtensaState *env,
> void xtensa_tlb_set_entry(CPUXtensaState *env, bool dtlb,
> unsigned wi, unsigned ei, uint32_t vpn, uint32_t
> pte)
> {
> - XtensaCPU *cpu = xtensa_env_get_cpu(env);
> - CPUState *cs = CPU(cpu);
> + CPUState *cs = env_cpu(env);
> xtensa_tlb_entry *entry = xtensa_tlb_get_entry(env, dtlb, wi, ei);
>
> if (xtensa_option_enabled(env->config, XTENSA_OPTION_MMU)) {
> @@ -652,7 +649,7 @@ static int get_physical_addr_mmu(CPUXtensaState *env,
> bool update_tlb,
>
> static bool get_pte(CPUXtensaState *env, uint32_t vaddr, uint32_t *pte)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
> uint32_t paddr;
> uint32_t page_size;
> unsigned access;
> diff --git a/target/xtensa/xtensa-semi.c b/target/xtensa/xtensa-semi.c
> index 5f5ce4f344..bb29adc921 100644
> --- a/target/xtensa/xtensa-semi.c
> +++ b/target/xtensa/xtensa-semi.c
> @@ -197,7 +197,7 @@ void xtensa_sim_open_console(Chardev *chr)
>
> void HELPER(simcall)(CPUXtensaState *env)
> {
> - CPUState *cs = CPU(xtensa_env_get_cpu(env));
> + CPUState *cs = env_cpu(env);
> uint32_t *regs = env->regs;
>
> switch (regs[2]) {
> --
> 2.17.1
>
>
- [Qemu-devel] [PATCH v3 22/39] target/ppc: Use env_cpu, env_archcpu, (continued)
- [Qemu-devel] [PATCH v3 22/39] target/ppc: Use env_cpu, env_archcpu, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 27/39] target/tilegx: Use env_cpu, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 28/39] target/tricore: Use env_cpu, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 29/39] target/unicore32: Use env_cpu, env_archcpu, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 31/39] cpu: Move ENV_OFFSET to exec/gen-icount.h, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 30/39] target/xtensa: Use env_cpu, env_archcpu, Richard Henderson, 2019/05/07
- Re: [Qemu-devel] [PATCH v3 30/39] target/xtensa: Use env_cpu, env_archcpu,
Alistair Francis <=
- [Qemu-devel] [PATCH v3 33/39] cpu: Introduce CPUNegativeOffsetState, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 37/39] tcg/aarch64: Use LDP to load tlb mask+table, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 38/39] tcg/arm: Use LDRD to load tlb mask+table, Richard Henderson, 2019/05/07
- [Qemu-devel] [PATCH v3 34/39] cpu: Move icount_decr to CPUNegativeOffsetState, Richard Henderson, 2019/05/07