Message ID | 20190508000641.19090-25-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | tcg: Move the softmmu tlb to CPUNegativeOffsetState | expand |
On Tue, May 7, 2019 at 5:23 PM Richard Henderson <richard.henderson@linaro.org> wrote: > > Reviewed-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/s390x/cpu.h | 5 ---- > linux-user/s390x/cpu_loop.c | 2 +- > target/s390x/cc_helper.c | 5 ++-- > target/s390x/diag.c | 2 +- > target/s390x/excp_helper.c | 6 ++--- > target/s390x/fpu_helper.c | 4 +-- > target/s390x/helper.c | 7 +++--- > target/s390x/int_helper.c | 3 +-- > target/s390x/interrupt.c | 6 ++--- > target/s390x/mem_helper.c | 28 ++++++++------------- > target/s390x/misc_helper.c | 50 ++++++++++++++++++------------------- > target/s390x/mmu_helper.c | 8 +++--- > target/s390x/sigp.c | 4 +-- > 13 files changed, 56 insertions(+), 74 deletions(-) > > diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h > index 9cdd831a77..eefed6f509 100644 > --- a/target/s390x/cpu.h > +++ b/target/s390x/cpu.h > @@ -163,11 +163,6 @@ struct S390CPU { > uint32_t irqstate_saved_size; > }; > > -static inline S390CPU *s390_env_get_cpu(CPUS390XState *env) > -{ > - return container_of(env, S390CPU, env); > -} > - > #define ENV_OFFSET offsetof(S390CPU, env) > > #ifndef CONFIG_USER_ONLY > diff --git a/linux-user/s390x/cpu_loop.c b/linux-user/s390x/cpu_loop.c > index b8bd1c956c..8211022ceb 100644 > --- a/linux-user/s390x/cpu_loop.c > +++ b/linux-user/s390x/cpu_loop.c > @@ -26,7 +26,7 @@ > > void cpu_loop(CPUS390XState *env) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > int trapnr, n, sig; > target_siginfo_t info; > target_ulong addr; > diff --git a/target/s390x/cc_helper.c b/target/s390x/cc_helper.c > index 0e467bf2b6..e9732500ad 100644 > --- a/target/s390x/cc_helper.c > +++ b/target/s390x/cc_helper.c > @@ -405,7 +405,6 @@ static uint32_t cc_calc_lcbb(uint64_t dst) > static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op, > uint64_t src, uint64_t dst, uint64_t vr) > { > - S390CPU *cpu = s390_env_get_cpu(env); > uint32_t r = 0; > > switch (cc_op) { > @@ -526,7 +525,7 @@ static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op, > break; > > default: > - cpu_abort(CPU(cpu), "Unknown CC operation: %s\n", cc_name(cc_op)); > + cpu_abort(env_cpu(env), "Unknown CC operation: %s\n", cc_name(cc_op)); > } > > HELPER_LOG("%s: %15s 0x%016lx 0x%016lx 0x%016lx = %d\n", __func__, > @@ -550,7 +549,7 @@ uint32_t HELPER(calc_cc)(CPUS390XState *env, uint32_t cc_op, uint64_t src, > void HELPER(load_psw)(CPUS390XState *env, uint64_t mask, uint64_t addr) > { > load_psw(env, mask, addr); > - cpu_loop_exit(CPU(s390_env_get_cpu(env))); > + cpu_loop_exit(env_cpu(env)); > } > > void HELPER(sacf)(CPUS390XState *env, uint64_t a1) > diff --git a/target/s390x/diag.c b/target/s390x/diag.c > index aafa740f61..65eabf0461 100644 > --- a/target/s390x/diag.c > +++ b/target/s390x/diag.c > @@ -55,7 +55,7 @@ int handle_diag_288(CPUS390XState *env, uint64_t r1, uint64_t r3) > > void handle_diag_308(CPUS390XState *env, uint64_t r1, uint64_t r3, uintptr_t ra) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > uint64_t addr = env->regs[r1]; > uint64_t subcode = env->regs[r3]; > IplParameterBlock *iplb; > diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c > index f84bfb1284..b83c1e6559 100644 > --- a/target/s390x/excp_helper.c > +++ b/target/s390x/excp_helper.c > @@ -36,7 +36,7 @@ > void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, > int ilen, uintptr_t ra) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > > cpu_restore_state(cs, ra, true); > qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", > @@ -51,7 +51,7 @@ void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc, > g_assert(dxc <= 0xff); > #if !defined(CONFIG_USER_ONLY) > /* Store the DXC into the lowcore */ > - stl_phys(CPU(s390_env_get_cpu(env))->as, > + stl_phys(env_cpu(env)->as, > env->psa + offsetof(LowCore, data_exc_code), dxc); > #endif > > @@ -261,7 +261,7 @@ static void do_svc_interrupt(CPUS390XState *env) > static void do_ext_interrupt(CPUS390XState *env) > { > QEMUS390FLICState *flic = QEMU_S390_FLIC(s390_get_flic()); > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > uint64_t mask, addr; > uint16_t cpu_addr; > LowCore *lowcore; > diff --git a/target/s390x/fpu_helper.c b/target/s390x/fpu_helper.c > index 1be68bafea..906fa8ce99 100644 > --- a/target/s390x/fpu_helper.c > +++ b/target/s390x/fpu_helper.c > @@ -114,8 +114,6 @@ static void handle_exceptions(CPUS390XState *env, bool XxC, uintptr_t retaddr) > > static inline int float_comp_to_cc(CPUS390XState *env, int float_compare) > { > - S390CPU *cpu = s390_env_get_cpu(env); > - > switch (float_compare) { > case float_relation_equal: > return 0; > @@ -126,7 +124,7 @@ static inline int float_comp_to_cc(CPUS390XState *env, int float_compare) > case float_relation_unordered: > return 3; > default: > - cpu_abort(CPU(cpu), "unknown return value for float compare\n"); > + cpu_abort(env_cpu(env), "unknown return value for float compare\n"); > } > } > > diff --git a/target/s390x/helper.c b/target/s390x/helper.c > index f957a2c830..52399bf7f4 100644 > --- a/target/s390x/helper.c > +++ b/target/s390x/helper.c > @@ -111,11 +111,11 @@ void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr) > env->cc_op = (mask >> 44) & 3; > > if ((old_mask ^ mask) & PSW_MASK_PER) { > - s390_cpu_recompute_watchpoints(CPU(s390_env_get_cpu(env))); > + s390_cpu_recompute_watchpoints(env_cpu(env)); > } > > if (mask & PSW_MASK_WAIT) { > - s390_handle_wait(s390_env_get_cpu(env)); > + s390_handle_wait(env_archcpu(env)); > } > } > > @@ -137,14 +137,13 @@ uint64_t get_psw_mask(CPUS390XState *env) > > LowCore *cpu_map_lowcore(CPUS390XState *env) > { > - S390CPU *cpu = s390_env_get_cpu(env); > LowCore *lowcore; > hwaddr len = sizeof(LowCore); > > lowcore = cpu_physical_memory_map(env->psa, &len, 1); > > if (len < sizeof(LowCore)) { > - cpu_abort(CPU(cpu), "Could not map lowcore\n"); > + cpu_abort(env_cpu(env), "Could not map lowcore\n"); > } > > return lowcore; > diff --git a/target/s390x/int_helper.c b/target/s390x/int_helper.c > index abbbc20d9c..d13cc49be6 100644 > --- a/target/s390x/int_helper.c > +++ b/target/s390x/int_helper.c > @@ -109,10 +109,9 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, uint64_t al, > s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); > } > #else > - S390CPU *cpu = s390_env_get_cpu(env); > /* 32-bit hosts would need special wrapper functionality - just abort if > we encounter such a case; it's very unlikely anyways. */ > - cpu_abort(CPU(cpu), "128 -> 64/64 division not implemented\n"); > + cpu_abort(env_cpu(env), "128 -> 64/64 division not implemented\n"); > #endif > } > return ret; > diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c > index a17eff5ebc..a8f9b38795 100644 > --- a/target/s390x/interrupt.c > +++ b/target/s390x/interrupt.c > @@ -23,7 +23,7 @@ > /* Ensure to exit the TB after this call! */ > void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > > cs->exception_index = EXCP_PGM; > env->int_pgm_code = code; > @@ -33,10 +33,8 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen) > void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, > uintptr_t ra) > { > - S390CPU *cpu = s390_env_get_cpu(env); > - > if (kvm_enabled()) { > - kvm_s390_program_interrupt(cpu, code); > + kvm_s390_program_interrupt(env_archcpu(env), code); > } else if (tcg_enabled()) { > tcg_s390_program_interrupt(env, code, ilen, ra); > } else { > diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c > index e2992deb2f..f02eb85d30 100644 > --- a/target/s390x/mem_helper.c > +++ b/target/s390x/mem_helper.c > @@ -1633,7 +1633,6 @@ uint32_t HELPER(csst_parallel)(CPUS390XState *env, uint32_t r3, uint64_t a1, > void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) > { > uintptr_t ra = GETPC(); > - S390CPU *cpu = s390_env_get_cpu(env); > bool PERchanged = false; > uint64_t src = a2; > uint32_t i; > @@ -1658,16 +1657,15 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) > } > > if (PERchanged && env->psw.mask & PSW_MASK_PER) { > - s390_cpu_recompute_watchpoints(CPU(cpu)); > + s390_cpu_recompute_watchpoints(env_cpu(env)); > } > > - tlb_flush(CPU(cpu)); > + tlb_flush(env_cpu(env)); > } > > void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) > { > uintptr_t ra = GETPC(); > - S390CPU *cpu = s390_env_get_cpu(env); > bool PERchanged = false; > uint64_t src = a2; > uint32_t i; > @@ -1691,10 +1689,10 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) > } > > if (PERchanged && env->psw.mask & PSW_MASK_PER) { > - s390_cpu_recompute_watchpoints(CPU(cpu)); > + s390_cpu_recompute_watchpoints(env_cpu(env)); > } > > - tlb_flush(CPU(cpu)); > + tlb_flush(env_cpu(env)); > } > > void HELPER(stctg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) > @@ -1753,8 +1751,8 @@ uint32_t HELPER(testblock)(CPUS390XState *env, uint64_t real_addr) > > uint32_t HELPER(tprot)(CPUS390XState *env, uint64_t a1, uint64_t a2) > { > - S390CPU *cpu = s390_env_get_cpu(env); > - CPUState *cs = CPU(cpu); > + S390CPU *cpu = env_archcpu(env); > + CPUState *cs = env_cpu(env); > > /* > * TODO: we currently don't handle all access protection types > @@ -1922,7 +1920,7 @@ uint32_t HELPER(mvcp)(CPUS390XState *env, uint64_t l, uint64_t a1, uint64_t a2) > > void HELPER(idte)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint32_t m4) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > const uintptr_t ra = GETPC(); > uint64_t table, entry, raddr; > uint16_t entries, i, index = 0; > @@ -1974,7 +1972,7 @@ void HELPER(idte)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint32_t m4) > void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr, > uint32_t m4) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > const uintptr_t ra = GETPC(); > uint64_t page = vaddr & TARGET_PAGE_MASK; > uint64_t pte_addr, pte; > @@ -2014,17 +2012,13 @@ void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr, > /* flush local tlb */ > void HELPER(ptlb)(CPUS390XState *env) > { > - S390CPU *cpu = s390_env_get_cpu(env); > - > - tlb_flush(CPU(cpu)); > + tlb_flush(env_cpu(env)); > } > > /* flush global tlb */ > void HELPER(purge)(CPUS390XState *env) > { > - S390CPU *cpu = s390_env_get_cpu(env); > - > - tlb_flush_all_cpus_synced(CPU(cpu)); > + tlb_flush_all_cpus_synced(env_cpu(env)); > } > > /* load using real address */ > @@ -2068,7 +2062,7 @@ void HELPER(sturg)(CPUS390XState *env, uint64_t addr, uint64_t v1) > /* load real address */ > uint64_t HELPER(lra)(CPUS390XState *env, uint64_t addr) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > uint32_t cc = 0; > uint64_t asc = env->psw.mask & PSW_MASK_ASC; > uint64_t ret; > diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c > index ee67c1fa0c..c806c3ec00 100644 > --- a/target/s390x/misc_helper.c > +++ b/target/s390x/misc_helper.c > @@ -55,7 +55,7 @@ > /* Raise an exception statically from a TB. */ > void HELPER(exception)(CPUS390XState *env, uint32_t excp) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > > HELPER_LOG("%s: exception %d\n", __func__, excp); > cs->exception_index = excp; > @@ -150,7 +150,7 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num) > /* Set Prefix */ > void HELPER(spx)(CPUS390XState *env, uint64_t a1) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > uint32_t prefix = a1 & 0x7fffe000; > > env->psa = prefix; > @@ -256,7 +256,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1) > const uint32_t sel2 = r1 & STSI_R1_SEL2_MASK; > const MachineState *ms = MACHINE(qdev_get_machine()); > uint16_t total_cpus = 0, conf_cpus = 0, reserved_cpus = 0; > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > SysIB sysib = { }; > int i, cc = 0; > > @@ -411,7 +411,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1, > #ifndef CONFIG_USER_ONLY > void HELPER(xsch)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_xsch(cpu, r1, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -419,7 +419,7 @@ void HELPER(xsch)(CPUS390XState *env, uint64_t r1) > > void HELPER(csch)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_csch(cpu, r1, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -427,7 +427,7 @@ void HELPER(csch)(CPUS390XState *env, uint64_t r1) > > void HELPER(hsch)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_hsch(cpu, r1, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -435,7 +435,7 @@ void HELPER(hsch)(CPUS390XState *env, uint64_t r1) > > void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_msch(cpu, r1, inst >> 16, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -443,7 +443,7 @@ void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > > void HELPER(rchp)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_rchp(cpu, r1, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -451,7 +451,7 @@ void HELPER(rchp)(CPUS390XState *env, uint64_t r1) > > void HELPER(rsch)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_rsch(cpu, r1, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -459,7 +459,7 @@ void HELPER(rsch)(CPUS390XState *env, uint64_t r1) > > void HELPER(sal)(CPUS390XState *env, uint64_t r1) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > ioinst_handle_sal(cpu, r1, GETPC()); > @@ -468,7 +468,7 @@ void HELPER(sal)(CPUS390XState *env, uint64_t r1) > > void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC()); > @@ -477,7 +477,7 @@ void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst) > > void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -485,7 +485,7 @@ void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > > void HELPER(stcrw)(CPUS390XState *env, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > ioinst_handle_stcrw(cpu, inst >> 16, GETPC()); > @@ -494,7 +494,7 @@ void HELPER(stcrw)(CPUS390XState *env, uint64_t inst) > > void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -503,7 +503,7 @@ void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) > { > const uintptr_t ra = GETPC(); > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > QEMUS390FLICState *flic = s390_get_qemu_flic(s390_get_flic()); > QEMUS390FlicIO *io = NULL; > LowCore *lowcore; > @@ -555,7 +555,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) > > void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -563,7 +563,7 @@ void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) > > void HELPER(chsc)(CPUS390XState *env, uint64_t inst) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > qemu_mutex_lock_iothread(); > ioinst_handle_chsc(cpu, inst >> 16, GETPC()); > qemu_mutex_unlock_iothread(); > @@ -618,7 +618,7 @@ void HELPER(per_ifetch)(CPUS390XState *env, uint64_t addr) > /* If the instruction has to be nullified, trigger the > exception immediately. */ > if (env->cregs[9] & PER_CR9_EVENT_NULLIFICATION) { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > > env->per_perc_atmid |= PER_CODE_EVENT_NULLIFICATION; > env->int_pgm_code = PGM_PER; > @@ -695,7 +695,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t addr) > */ > void HELPER(clp)(CPUS390XState *env, uint32_t r2) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > clp_service_call(cpu, r2, GETPC()); > @@ -704,7 +704,7 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2) > > void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > pcilg_service_call(cpu, r1, r2, GETPC()); > @@ -713,7 +713,7 @@ void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2) > > void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > pcistg_service_call(cpu, r1, r2, GETPC()); > @@ -723,7 +723,7 @@ void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2) > void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, > uint32_t ar) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > stpcifc_service_call(cpu, r1, fiba, ar, GETPC()); > @@ -745,7 +745,7 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3) > > void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > rpcit_service_call(cpu, r1, r2, GETPC()); > @@ -755,7 +755,7 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2) > void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3, > uint64_t gaddr, uint32_t ar) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC()); > @@ -765,7 +765,7 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3, > void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, > uint32_t ar) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > qemu_mutex_lock_iothread(); > mpcifc_service_call(cpu, r1, fiba, ar, GETPC()); > diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c > index 145b62a7ef..9669bae393 100644 > --- a/target/s390x/mmu_helper.c > +++ b/target/s390x/mmu_helper.c > @@ -58,12 +58,12 @@ > static void trigger_access_exception(CPUS390XState *env, uint32_t type, > uint32_t ilen, uint64_t tec) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > if (kvm_enabled()) { > kvm_s390_access_exception(cpu, type, tec); > } else { > - CPUState *cs = CPU(cpu); > + CPUState *cs = env_cpu(env); > if (type != PGM_ADDRESSING) { > stq_phys(cs->as, env->psa + offsetof(LowCore, trans_exc_code), tec); > } > @@ -185,7 +185,7 @@ static int mmu_translate_segment(CPUS390XState *env, target_ulong vaddr, > target_ulong *raddr, int *flags, int rw, > bool exc) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > uint64_t origin, offs, pt_entry; > > if (st_entry & SEGMENT_ENTRY_RO) { > @@ -214,7 +214,7 @@ static int mmu_translate_region(CPUS390XState *env, target_ulong vaddr, > target_ulong *raddr, int *flags, int rw, > bool exc) > { > - CPUState *cs = CPU(s390_env_get_cpu(env)); > + CPUState *cs = env_cpu(env); > uint64_t origin, offs, new_entry; > const int pchks[4] = { > PGM_SEGMENT_TRANS, PGM_REG_THIRD_TRANS, > diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c > index c1f9245797..ea5f69d5d8 100644 > --- a/target/s390x/sigp.c > +++ b/target/s390x/sigp.c > @@ -454,7 +454,7 @@ int handle_sigp(CPUS390XState *env, uint8_t order, uint64_t r1, uint64_t r3) > { > uint64_t *status_reg = &env->regs[r1]; > uint64_t param = (r1 % 2) ? env->regs[r1] : env->regs[r1 + 1]; > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > S390CPU *dst_cpu = NULL; > int ret; > > @@ -492,7 +492,7 @@ int s390_cpu_restart(S390CPU *cpu) > > void do_stop_interrupt(CPUS390XState *env) > { > - S390CPU *cpu = s390_env_get_cpu(env); > + S390CPU *cpu = env_archcpu(env); > > if (s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu) == 0) { > qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); > -- > 2.17.1 > >
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 9cdd831a77..eefed6f509 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -163,11 +163,6 @@ struct S390CPU { uint32_t irqstate_saved_size; }; -static inline S390CPU *s390_env_get_cpu(CPUS390XState *env) -{ - return container_of(env, S390CPU, env); -} - #define ENV_OFFSET offsetof(S390CPU, env) #ifndef CONFIG_USER_ONLY diff --git a/linux-user/s390x/cpu_loop.c b/linux-user/s390x/cpu_loop.c index b8bd1c956c..8211022ceb 100644 --- a/linux-user/s390x/cpu_loop.c +++ b/linux-user/s390x/cpu_loop.c @@ -26,7 +26,7 @@ void cpu_loop(CPUS390XState *env) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); int trapnr, n, sig; target_siginfo_t info; target_ulong addr; diff --git a/target/s390x/cc_helper.c b/target/s390x/cc_helper.c index 0e467bf2b6..e9732500ad 100644 --- a/target/s390x/cc_helper.c +++ b/target/s390x/cc_helper.c @@ -405,7 +405,6 @@ static uint32_t cc_calc_lcbb(uint64_t dst) static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op, uint64_t src, uint64_t dst, uint64_t vr) { - S390CPU *cpu = s390_env_get_cpu(env); uint32_t r = 0; switch (cc_op) { @@ -526,7 +525,7 @@ static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op, break; default: - cpu_abort(CPU(cpu), "Unknown CC operation: %s\n", cc_name(cc_op)); + cpu_abort(env_cpu(env), "Unknown CC operation: %s\n", cc_name(cc_op)); } HELPER_LOG("%s: %15s 0x%016lx 0x%016lx 0x%016lx = %d\n", __func__, @@ -550,7 +549,7 @@ uint32_t HELPER(calc_cc)(CPUS390XState *env, uint32_t cc_op, uint64_t src, void HELPER(load_psw)(CPUS390XState *env, uint64_t mask, uint64_t addr) { load_psw(env, mask, addr); - cpu_loop_exit(CPU(s390_env_get_cpu(env))); + cpu_loop_exit(env_cpu(env)); } void HELPER(sacf)(CPUS390XState *env, uint64_t a1) diff --git a/target/s390x/diag.c b/target/s390x/diag.c index aafa740f61..65eabf0461 100644 --- a/target/s390x/diag.c +++ b/target/s390x/diag.c @@ -55,7 +55,7 @@ int handle_diag_288(CPUS390XState *env, uint64_t r1, uint64_t r3) void handle_diag_308(CPUS390XState *env, uint64_t r1, uint64_t r3, uintptr_t ra) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); uint64_t addr = env->regs[r1]; uint64_t subcode = env->regs[r3]; IplParameterBlock *iplb; diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index f84bfb1284..b83c1e6559 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -36,7 +36,7 @@ void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, uintptr_t ra) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); cpu_restore_state(cs, ra, true); qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", @@ -51,7 +51,7 @@ void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc, g_assert(dxc <= 0xff); #if !defined(CONFIG_USER_ONLY) /* Store the DXC into the lowcore */ - stl_phys(CPU(s390_env_get_cpu(env))->as, + stl_phys(env_cpu(env)->as, env->psa + offsetof(LowCore, data_exc_code), dxc); #endif @@ -261,7 +261,7 @@ static void do_svc_interrupt(CPUS390XState *env) static void do_ext_interrupt(CPUS390XState *env) { QEMUS390FLICState *flic = QEMU_S390_FLIC(s390_get_flic()); - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); uint64_t mask, addr; uint16_t cpu_addr; LowCore *lowcore; diff --git a/target/s390x/fpu_helper.c b/target/s390x/fpu_helper.c index 1be68bafea..906fa8ce99 100644 --- a/target/s390x/fpu_helper.c +++ b/target/s390x/fpu_helper.c @@ -114,8 +114,6 @@ static void handle_exceptions(CPUS390XState *env, bool XxC, uintptr_t retaddr) static inline int float_comp_to_cc(CPUS390XState *env, int float_compare) { - S390CPU *cpu = s390_env_get_cpu(env); - switch (float_compare) { case float_relation_equal: return 0; @@ -126,7 +124,7 @@ static inline int float_comp_to_cc(CPUS390XState *env, int float_compare) case float_relation_unordered: return 3; default: - cpu_abort(CPU(cpu), "unknown return value for float compare\n"); + cpu_abort(env_cpu(env), "unknown return value for float compare\n"); } } diff --git a/target/s390x/helper.c b/target/s390x/helper.c index f957a2c830..52399bf7f4 100644 --- a/target/s390x/helper.c +++ b/target/s390x/helper.c @@ -111,11 +111,11 @@ void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr) env->cc_op = (mask >> 44) & 3; if ((old_mask ^ mask) & PSW_MASK_PER) { - s390_cpu_recompute_watchpoints(CPU(s390_env_get_cpu(env))); + s390_cpu_recompute_watchpoints(env_cpu(env)); } if (mask & PSW_MASK_WAIT) { - s390_handle_wait(s390_env_get_cpu(env)); + s390_handle_wait(env_archcpu(env)); } } @@ -137,14 +137,13 @@ uint64_t get_psw_mask(CPUS390XState *env) LowCore *cpu_map_lowcore(CPUS390XState *env) { - S390CPU *cpu = s390_env_get_cpu(env); LowCore *lowcore; hwaddr len = sizeof(LowCore); lowcore = cpu_physical_memory_map(env->psa, &len, 1); if (len < sizeof(LowCore)) { - cpu_abort(CPU(cpu), "Could not map lowcore\n"); + cpu_abort(env_cpu(env), "Could not map lowcore\n"); } return lowcore; diff --git a/target/s390x/int_helper.c b/target/s390x/int_helper.c index abbbc20d9c..d13cc49be6 100644 --- a/target/s390x/int_helper.c +++ b/target/s390x/int_helper.c @@ -109,10 +109,9 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, uint64_t al, s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); } #else - S390CPU *cpu = s390_env_get_cpu(env); /* 32-bit hosts would need special wrapper functionality - just abort if we encounter such a case; it's very unlikely anyways. */ - cpu_abort(CPU(cpu), "128 -> 64/64 division not implemented\n"); + cpu_abort(env_cpu(env), "128 -> 64/64 division not implemented\n"); #endif } return ret; diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index a17eff5ebc..a8f9b38795 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -23,7 +23,7 @@ /* Ensure to exit the TB after this call! */ void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); cs->exception_index = EXCP_PGM; env->int_pgm_code = code; @@ -33,10 +33,8 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen) void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, uintptr_t ra) { - S390CPU *cpu = s390_env_get_cpu(env); - if (kvm_enabled()) { - kvm_s390_program_interrupt(cpu, code); + kvm_s390_program_interrupt(env_archcpu(env), code); } else if (tcg_enabled()) { tcg_s390_program_interrupt(env, code, ilen, ra); } else { diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index e2992deb2f..f02eb85d30 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -1633,7 +1633,6 @@ uint32_t HELPER(csst_parallel)(CPUS390XState *env, uint32_t r3, uint64_t a1, void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { uintptr_t ra = GETPC(); - S390CPU *cpu = s390_env_get_cpu(env); bool PERchanged = false; uint64_t src = a2; uint32_t i; @@ -1658,16 +1657,15 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) } if (PERchanged && env->psw.mask & PSW_MASK_PER) { - s390_cpu_recompute_watchpoints(CPU(cpu)); + s390_cpu_recompute_watchpoints(env_cpu(env)); } - tlb_flush(CPU(cpu)); + tlb_flush(env_cpu(env)); } void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { uintptr_t ra = GETPC(); - S390CPU *cpu = s390_env_get_cpu(env); bool PERchanged = false; uint64_t src = a2; uint32_t i; @@ -1691,10 +1689,10 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) } if (PERchanged && env->psw.mask & PSW_MASK_PER) { - s390_cpu_recompute_watchpoints(CPU(cpu)); + s390_cpu_recompute_watchpoints(env_cpu(env)); } - tlb_flush(CPU(cpu)); + tlb_flush(env_cpu(env)); } void HELPER(stctg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) @@ -1753,8 +1751,8 @@ uint32_t HELPER(testblock)(CPUS390XState *env, uint64_t real_addr) uint32_t HELPER(tprot)(CPUS390XState *env, uint64_t a1, uint64_t a2) { - S390CPU *cpu = s390_env_get_cpu(env); - CPUState *cs = CPU(cpu); + S390CPU *cpu = env_archcpu(env); + CPUState *cs = env_cpu(env); /* * TODO: we currently don't handle all access protection types @@ -1922,7 +1920,7 @@ uint32_t HELPER(mvcp)(CPUS390XState *env, uint64_t l, uint64_t a1, uint64_t a2) void HELPER(idte)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint32_t m4) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); const uintptr_t ra = GETPC(); uint64_t table, entry, raddr; uint16_t entries, i, index = 0; @@ -1974,7 +1972,7 @@ void HELPER(idte)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint32_t m4) void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr, uint32_t m4) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); const uintptr_t ra = GETPC(); uint64_t page = vaddr & TARGET_PAGE_MASK; uint64_t pte_addr, pte; @@ -2014,17 +2012,13 @@ void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr, /* flush local tlb */ void HELPER(ptlb)(CPUS390XState *env) { - S390CPU *cpu = s390_env_get_cpu(env); - - tlb_flush(CPU(cpu)); + tlb_flush(env_cpu(env)); } /* flush global tlb */ void HELPER(purge)(CPUS390XState *env) { - S390CPU *cpu = s390_env_get_cpu(env); - - tlb_flush_all_cpus_synced(CPU(cpu)); + tlb_flush_all_cpus_synced(env_cpu(env)); } /* load using real address */ @@ -2068,7 +2062,7 @@ void HELPER(sturg)(CPUS390XState *env, uint64_t addr, uint64_t v1) /* load real address */ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t addr) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); uint32_t cc = 0; uint64_t asc = env->psw.mask & PSW_MASK_ASC; uint64_t ret; diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index ee67c1fa0c..c806c3ec00 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -55,7 +55,7 @@ /* Raise an exception statically from a TB. */ void HELPER(exception)(CPUS390XState *env, uint32_t excp) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); HELPER_LOG("%s: exception %d\n", __func__, excp); cs->exception_index = excp; @@ -150,7 +150,7 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num) /* Set Prefix */ void HELPER(spx)(CPUS390XState *env, uint64_t a1) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); uint32_t prefix = a1 & 0x7fffe000; env->psa = prefix; @@ -256,7 +256,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1) const uint32_t sel2 = r1 & STSI_R1_SEL2_MASK; const MachineState *ms = MACHINE(qdev_get_machine()); uint16_t total_cpus = 0, conf_cpus = 0, reserved_cpus = 0; - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); SysIB sysib = { }; int i, cc = 0; @@ -411,7 +411,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1, #ifndef CONFIG_USER_ONLY void HELPER(xsch)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_xsch(cpu, r1, GETPC()); qemu_mutex_unlock_iothread(); @@ -419,7 +419,7 @@ void HELPER(xsch)(CPUS390XState *env, uint64_t r1) void HELPER(csch)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_csch(cpu, r1, GETPC()); qemu_mutex_unlock_iothread(); @@ -427,7 +427,7 @@ void HELPER(csch)(CPUS390XState *env, uint64_t r1) void HELPER(hsch)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_hsch(cpu, r1, GETPC()); qemu_mutex_unlock_iothread(); @@ -435,7 +435,7 @@ void HELPER(hsch)(CPUS390XState *env, uint64_t r1) void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_msch(cpu, r1, inst >> 16, GETPC()); qemu_mutex_unlock_iothread(); @@ -443,7 +443,7 @@ void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst) void HELPER(rchp)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_rchp(cpu, r1, GETPC()); qemu_mutex_unlock_iothread(); @@ -451,7 +451,7 @@ void HELPER(rchp)(CPUS390XState *env, uint64_t r1) void HELPER(rsch)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_rsch(cpu, r1, GETPC()); qemu_mutex_unlock_iothread(); @@ -459,7 +459,7 @@ void HELPER(rsch)(CPUS390XState *env, uint64_t r1) void HELPER(sal)(CPUS390XState *env, uint64_t r1) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_sal(cpu, r1, GETPC()); @@ -468,7 +468,7 @@ void HELPER(sal)(CPUS390XState *env, uint64_t r1) void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC()); @@ -477,7 +477,7 @@ void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst) void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC()); qemu_mutex_unlock_iothread(); @@ -485,7 +485,7 @@ void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst) void HELPER(stcrw)(CPUS390XState *env, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_stcrw(cpu, inst >> 16, GETPC()); @@ -494,7 +494,7 @@ void HELPER(stcrw)(CPUS390XState *env, uint64_t inst) void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC()); qemu_mutex_unlock_iothread(); @@ -503,7 +503,7 @@ void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) { const uintptr_t ra = GETPC(); - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); QEMUS390FLICState *flic = s390_get_qemu_flic(s390_get_flic()); QEMUS390FlicIO *io = NULL; LowCore *lowcore; @@ -555,7 +555,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC()); qemu_mutex_unlock_iothread(); @@ -563,7 +563,7 @@ void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst) void HELPER(chsc)(CPUS390XState *env, uint64_t inst) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); ioinst_handle_chsc(cpu, inst >> 16, GETPC()); qemu_mutex_unlock_iothread(); @@ -618,7 +618,7 @@ void HELPER(per_ifetch)(CPUS390XState *env, uint64_t addr) /* If the instruction has to be nullified, trigger the exception immediately. */ if (env->cregs[9] & PER_CR9_EVENT_NULLIFICATION) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); env->per_perc_atmid |= PER_CODE_EVENT_NULLIFICATION; env->int_pgm_code = PGM_PER; @@ -695,7 +695,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t addr) */ void HELPER(clp)(CPUS390XState *env, uint32_t r2) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); clp_service_call(cpu, r2, GETPC()); @@ -704,7 +704,7 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2) void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); pcilg_service_call(cpu, r1, r2, GETPC()); @@ -713,7 +713,7 @@ void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2) void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); pcistg_service_call(cpu, r1, r2, GETPC()); @@ -723,7 +723,7 @@ void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2) void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, uint32_t ar) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); stpcifc_service_call(cpu, r1, fiba, ar, GETPC()); @@ -745,7 +745,7 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3) void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); rpcit_service_call(cpu, r1, r2, GETPC()); @@ -755,7 +755,7 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2) void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint64_t gaddr, uint32_t ar) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC()); @@ -765,7 +765,7 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3, void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, uint32_t ar) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); qemu_mutex_lock_iothread(); mpcifc_service_call(cpu, r1, fiba, ar, GETPC()); diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 145b62a7ef..9669bae393 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -58,12 +58,12 @@ static void trigger_access_exception(CPUS390XState *env, uint32_t type, uint32_t ilen, uint64_t tec) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); if (kvm_enabled()) { kvm_s390_access_exception(cpu, type, tec); } else { - CPUState *cs = CPU(cpu); + CPUState *cs = env_cpu(env); if (type != PGM_ADDRESSING) { stq_phys(cs->as, env->psa + offsetof(LowCore, trans_exc_code), tec); } @@ -185,7 +185,7 @@ static int mmu_translate_segment(CPUS390XState *env, target_ulong vaddr, target_ulong *raddr, int *flags, int rw, bool exc) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); uint64_t origin, offs, pt_entry; if (st_entry & SEGMENT_ENTRY_RO) { @@ -214,7 +214,7 @@ static int mmu_translate_region(CPUS390XState *env, target_ulong vaddr, target_ulong *raddr, int *flags, int rw, bool exc) { - CPUState *cs = CPU(s390_env_get_cpu(env)); + CPUState *cs = env_cpu(env); uint64_t origin, offs, new_entry; const int pchks[4] = { PGM_SEGMENT_TRANS, PGM_REG_THIRD_TRANS, diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c index c1f9245797..ea5f69d5d8 100644 --- a/target/s390x/sigp.c +++ b/target/s390x/sigp.c @@ -454,7 +454,7 @@ int handle_sigp(CPUS390XState *env, uint8_t order, uint64_t r1, uint64_t r3) { uint64_t *status_reg = &env->regs[r1]; uint64_t param = (r1 % 2) ? env->regs[r1] : env->regs[r1 + 1]; - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); S390CPU *dst_cpu = NULL; int ret; @@ -492,7 +492,7 @@ int s390_cpu_restart(S390CPU *cpu) void do_stop_interrupt(CPUS390XState *env) { - S390CPU *cpu = s390_env_get_cpu(env); + S390CPU *cpu = env_archcpu(env); if (s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu) == 0) { qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);