target/s390x: Use env_cpu, env_archcpu

Cleanup in the boilerplate that each target must define.
Replace s390_env_get_cpu with env_archcpu.  The combination
CPU(s390_env_get_cpu) should have used ENV_GET_CPU to begin;
use env_cpu now.

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2019-03-22 19:21:48 -07:00
parent 3109cd98a6
commit dc79e92869
13 changed files with 57 additions and 75 deletions

View File

@ -26,7 +26,7 @@
void cpu_loop(CPUS390XState *env) void cpu_loop(CPUS390XState *env)
{ {
CPUState *cs = CPU(s390_env_get_cpu(env)); CPUState *cs = env_cpu(env);
int trapnr, n, sig; int trapnr, n, sig;
target_siginfo_t info; target_siginfo_t info;
target_ulong addr; target_ulong addr;

View File

@ -419,7 +419,6 @@ static uint32_t cc_calc_vc(uint64_t low, uint64_t high)
static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op, static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op,
uint64_t src, uint64_t dst, uint64_t vr) uint64_t src, uint64_t dst, uint64_t vr)
{ {
S390CPU *cpu = s390_env_get_cpu(env);
uint32_t r = 0; uint32_t r = 0;
switch (cc_op) { switch (cc_op) {
@ -543,7 +542,7 @@ static uint32_t do_calc_cc(CPUS390XState *env, uint32_t cc_op,
break; break;
default: 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__, HELPER_LOG("%s: %15s 0x%016lx 0x%016lx 0x%016lx = %d\n", __func__,
@ -567,7 +566,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) void HELPER(load_psw)(CPUS390XState *env, uint64_t mask, uint64_t addr)
{ {
load_psw(env, mask, 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) void HELPER(sacf)(CPUS390XState *env, uint64_t a1)

View File

@ -163,11 +163,6 @@ struct S390CPU {
uint32_t irqstate_saved_size; 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) #define ENV_OFFSET offsetof(S390CPU, env)
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY

View File

@ -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) 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 addr = env->regs[r1];
uint64_t subcode = env->regs[r3]; uint64_t subcode = env->regs[r3];
IplParameterBlock *iplb; IplParameterBlock *iplb;

View File

@ -36,7 +36,7 @@
void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
int ilen, uintptr_t ra) int ilen, uintptr_t ra)
{ {
CPUState *cs = CPU(s390_env_get_cpu(env)); CPUState *cs = env_cpu(env);
cpu_restore_state(cs, ra, true); cpu_restore_state(cs, ra, true);
qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", 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); g_assert(dxc <= 0xff);
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
/* Store the DXC into the lowcore */ /* 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); env->psa + offsetof(LowCore, data_exc_code), dxc);
#endif #endif
@ -68,7 +68,7 @@ void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
g_assert(vxc <= 0xff); g_assert(vxc <= 0xff);
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
/* Always store the VXC into the lowcore, without AFP it is undefined */ /* Always store the VXC into the lowcore, without AFP it is undefined */
stl_phys(CPU(s390_env_get_cpu(env))->as, stl_phys(env_cpu(env)->as,
env->psa + offsetof(LowCore, data_exc_code), vxc); env->psa + offsetof(LowCore, data_exc_code), vxc);
#endif #endif
@ -297,7 +297,7 @@ static void do_svc_interrupt(CPUS390XState *env)
static void do_ext_interrupt(CPUS390XState *env) static void do_ext_interrupt(CPUS390XState *env)
{ {
QEMUS390FLICState *flic = QEMU_S390_FLIC(s390_get_flic()); QEMUS390FLICState *flic = QEMU_S390_FLIC(s390_get_flic());
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
uint64_t mask, addr; uint64_t mask, addr;
uint16_t cpu_addr; uint16_t cpu_addr;
LowCore *lowcore; LowCore *lowcore;

View File

@ -114,8 +114,6 @@ static void handle_exceptions(CPUS390XState *env, bool XxC, uintptr_t retaddr)
int float_comp_to_cc(CPUS390XState *env, int float_compare) int float_comp_to_cc(CPUS390XState *env, int float_compare)
{ {
S390CPU *cpu = s390_env_get_cpu(env);
switch (float_compare) { switch (float_compare) {
case float_relation_equal: case float_relation_equal:
return 0; return 0;
@ -126,7 +124,7 @@ int float_comp_to_cc(CPUS390XState *env, int float_compare)
case float_relation_unordered: case float_relation_unordered:
return 3; return 3;
default: default:
cpu_abort(CPU(cpu), "unknown return value for float compare\n"); cpu_abort(env_cpu(env), "unknown return value for float compare\n");
} }
} }

View File

@ -111,11 +111,11 @@ void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr)
env->cc_op = (mask >> 44) & 3; env->cc_op = (mask >> 44) & 3;
if ((old_mask ^ mask) & PSW_MASK_PER) { 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) { 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) LowCore *cpu_map_lowcore(CPUS390XState *env)
{ {
S390CPU *cpu = s390_env_get_cpu(env);
LowCore *lowcore; LowCore *lowcore;
hwaddr len = sizeof(LowCore); hwaddr len = sizeof(LowCore);
lowcore = cpu_physical_memory_map(env->psa, &len, 1); lowcore = cpu_physical_memory_map(env->psa, &len, 1);
if (len < sizeof(LowCore)) { 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; return lowcore;

View File

@ -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()); s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC());
} }
#else #else
S390CPU *cpu = s390_env_get_cpu(env);
/* 32-bit hosts would need special wrapper functionality - just abort if /* 32-bit hosts would need special wrapper functionality - just abort if
we encounter such a case; it's very unlikely anyways. */ 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 #endif
} }
return ret; return ret;

View File

@ -23,7 +23,7 @@
/* Ensure to exit the TB after this call! */ /* Ensure to exit the TB after this call! */
void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen) 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; cs->exception_index = EXCP_PGM;
env->int_pgm_code = code; 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, void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,
uintptr_t ra) uintptr_t ra)
{ {
S390CPU *cpu = s390_env_get_cpu(env);
if (kvm_enabled()) { if (kvm_enabled()) {
kvm_s390_program_interrupt(cpu, code); kvm_s390_program_interrupt(env_archcpu(env), code);
} else if (tcg_enabled()) { } else if (tcg_enabled()) {
tcg_s390_program_interrupt(env, code, ilen, ra); tcg_s390_program_interrupt(env, code, ilen, ra);
} else { } else {

View File

@ -1617,7 +1617,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) void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
{ {
uintptr_t ra = GETPC(); uintptr_t ra = GETPC();
S390CPU *cpu = s390_env_get_cpu(env);
bool PERchanged = false; bool PERchanged = false;
uint64_t src = a2; uint64_t src = a2;
uint32_t i; uint32_t i;
@ -1642,16 +1641,15 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
} }
if (PERchanged && env->psw.mask & PSW_MASK_PER) { 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) void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
{ {
uintptr_t ra = GETPC(); uintptr_t ra = GETPC();
S390CPU *cpu = s390_env_get_cpu(env);
bool PERchanged = false; bool PERchanged = false;
uint64_t src = a2; uint64_t src = a2;
uint32_t i; uint32_t i;
@ -1675,10 +1673,10 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
} }
if (PERchanged && env->psw.mask & PSW_MASK_PER) { 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) void HELPER(stctg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
@ -1737,8 +1735,8 @@ uint32_t HELPER(testblock)(CPUS390XState *env, uint64_t real_addr)
uint32_t HELPER(tprot)(CPUS390XState *env, uint64_t a1, uint64_t a2) uint32_t HELPER(tprot)(CPUS390XState *env, uint64_t a1, uint64_t a2)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
CPUState *cs = CPU(cpu); CPUState *cs = env_cpu(env);
/* /*
* TODO: we currently don't handle all access protection types * TODO: we currently don't handle all access protection types
@ -1906,7 +1904,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) 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(); const uintptr_t ra = GETPC();
uint64_t table, entry, raddr; uint64_t table, entry, raddr;
uint16_t entries, i, index = 0; uint16_t entries, i, index = 0;
@ -1958,7 +1956,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, void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr,
uint32_t m4) uint32_t m4)
{ {
CPUState *cs = CPU(s390_env_get_cpu(env)); CPUState *cs = env_cpu(env);
const uintptr_t ra = GETPC(); const uintptr_t ra = GETPC();
uint64_t page = vaddr & TARGET_PAGE_MASK; uint64_t page = vaddr & TARGET_PAGE_MASK;
uint64_t pte_addr, pte; uint64_t pte_addr, pte;
@ -1998,17 +1996,13 @@ void HELPER(ipte)(CPUS390XState *env, uint64_t pto, uint64_t vaddr,
/* flush local tlb */ /* flush local tlb */
void HELPER(ptlb)(CPUS390XState *env) void HELPER(ptlb)(CPUS390XState *env)
{ {
S390CPU *cpu = s390_env_get_cpu(env); tlb_flush(env_cpu(env));
tlb_flush(CPU(cpu));
} }
/* flush global tlb */ /* flush global tlb */
void HELPER(purge)(CPUS390XState *env) void HELPER(purge)(CPUS390XState *env)
{ {
S390CPU *cpu = s390_env_get_cpu(env); tlb_flush_all_cpus_synced(env_cpu(env));
tlb_flush_all_cpus_synced(CPU(cpu));
} }
/* load using real address */ /* load using real address */
@ -2052,7 +2046,7 @@ void HELPER(sturg)(CPUS390XState *env, uint64_t addr, uint64_t v1)
/* load real address */ /* load real address */
uint64_t HELPER(lra)(CPUS390XState *env, uint64_t addr) 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; uint32_t cc = 0;
uint64_t asc = env->psw.mask & PSW_MASK_ASC; uint64_t asc = env->psw.mask & PSW_MASK_ASC;
uint64_t ret; uint64_t ret;

View File

@ -55,7 +55,7 @@
/* Raise an exception statically from a TB. */ /* Raise an exception statically from a TB. */
void HELPER(exception)(CPUS390XState *env, uint32_t excp) 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); HELPER_LOG("%s: exception %d\n", __func__, excp);
cs->exception_index = 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 */ /* Set Prefix */
void HELPER(spx)(CPUS390XState *env, uint64_t a1) 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; uint32_t prefix = a1 & 0x7fffe000;
env->psa = prefix; 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 uint32_t sel2 = r1 & STSI_R1_SEL2_MASK;
const MachineState *ms = MACHINE(qdev_get_machine()); const MachineState *ms = MACHINE(qdev_get_machine());
uint16_t total_cpus = 0, conf_cpus = 0, reserved_cpus = 0; 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 = { }; SysIB sysib = { };
int i, cc = 0; 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 #ifndef CONFIG_USER_ONLY
void HELPER(xsch)(CPUS390XState *env, uint64_t r1) void HELPER(xsch)(CPUS390XState *env, uint64_t r1)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
ioinst_handle_xsch(cpu, r1, GETPC()); ioinst_handle_xsch(cpu, r1, GETPC());
qemu_mutex_unlock_iothread(); qemu_mutex_unlock_iothread();
@ -419,7 +419,7 @@ void HELPER(xsch)(CPUS390XState *env, uint64_t r1)
void HELPER(csch)(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(); qemu_mutex_lock_iothread();
ioinst_handle_csch(cpu, r1, GETPC()); ioinst_handle_csch(cpu, r1, GETPC());
qemu_mutex_unlock_iothread(); qemu_mutex_unlock_iothread();
@ -427,7 +427,7 @@ void HELPER(csch)(CPUS390XState *env, uint64_t r1)
void HELPER(hsch)(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(); qemu_mutex_lock_iothread();
ioinst_handle_hsch(cpu, r1, GETPC()); ioinst_handle_hsch(cpu, r1, GETPC());
qemu_mutex_unlock_iothread(); 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) 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(); qemu_mutex_lock_iothread();
ioinst_handle_msch(cpu, r1, inst >> 16, GETPC()); ioinst_handle_msch(cpu, r1, inst >> 16, GETPC());
qemu_mutex_unlock_iothread(); 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) void HELPER(rchp)(CPUS390XState *env, uint64_t r1)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
ioinst_handle_rchp(cpu, r1, GETPC()); ioinst_handle_rchp(cpu, r1, GETPC());
qemu_mutex_unlock_iothread(); qemu_mutex_unlock_iothread();
@ -451,7 +451,7 @@ void HELPER(rchp)(CPUS390XState *env, uint64_t r1)
void HELPER(rsch)(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(); qemu_mutex_lock_iothread();
ioinst_handle_rsch(cpu, r1, GETPC()); ioinst_handle_rsch(cpu, r1, GETPC());
qemu_mutex_unlock_iothread(); qemu_mutex_unlock_iothread();
@ -459,7 +459,7 @@ void HELPER(rsch)(CPUS390XState *env, uint64_t r1)
void HELPER(sal)(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(); qemu_mutex_lock_iothread();
ioinst_handle_sal(cpu, r1, GETPC()); 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) 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(); qemu_mutex_lock_iothread();
ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC()); 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) 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(); qemu_mutex_lock_iothread();
ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC()); ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC());
qemu_mutex_unlock_iothread(); 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) void HELPER(stcrw)(CPUS390XState *env, uint64_t inst)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
ioinst_handle_stcrw(cpu, inst >> 16, GETPC()); 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) 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(); qemu_mutex_lock_iothread();
ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC()); ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC());
qemu_mutex_unlock_iothread(); 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) uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
{ {
const uintptr_t ra = GETPC(); 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()); QEMUS390FLICState *flic = s390_get_qemu_flic(s390_get_flic());
QEMUS390FlicIO *io = NULL; QEMUS390FlicIO *io = NULL;
LowCore *lowcore; 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) 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(); qemu_mutex_lock_iothread();
ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC()); ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC());
qemu_mutex_unlock_iothread(); 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) void HELPER(chsc)(CPUS390XState *env, uint64_t inst)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
ioinst_handle_chsc(cpu, inst >> 16, GETPC()); ioinst_handle_chsc(cpu, inst >> 16, GETPC());
qemu_mutex_unlock_iothread(); 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 /* If the instruction has to be nullified, trigger the
exception immediately. */ exception immediately. */
if (env->cregs[9] & PER_CR9_EVENT_NULLIFICATION) { 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->per_perc_atmid |= PER_CODE_EVENT_NULLIFICATION;
env->int_pgm_code = PGM_PER; env->int_pgm_code = PGM_PER;
@ -702,7 +702,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t addr)
*/ */
void HELPER(clp)(CPUS390XState *env, uint32_t r2) void HELPER(clp)(CPUS390XState *env, uint32_t r2)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
clp_service_call(cpu, r2, GETPC()); clp_service_call(cpu, r2, GETPC());
@ -711,7 +711,7 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2)
void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, 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(); qemu_mutex_lock_iothread();
pcilg_service_call(cpu, r1, r2, GETPC()); pcilg_service_call(cpu, r1, r2, GETPC());
@ -720,7 +720,7 @@ void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
void HELPER(pcistg)(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(); qemu_mutex_lock_iothread();
pcistg_service_call(cpu, r1, r2, GETPC()); pcistg_service_call(cpu, r1, r2, GETPC());
@ -730,7 +730,7 @@ void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
uint32_t ar) uint32_t ar)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
stpcifc_service_call(cpu, r1, fiba, ar, GETPC()); stpcifc_service_call(cpu, r1, fiba, ar, GETPC());
@ -752,7 +752,7 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2) 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(); qemu_mutex_lock_iothread();
rpcit_service_call(cpu, r1, r2, GETPC()); rpcit_service_call(cpu, r1, r2, GETPC());
@ -762,7 +762,7 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2)
void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3, void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
uint64_t gaddr, uint32_t ar) uint64_t gaddr, uint32_t ar)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC()); pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC());
@ -772,7 +772,7 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba, void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
uint32_t ar) uint32_t ar)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
mpcifc_service_call(cpu, r1, fiba, ar, GETPC()); mpcifc_service_call(cpu, r1, fiba, ar, GETPC());

View File

@ -58,12 +58,12 @@
static void trigger_access_exception(CPUS390XState *env, uint32_t type, static void trigger_access_exception(CPUS390XState *env, uint32_t type,
uint32_t ilen, uint64_t tec) uint32_t ilen, uint64_t tec)
{ {
S390CPU *cpu = s390_env_get_cpu(env); S390CPU *cpu = env_archcpu(env);
if (kvm_enabled()) { if (kvm_enabled()) {
kvm_s390_access_exception(cpu, type, tec); kvm_s390_access_exception(cpu, type, tec);
} else { } else {
CPUState *cs = CPU(cpu); CPUState *cs = env_cpu(env);
if (type != PGM_ADDRESSING) { if (type != PGM_ADDRESSING) {
stq_phys(cs->as, env->psa + offsetof(LowCore, trans_exc_code), tec); 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, target_ulong *raddr, int *flags, int rw,
bool exc) bool exc)
{ {
CPUState *cs = CPU(s390_env_get_cpu(env)); CPUState *cs = env_cpu(env);
uint64_t origin, offs, pt_entry; uint64_t origin, offs, pt_entry;
if (st_entry & SEGMENT_ENTRY_RO) { 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, target_ulong *raddr, int *flags, int rw,
bool exc) bool exc)
{ {
CPUState *cs = CPU(s390_env_get_cpu(env)); CPUState *cs = env_cpu(env);
uint64_t origin, offs, new_entry; uint64_t origin, offs, new_entry;
const int pchks[4] = { const int pchks[4] = {
PGM_SEGMENT_TRANS, PGM_REG_THIRD_TRANS, PGM_SEGMENT_TRANS, PGM_REG_THIRD_TRANS,

View File

@ -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 *status_reg = &env->regs[r1];
uint64_t param = (r1 % 2) ? env->regs[r1] : env->regs[r1 + 1]; 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; S390CPU *dst_cpu = NULL;
int ret; int ret;
@ -492,7 +492,7 @@ int s390_cpu_restart(S390CPU *cpu)
void do_stop_interrupt(CPUS390XState *env) 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) { if (s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu) == 0) {
qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);