From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950462; cv=none; d=zoho.com; s=zohoarc; b=jH7kwDtkkApy6beG8tZG7ZWDguGgMKuhxHi/EbYnDXTgxRy5URGwue0ln6NrIVNCie6KpqBa/aAFnwwngcUJ1qxte9HJUuEO55zG+61oHzKF6mr8R7lJFgxEWxfUp9BwyNmgbqT7P8Qmt7ZNaX7EIOgJOuIw1bjCW9iOnmmdbJs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950462; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=jU8brlUXzPjkar+u0NpnsFMARH74CTCG+r5FbUcwGjw=; b=T0vllEzJqBt3O07x1dmMkhN69nYk0Oqdxe7ku3dd7rUQTidHFDGXBNXC4M+aNivtlDo3KnrO21HNqetjwUtEbgWt9rD9DWoGj3JIUzQw4ozpQcs/AN9/L3epBOghdiLMmO5gVcwrDxfcxYkowZXFUG+1wLmeM+CG+fcfKDFc7to= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950462908693.8221856007824; Tue, 1 Oct 2019 10:21:02 -0700 (PDT) Received: from localhost ([::1]:45652 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLpd-0005Wn-Eo for importer@patchew.org; Tue, 01 Oct 2019 13:21:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60973) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLl6-0001RL-J3 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLl5-0005S4-94 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:20 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:35777) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLl5-0005Rq-3e for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:19 -0400 Received: by mail-pg1-x533.google.com with SMTP id a24so10120555pgj.2 for ; Tue, 01 Oct 2019 10:16:19 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jU8brlUXzPjkar+u0NpnsFMARH74CTCG+r5FbUcwGjw=; b=m9r4qKNs/zQLSFvYcRFXDZCES/Eim/BJ8FdrangvzLph10yyq0vv0NcSDNHIW0tqVH qJochh9fawb7efFcoW2O/Yn/0bmLZy14nWhRd9gVuMaZJz6l7iBTeKQb06zeq6mSNUbJ d13jW704jDuP30c2UiDzP9xoEN7yi+DiI0dqP/Rh/wd7C3xH+nyG+uvz2p7EqgvyV5VP 4yah9rze3oCWIwaoQvpmmLsu/6s0oLPftZDSevCRTuraXKTkx2G17eHUkbs1TsIxswPy lQ1wvQC5aagsOWmRQm9dFYv0FNV7hgW49HuyVP3JWms3jTnIQxW7yeXcCk6n/uOiqxeN 2n9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=jU8brlUXzPjkar+u0NpnsFMARH74CTCG+r5FbUcwGjw=; b=jp/qk3JFo1lvL6/LroFdDEG9q5C3Ebua6U85SfsSiTZ+fH4/3R7QjKbF545OehjJ0A LTlHPT7uROq+tiHsv0CjoMOHoKi1AjYDYBluSBeifTy8C+Yax/dtWYsqFXDBV7a/0G1F YV47FUUImRra9DMf3ImTOM/LCdc/X+y55UInsJDou/H1vZn0hC5+MFQVoB/zr7GDsuCp 44T8NPvOoxGPRMreDu9KHamy5zsHo8dtmte2lzRebEYvvBUHVwBT/ySn8IEqxOwion3M 6tkIlpni4V+nM5nIlTFiNjVLDQp9PiVroG2uD9/ROewqlVagJhWoh3/Qlt/szA7SDHf8 1I3g== X-Gm-Message-State: APjAAAUhBB9jmCXfe4RmhIKO3DW1ltLrtBNxHmJ2hb9td+/AAXSvOwsM kXE6MqA10n8mHKBthvGikPk+ARu9pms= X-Google-Smtp-Source: APXvYqwwWjv0tRY0a03kcc13MbUYDi2Vgej7vsh510e/djWiIOh8CyZuKLOAaLh3ZOC5magDKRTkKQ== X-Received: by 2002:a65:5802:: with SMTP id g2mr25715032pgr.333.1569950177620; Tue, 01 Oct 2019 10:16:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 01/18] target/s390x: Add ilen to unwind data Date: Tue, 1 Oct 2019 10:15:57 -0700 Message-Id: <20191001171614.8405-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::533 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Use ILEN_UNWIND to signal that we have in fact that cpu_restore_state will have been called by the time we arrive in do_program_interrupt. Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 4 +++- target/s390x/interrupt.c | 5 ++++- target/s390x/translate.c | 20 +++++++++++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index b907741858..1a5b1397da 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -34,7 +34,7 @@ /* The z/Architecture has a strong memory model with some store-after-load= re-ordering */ #define TCG_GUEST_DEFAULT_MO (TCG_MO_ALL & ~TCG_MO_ST_LD) =20 -#define TARGET_INSN_START_EXTRA_WORDS 1 +#define TARGET_INSN_START_EXTRA_WORDS 2 =20 #define MMU_MODE0_SUFFIX _primary #define MMU_MODE1_SUFFIX _secondary @@ -804,6 +804,8 @@ int cpu_s390x_signal_handler(int host_signum, void *pin= fo, void *puc); void s390_crw_mchk(void); void s390_io_interrupt(uint16_t subchannel_id, uint16_t subchannel_nr, uint32_t io_int_parm, uint32_t io_int_word); +/* instruction length set by unwind info */ +#define ILEN_UNWIND 0 /* automatically detect the instruction length */ #define ILEN_AUTO 0xff #define RA_IGNORED 0 diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index a841f7187d..30a9fb8852 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -28,7 +28,10 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t = code, uint32_t ilen) =20 cs->exception_index =3D EXCP_PGM; env->int_pgm_code =3D code; - env->int_pgm_ilen =3D ilen; + /* If ILEN_UNWIND, int_pgm_ilen already has the correct value. */ + if (ilen !=3D ILEN_UNWIND) { + env->int_pgm_ilen =3D ilen; + } } =20 void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, diff --git a/target/s390x/translate.c b/target/s390x/translate.c index a3e43ff9ec..151dfa91fb 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -6309,6 +6309,9 @@ static DisasJumpType translate_one(CPUS390XState *env= , DisasContext *s) /* Search for the insn in the table. */ insn =3D extract_insn(env, s, &f); =20 + /* Emit insn_start now that we know the ILEN. */ + tcg_gen_insn_start(s->base.pc_next, s->cc_op, s->ilen); + /* Not found means unimplemented/illegal opcode. */ if (insn =3D=3D NULL) { qemu_log_mask(LOG_UNIMP, "unimplemented opcode 0x%02x%02x\n", @@ -6463,9 +6466,6 @@ static void s390x_tr_tb_start(DisasContextBase *db, C= PUState *cs) =20 static void s390x_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { - DisasContext *dc =3D container_of(dcbase, DisasContext, base); - - tcg_gen_insn_start(dc->base.pc_next, dc->cc_op); } =20 static bool s390x_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *= cs, @@ -6473,6 +6473,14 @@ static bool s390x_tr_breakpoint_check(DisasContextBa= se *dcbase, CPUState *cs, { DisasContext *dc =3D container_of(dcbase, DisasContext, base); =20 + /* + * Emit an insn_start to accompany the breakpoint exception. + * The ILEN value is a dummy, since this does not result in + * an s390x exception, but an internal qemu exception which + * brings us back to interact with the gdbstub. + */ + tcg_gen_insn_start(dc->base.pc_next, dc->cc_op, 2); + dc->base.is_jmp =3D DISAS_PC_STALE; dc->do_debug =3D true; /* The address covered by the breakpoint must be included in @@ -6567,8 +6575,14 @@ void restore_state_to_opc(CPUS390XState *env, Transl= ationBlock *tb, target_ulong *data) { int cc_op =3D data[1]; + env->psw.addr =3D data[0]; + + /* Update the CC opcode if it is not already up-to-date. */ if ((cc_op !=3D CC_OP_DYNAMIC) && (cc_op !=3D CC_OP_STATIC)) { env->cc_op =3D cc_op; } + + /* Record ILEN. */ + env->int_pgm_ilen =3D data[2]; } --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950470; cv=none; d=zoho.com; s=zohoarc; b=NnRz6hgwbI1yRQ8d5u3MJhgbaX1To0e6N4qwsPuld0tUAQvFAJmhdbwdAoY9jhVCdWRtSJb1EM2sPo47ugTz1+SGJ5gYokDYQRBKQ8cw7LqjFaTn1eMgv+hqZjFb+9fSyudaRGSt0OMSzhco2mULTUjHyJFKmoCC5ZcKTbEUJNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950470; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=0KNz+iOsX4QMQJox/KvD2oB0+dKW6HscqmDu5dXQGFM=; b=GZywz9i0HbI9YKeLoPiRLqfPes+0SMky/u29c2McIytnt1nVhEuWmY0pHFpKtd8dHJVQdx+H9HdH39sIig8mu0cutpRMs0vrzfuok47WgWcML+XCCgDTFJhEUFQF4ps9r0gzG8h/QyMa4aLtCUrSdrAfz1xH3XvHI+8gx0JLF0Y= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950470499437.6130698878086; Tue, 1 Oct 2019 10:21:10 -0700 (PDT) Received: from localhost ([::1]:45656 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLpl-0005dQ-4h for importer@patchew.org; Tue, 01 Oct 2019 13:21:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60984) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLl7-0001Sn-Rd for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLl6-0005SU-F0 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:21 -0400 Received: from mail-pg1-x531.google.com ([2607:f8b0:4864:20::531]:41179) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLl6-0005SF-8w for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:20 -0400 Received: by mail-pg1-x531.google.com with SMTP id s1so10093615pgv.8 for ; Tue, 01 Oct 2019 10:16:20 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0KNz+iOsX4QMQJox/KvD2oB0+dKW6HscqmDu5dXQGFM=; b=CJYyCEowrNqjH7x/r/Kh1vtNcmPxjSfHto1N7UGklCZEX8u+RUaKXuKzCs+bpCmVr8 g4Jq1ljR+pr/QsT3gZ3aU7B1TH5Hr/3llud3KsamHfSpIyzEwWa/dmLt1Gvz9h0Ee5NU wU4/KsX+/ca3Gin3nrfNw0w7V1YHJ2LFjE5lPTX4rbSLR3TF/cFp43a0SpXOHZq/UyyW 8W/bHrjnphSFARMstxrMgxnibqcPJC/Ci9eXWtQuc00G27WOH1wgY/Tv/3hojs9aVG/4 dF/5omz4AYrlvcBNkY9S6zmPRiwcKZmsGn295/QWCwjQYD+/3ypEAZcUS2HQ/8FT+wyr bCqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0KNz+iOsX4QMQJox/KvD2oB0+dKW6HscqmDu5dXQGFM=; b=IEI2ULLuiVUKwlX3MBJzOf7G6rnWI8kwd6sCn3e9TVUOAXVdGKk3a/tGyqGjMymjCi e3ZriZu5Nx+3yKAsHvun6OpAkw9ug1oD2BHGruZyW30RixpA1ECKOB8UfmC0uiaLOoBt T4UDu7KD5xTidEBaOVwDM753q1LD6J/y072BOEfCVS+KAwYwxJFO5We57CSxoeKfmXka lmbYvKVHnVErsja7nPAy3TVAW90iTTE8a/pI7a60LHEmsSo5/bpV1GtytEEGkM354J8g y623szjGWrHRmrmbT2MutwSBA1wyNghvHLWaTryFz/dYyW2AsahjT8BHWGNjLxp8Oru/ hgnQ== X-Gm-Message-State: APjAAAUn3/PK2fbFZztbXOUpuIT+Vr+OiPFbI4Zh8eBYrfjddsePBPoc jsFGhHdaOytpdf1f0xPedJ+woO7JEZM= X-Google-Smtp-Source: APXvYqztzGmSNJ7Yg4LcHf5LnKApKiLOGWDoCLpQPKw74YNQr45GrC68bLDZM9cXFDvep6c8yD5rYg== X-Received: by 2002:a62:d45a:: with SMTP id u26mr29175091pfl.137.1569950178828; Tue, 01 Oct 2019 10:16:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 02/18] target/s390x: Remove ilen parameter from tcg_s390_program_interrupt Date: Tue, 1 Oct 2019 10:15:58 -0700 Message-Id: <20191001171614.8405-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::531 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Since we begin the operation with an unwind, we have the proper value of ilen immediately available. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/tcg_s390x.h | 4 ++-- target/s390x/excp_helper.c | 10 +++++----- target/s390x/interrupt.c | 2 +- target/s390x/tcg-stub.c | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/target/s390x/tcg_s390x.h b/target/s390x/tcg_s390x.h index 2813f9d48e..2f54ccb027 100644 --- a/target/s390x/tcg_s390x.h +++ b/target/s390x/tcg_s390x.h @@ -14,8 +14,8 @@ #define TCG_S390X_H =20 void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque); -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t= code, - int ilen, uintptr_t ra); +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, + uint32_t code, uintptr_t ra); void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dx= c, uintptr_t ra); void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t = vxc, diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 892f659d5a..eb55e5ef53 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -34,15 +34,15 @@ #include "hw/boards.h" #endif =20 -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t= code, - int ilen, uintptr_t ra) +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, + uint32_t code, uintptr_t ra) { CPUState *cs =3D env_cpu(env); =20 cpu_restore_state(cs, ra, true); qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", env->psw.addr); - trigger_pgm_exception(env, code, ilen); + trigger_pgm_exception(env, code, ILEN_UNWIND); cpu_loop_exit(cs); } =20 @@ -60,7 +60,7 @@ void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState = *env, uint32_t dxc, if (env->cregs[0] & CR0_AFP) { env->fpc =3D deposit32(env->fpc, 8, 8, dxc); } - tcg_s390_program_interrupt(env, PGM_DATA, ILEN_AUTO, ra); + tcg_s390_program_interrupt(env, PGM_DATA, ra); } =20 void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t = vxc, @@ -75,7 +75,7 @@ void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XStat= e *env, uint32_t vxc, =20 /* Always store the VXC into the FPC, without AFP it is undefined */ env->fpc =3D deposit32(env->fpc, 8, 8, vxc); - tcg_s390_program_interrupt(env, PGM_VECTOR_PROCESSING, ILEN_AUTO, ra); + tcg_s390_program_interrupt(env, PGM_VECTOR_PROCESSING, ra); } =20 void HELPER(data_exception)(CPUS390XState *env, uint32_t dxc) diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index 30a9fb8852..b798e2ecbe 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -40,7 +40,7 @@ void s390_program_interrupt(CPUS390XState *env, uint32_t = code, int ilen, if (kvm_enabled()) { kvm_s390_program_interrupt(env_archcpu(env), code); } else if (tcg_enabled()) { - tcg_s390_program_interrupt(env, code, ilen, ra); + tcg_s390_program_interrupt(env, code, ra); } else { g_assert_not_reached(); } diff --git a/target/s390x/tcg-stub.c b/target/s390x/tcg-stub.c index 32adb7276a..d22c898802 100644 --- a/target/s390x/tcg-stub.c +++ b/target/s390x/tcg-stub.c @@ -18,8 +18,8 @@ void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque) { } -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t= code, - int ilen, uintptr_t ra) +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, + uint32_t code, uintptr_t ra) { g_assert_not_reached(); } --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950335; cv=none; d=zoho.com; s=zohoarc; b=Ygje05U8bC543vd5ZXYzDCULf3yK1Qvwxw1+Bfn4W7qAJGS+JgHL/WWgLgwiXljG79g0QfevgUZJGhrP+2uxRj4EWMtsEBxzw6VJckQK2vnhh518Fl6cqXN6N2dzeQluMyaeQtr5jWYCRK4C0nNODbkPLTYumIE12hh9iCjOJLw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950335; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=4zWjKEOogu4L8opLkpfnMSEG002ayIxj7Owy0lg26jY=; b=SS5p001jMLm69Rlod4ZVUrmQf0c+NDOSbW4Rdq3+Jo1awQAGCcyuLGcSafEAUGS+XWC4POmk1y10u1Q7quo/ufE/rC9F0KTK6h+S+SKLSdF7xYVlxB0o/5t+xU7DuUwEkBHqknx8N1uYj08At7Ze4vs1cGcAd1Dz8fFCLyqXEKc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950335986147.49205229126846; Tue, 1 Oct 2019 10:18:55 -0700 (PDT) Received: from localhost ([::1]:45620 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLna-0003Bg-Fu for importer@patchew.org; Tue, 01 Oct 2019 13:18:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32790) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlC-0001Xd-7Q for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLl8-0005Tc-M9 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:26 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:41345) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLl8-0005TE-C0 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:22 -0400 Received: by mail-pg1-x541.google.com with SMTP id s1so10093708pgv.8 for ; Tue, 01 Oct 2019 10:16:22 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4zWjKEOogu4L8opLkpfnMSEG002ayIxj7Owy0lg26jY=; b=WZzcEUD2nKjY53SAQOb8SngcnSXweoRIcuH/By84eJGH58v6y4VGQ3mG+U8oYVcBuN mYHP5V8MkqXtO7/zeLeBuOYQn6PUWMjmReed2hDL9aixKiHdAvecnLfnjs6eTUrO2EQv B8W7PWGOZEgjrTX6D+G4BX2zWYb3+h7K8EUgNfUttsm32xDb9+p9yO/seUDzCJ5KY3bE 6u5EY3VyCW3Ncjt1R9vq4LFNTBMjD2CdXQ4udDHW/atrhi2ypj9/tBRPDfGSP+cHte06 7gfaZlgOKgSjdEXT6Sjn4BiP1EZZPTc1wRLA0luJ5yCMRyfVQrSzaXiYzZKLEw/BkLLw IwVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4zWjKEOogu4L8opLkpfnMSEG002ayIxj7Owy0lg26jY=; b=sWYvzNCVNkPDoNcAzHm3PGEe6ee/LA12kQbS42HEoLm8/1/zfXxKnb+XuXPWDxID7Y TmnBgtLIycQiLVDs1mSovQCJKEyXEjg3bvQrwi6+MvntMWYZCLEa5PnKHmwKR/6GP99v EpRX/X/VjjmqKU6ZN840bVjxKUqVOv4FVgKhEUV1CXGjxNdLYd+tX8XsuFDL7L7ISq8u M7raRA6s7jA+qaJyXhn57kcjMfp/PDu25WXtetpitwDfpsurnWbGJCecW8IpWuF8UKdg sQJvWJPjTvphZp2+IF8Nup1NV7BgsCxs9DufNfL8OXEdVT7H1EEzQH0kygF3X2NSCL6z JjMw== X-Gm-Message-State: APjAAAWYY9+IKgfKpy9e/NwiS9SCL8uDX8ZMGLBFcHbKPy4cnvg1osZ0 Mbq1pguaEvL9VRIi8cdabG8whZMMI3A= X-Google-Smtp-Source: APXvYqyAfScwMefzsXPmRLd5rrvXImRxY7LXYaQXXQapaLx8ZEeoNc0sEVlMzTVlYiTOsUm2iIi5LA== X-Received: by 2002:a63:3585:: with SMTP id c127mr30173557pga.93.1569950180085; Tue, 01 Oct 2019 10:16:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 03/18] target/s390x: Remove ilen parameter from s390_program_interrupt Date: Tue, 1 Oct 2019 10:15:59 -0700 Message-Id: <20191001171614.8405-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This is no longer used, and many of the existing uses -- particularly within hw/s390x -- seem questionable. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 3 +- hw/s390x/s390-pci-inst.c | 58 ++++++++++++++++++------------------ target/s390x/cc_helper.c | 2 +- target/s390x/crypto_helper.c | 4 +-- target/s390x/diag.c | 14 ++++----- target/s390x/excp_helper.c | 2 +- target/s390x/fpu_helper.c | 6 ++-- target/s390x/int_helper.c | 14 ++++----- target/s390x/interrupt.c | 3 +- target/s390x/ioinst.c | 40 ++++++++++++------------- target/s390x/mem_helper.c | 43 +++++++++++++------------- target/s390x/misc_helper.c | 27 ++++++----------- 12 files changed, 102 insertions(+), 114 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 1a5b1397da..18e7091763 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -809,8 +809,7 @@ void s390_io_interrupt(uint16_t subchannel_id, uint16_t= subchannel_nr, /* automatically detect the instruction length */ #define ILEN_AUTO 0xff #define RA_IGNORED 0 -void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, - uintptr_t ra); +void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t r= a); /* service interrupts are floating therefore we must not pass an cpustate = */ void s390_sclp_extint(uint32_t parm); =20 diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index 4b3bd4a804..92c7e45df5 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -157,7 +157,7 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_= t ra) int i; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 4, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 @@ -168,7 +168,7 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_= t ra) reqh =3D (ClpReqHdr *)buffer; req_len =3D lduw_p(&reqh->len); if (req_len < 16 || req_len > 8184 || (req_len % 8 !=3D 0)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } =20 @@ -180,11 +180,11 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintpt= r_t ra) resh =3D (ClpRspHdr *)(buffer + req_len); res_len =3D lduw_p(&resh->len); if (res_len < 8 || res_len > 8176 || (res_len % 8 !=3D 0)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } if ((req_len + res_len) > 8192) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } =20 @@ -390,12 +390,12 @@ int pcilg_service_call(S390CPU *cpu, uint8_t r1, uint= 8_t r2, uintptr_t ra) uint8_t pcias; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 4, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 if (r2 & 0x1) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 @@ -429,25 +429,25 @@ int pcilg_service_call(S390CPU *cpu, uint8_t r1, uint= 8_t r2, uintptr_t ra) switch (pcias) { case ZPCI_IO_BAR_MIN...ZPCI_IO_BAR_MAX: if (!len || (len > (8 - (offset & 0x7)))) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } result =3D zpci_read_bar(pbdev, pcias, offset, &data, len); if (result !=3D MEMTX_OK) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } break; case ZPCI_CONFIG_BAR: if (!len || (len > (4 - (offset & 0x3))) || len =3D=3D 3) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } data =3D pci_host_config_read_common( pbdev->pdev, offset, pci_config_size(pbdev->pdev), len); =20 if (zpci_endian_swap(&data, len)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } break; @@ -489,12 +489,12 @@ int pcistg_service_call(S390CPU *cpu, uint8_t r1, uin= t8_t r2, uintptr_t ra) uint8_t pcias; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 4, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 if (r2 & 0x1) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 @@ -536,13 +536,13 @@ int pcistg_service_call(S390CPU *cpu, uint8_t r1, uin= t8_t r2, uintptr_t ra) * A length of 0 is invalid and length should not cross a double w= ord */ if (!len || (len > (8 - (offset & 0x7)))) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } =20 result =3D zpci_write_bar(pbdev, pcias, offset, data, len); if (result !=3D MEMTX_OK) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } break; @@ -550,7 +550,7 @@ int pcistg_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r2, uintptr_t ra) /* ZPCI uses the pseudo BAR number 15 as configuration space */ /* possible access lengths are 1,2,4 and must not cross a word */ if (!len || (len > (4 - (offset & 0x3))) || len =3D=3D 3) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } /* len =3D 1,2,4 so we do not need to test */ @@ -622,12 +622,12 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint= 8_t r2, uintptr_t ra) hwaddr start, end; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 4, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 if (r2 & 0x1) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 @@ -709,7 +709,7 @@ int pcistb_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r3, uint64_t gaddr, uint8_t buffer[128]; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 6, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 @@ -772,7 +772,7 @@ int pcistb_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r3, uint64_t gaddr, =20 if (!memory_region_access_valid(mr, offset, len, true, MEMTXATTRS_UNSPECIFIED)) { - s390_program_interrupt(env, PGM_OPERAND, 6, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } =20 @@ -786,7 +786,7 @@ int pcistb_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r3, uint64_t gaddr, ldq_p(buffer + i * 8), MO_64, MEMTXATTRS_UNSPECIFIE= D); if (result !=3D MEMTX_OK) { - s390_program_interrupt(env, PGM_OPERAND, 6, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } } @@ -797,7 +797,7 @@ int pcistb_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r3, uint64_t gaddr, return 0; =20 specification_error: - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 @@ -871,14 +871,14 @@ static int reg_ioat(CPUS390XState *env, S390PCIIOMMU = *iommu, ZpciFib fib, pba &=3D ~0xfff; pal |=3D 0xfff; if (pba > pal || pba < ZPCI_SDMA_ADDR || pal > ZPCI_EDMA_ADDR) { - s390_program_interrupt(env, PGM_OPERAND, 6, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return -EINVAL; } =20 /* currently we only support designation type 1 with translation */ if (!(dt =3D=3D ZPCI_IOTA_RTTO && t)) { error_report("unsupported ioat dt %d t %d", dt, t); - s390_program_interrupt(env, PGM_OPERAND, 6, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return -EINVAL; } =20 @@ -1003,7 +1003,7 @@ int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uin= t64_t fiba, uint8_t ar, uint64_t cc =3D ZPCI_PCI_LS_OK; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 6, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 @@ -1012,7 +1012,7 @@ int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uin= t64_t fiba, uint8_t ar, fh =3D env->regs[r1] >> 32; =20 if (fiba & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 @@ -1040,7 +1040,7 @@ int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uin= t64_t fiba, uint8_t ar, } =20 if (fib.fmt !=3D 0) { - s390_program_interrupt(env, PGM_OPERAND, 6, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return 0; } =20 @@ -1151,7 +1151,7 @@ int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uin= t64_t fiba, uint8_t ar, break; } default: - s390_program_interrupt(&cpu->env, PGM_OPERAND, 6, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); cc =3D ZPCI_PCI_LS_ERR; } =20 @@ -1171,7 +1171,7 @@ int stpcifc_service_call(S390CPU *cpu, uint8_t r1, ui= nt64_t fiba, uint8_t ar, uint64_t cc =3D ZPCI_PCI_LS_OK; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, 6, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return 0; } =20 @@ -1185,7 +1185,7 @@ int stpcifc_service_call(S390CPU *cpu, uint8_t r1, ui= nt64_t fiba, uint8_t ar, } =20 if (fiba & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 diff --git a/target/s390x/cc_helper.c b/target/s390x/cc_helper.c index cf68792733..3cb00bcb09 100644 --- a/target/s390x/cc_helper.c +++ b/target/s390x/cc_helper.c @@ -588,7 +588,7 @@ void HELPER(sacf)(CPUS390XState *env, uint64_t a1) break; default: HELPER_LOG("unknown sacf mode: %" PRIx64 "\n", a1); - s390_program_interrupt(env, PGM_SPECIFICATION, 2, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); break; } } diff --git a/target/s390x/crypto_helper.c b/target/s390x/crypto_helper.c index 5c79790187..1f83987e9d 100644 --- a/target/s390x/crypto_helper.c +++ b/target/s390x/crypto_helper.c @@ -34,7 +34,7 @@ uint32_t HELPER(msa)(CPUS390XState *env, uint32_t r1, uin= t32_t r2, uint32_t r3, case S390_FEAT_TYPE_PCKMO: case S390_FEAT_TYPE_PCC: if (mod) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } break; @@ -42,7 +42,7 @@ uint32_t HELPER(msa)(CPUS390XState *env, uint32_t r1, uin= t32_t r2, uint32_t r3, =20 s390_get_feat_block(type, subfunc); if (!test_be_bit(fc, subfunc)) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return 0; } =20 diff --git a/target/s390x/diag.c b/target/s390x/diag.c index 65eabf0461..53c2f81f2a 100644 --- a/target/s390x/diag.c +++ b/target/s390x/diag.c @@ -61,12 +61,12 @@ void handle_diag_308(CPUS390XState *env, uint64_t r1, u= int64_t r3, uintptr_t ra) IplParameterBlock *iplb; =20 if (env->psw.mask & PSW_MASK_PSTATE) { - s390_program_interrupt(env, PGM_PRIVILEGED, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); return; } =20 if ((subcode & ~0x0ffffULL) || (subcode > 6)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } =20 @@ -82,13 +82,13 @@ void handle_diag_308(CPUS390XState *env, uint64_t r1, u= int64_t r3, uintptr_t ra) break; case 5: if ((r1 & 1) || (addr & 0x0fffULL)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } if (!address_space_access_valid(&address_space_memory, addr, sizeof(IplParameterBlock), false, MEMTXATTRS_UNSPECIFIED)) { - s390_program_interrupt(env, PGM_ADDRESSING, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_ADDRESSING, ra); return; } iplb =3D g_new0(IplParameterBlock, 1); @@ -112,13 +112,13 @@ out: return; case 6: if ((r1 & 1) || (addr & 0x0fffULL)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } if (!address_space_access_valid(&address_space_memory, addr, sizeof(IplParameterBlock), true, MEMTXATTRS_UNSPECIFIED)) { - s390_program_interrupt(env, PGM_ADDRESSING, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_ADDRESSING, ra); return; } iplb =3D s390_ipl_get_iplb(); @@ -130,7 +130,7 @@ out: } return; default: - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); break; } } diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index eb55e5ef53..089623a248 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -614,7 +614,7 @@ void s390x_cpu_do_unaligned_access(CPUState *cs, vaddr = addr, S390CPU *cpu =3D S390_CPU(cs); CPUS390XState *env =3D &cpu->env; =20 - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, retaddr); + s390_program_interrupt(env, PGM_SPECIFICATION, retaddr); } =20 #endif /* CONFIG_USER_ONLY */ diff --git a/target/s390x/fpu_helper.c b/target/s390x/fpu_helper.c index 5faf973c6c..7228eb96e2 100644 --- a/target/s390x/fpu_helper.c +++ b/target/s390x/fpu_helper.c @@ -825,7 +825,7 @@ void HELPER(sfpc)(CPUS390XState *env, uint64_t fpc) { if (fpc_to_rnd[fpc & 0x7] =3D=3D -1 || fpc & 0x03030088u || (!s390_has_feat(S390_FEAT_FLOATING_POINT_EXT) && fpc & 0x4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 /* Install everything in the main FPC. */ @@ -843,7 +843,7 @@ void HELPER(sfas)(CPUS390XState *env, uint64_t fpc) =20 if (fpc_to_rnd[fpc & 0x7] =3D=3D -1 || fpc & 0x03030088u || (!s390_has_feat(S390_FEAT_FLOATING_POINT_EXT) && fpc & 0x4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 /* @@ -880,7 +880,7 @@ void HELPER(sfas)(CPUS390XState *env, uint64_t fpc) void HELPER(srnm)(CPUS390XState *env, uint64_t rnd) { if (rnd > 0x7 || fpc_to_rnd[rnd & 0x7] =3D=3D -1) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 env->fpc =3D deposit32(env->fpc, 0, 3, rnd); diff --git a/target/s390x/int_helper.c b/target/s390x/int_helper.c index d13cc49be6..1d29a1fc1f 100644 --- a/target/s390x/int_helper.c +++ b/target/s390x/int_helper.c @@ -39,7 +39,7 @@ int64_t HELPER(divs32)(CPUS390XState *env, int64_t a, int= 64_t b64) int64_t q; =20 if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 ret =3D q =3D a / b; @@ -47,7 +47,7 @@ int64_t HELPER(divs32)(CPUS390XState *env, int64_t a, int= 64_t b64) =20 /* Catch non-representable quotient. */ if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 return ret; @@ -60,7 +60,7 @@ uint64_t HELPER(divu32)(CPUS390XState *env, uint64_t a, u= int64_t b64) uint64_t q; =20 if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 ret =3D q =3D a / b; @@ -68,7 +68,7 @@ uint64_t HELPER(divu32)(CPUS390XState *env, uint64_t a, u= int64_t b64) =20 /* Catch non-representable quotient. */ if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 return ret; @@ -79,7 +79,7 @@ int64_t HELPER(divs64)(CPUS390XState *env, int64_t a, int= 64_t b) { /* Catch divide by zero, and non-representable quotient (MIN / -1). */ if (b =3D=3D 0 || (b =3D=3D -1 && a =3D=3D (1ll << 63))) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } env->retxl =3D a % b; return a / b; @@ -92,7 +92,7 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, = uint64_t al, uint64_t ret; /* Signal divide by zero. */ if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } if (ah =3D=3D 0) { /* 64 -> 64/64 case */ @@ -106,7 +106,7 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah= , uint64_t al, env->retxl =3D a % b; ret =3D q; if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC= ()); + s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } #else /* 32-bit hosts would need special wrapper functionality - just ab= ort if diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index b798e2ecbe..2b71e03914 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -34,8 +34,7 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t c= ode, uint32_t ilen) } } =20 -void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen, - uintptr_t ra) +void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t r= a) { if (kvm_enabled()) { kvm_s390_program_interrupt(env_archcpu(env), code); diff --git a/target/s390x/ioinst.c b/target/s390x/ioinst.c index 83c164a168..c437a1d8c6 100644 --- a/target/s390x/ioinst.c +++ b/target/s390x/ioinst.c @@ -44,7 +44,7 @@ void ioinst_handle_xsch(S390CPU *cpu, uint64_t reg1, uint= ptr_t ra) SubchDev *sch; =20 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { - s390_program_interrupt(&cpu->env, PGM_OPERAND, 4, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("xsch", cssid, ssid, schid); @@ -62,7 +62,7 @@ void ioinst_handle_csch(S390CPU *cpu, uint64_t reg1, uint= ptr_t ra) SubchDev *sch; =20 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { - s390_program_interrupt(&cpu->env, PGM_OPERAND, 4, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("csch", cssid, ssid, schid); @@ -80,7 +80,7 @@ void ioinst_handle_hsch(S390CPU *cpu, uint64_t reg1, uint= ptr_t ra) SubchDev *sch; =20 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { - s390_program_interrupt(&cpu->env, PGM_OPERAND, 4, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("hsch", cssid, ssid, schid); @@ -116,7 +116,7 @@ void ioinst_handle_msch(S390CPU *cpu, uint64_t reg1, ui= nt32_t ipb, uintptr_t ra) =20 addr =3D decode_basedisp_s(env, ipb, &ar); if (addr & 3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } if (s390_cpu_virt_mem_read(cpu, addr, ar, &schib, sizeof(schib))) { @@ -125,7 +125,7 @@ void ioinst_handle_msch(S390CPU *cpu, uint64_t reg1, ui= nt32_t ipb, uintptr_t ra) } if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid) || !ioinst_schib_valid(&schib)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("msch", cssid, ssid, schid); @@ -173,7 +173,7 @@ void ioinst_handle_ssch(S390CPU *cpu, uint64_t reg1, ui= nt32_t ipb, uintptr_t ra) =20 addr =3D decode_basedisp_s(env, ipb, &ar); if (addr & 3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } if (s390_cpu_virt_mem_read(cpu, addr, ar, &orig_orb, sizeof(orb))) { @@ -183,7 +183,7 @@ void ioinst_handle_ssch(S390CPU *cpu, uint64_t reg1, ui= nt32_t ipb, uintptr_t ra) copy_orb_from_guest(&orb, &orig_orb); if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid) || !ioinst_orb_valid(&orb)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("ssch", cssid, ssid, schid); @@ -205,7 +205,7 @@ void ioinst_handle_stcrw(S390CPU *cpu, uint32_t ipb, ui= ntptr_t ra) =20 addr =3D decode_basedisp_s(env, ipb, &ar); if (addr & 3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } =20 @@ -236,7 +236,7 @@ void ioinst_handle_stsch(S390CPU *cpu, uint64_t reg1, u= int32_t ipb, =20 addr =3D decode_basedisp_s(env, ipb, &ar); if (addr & 3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } =20 @@ -247,7 +247,7 @@ void ioinst_handle_stsch(S390CPU *cpu, uint64_t reg1, u= int32_t ipb, * access execption if it is not) first. */ if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); } else { s390_cpu_virt_mem_handle_exc(cpu, ra); } @@ -299,13 +299,13 @@ int ioinst_handle_tsch(S390CPU *cpu, uint64_t reg1, u= int32_t ipb, uintptr_t ra) uint8_t ar; =20 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return -EIO; } trace_ioinst_sch_id("tsch", cssid, ssid, schid); addr =3D decode_basedisp_s(env, ipb, &ar); if (addr & 3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return -EIO; } =20 @@ -613,7 +613,7 @@ void ioinst_handle_chsc(S390CPU *cpu, uint32_t ipb, uin= tptr_t ra) addr =3D env->regs[reg]; /* Page boundary? */ if (addr & 0xfff) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); return; } /* @@ -629,7 +629,7 @@ void ioinst_handle_chsc(S390CPU *cpu, uint32_t ipb, uin= tptr_t ra) len =3D be16_to_cpu(req->len); /* Length field valid? */ if ((len < 16) || (len > 4088) || (len & 7)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } memset((char *)req + len, 0, TARGET_PAGE_SIZE - len); @@ -678,7 +678,7 @@ void ioinst_handle_schm(S390CPU *cpu, uint64_t reg1, ui= nt64_t reg2, trace_ioinst("schm"); =20 if (SCHM_REG1_RES(reg1)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } =20 @@ -687,7 +687,7 @@ void ioinst_handle_schm(S390CPU *cpu, uint64_t reg1, ui= nt64_t reg2, dct =3D SCHM_REG1_DCT(reg1); =20 if (update && (reg2 & 0x000000000000001f)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } =20 @@ -700,7 +700,7 @@ void ioinst_handle_rsch(S390CPU *cpu, uint64_t reg1, ui= ntptr_t ra) SubchDev *sch; =20 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { - s390_program_interrupt(&cpu->env, PGM_OPERAND, 4, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); return; } trace_ioinst_sch_id("rsch", cssid, ssid, schid); @@ -724,7 +724,7 @@ void ioinst_handle_rchp(S390CPU *cpu, uint64_t reg1, ui= ntptr_t ra) CPUS390XState *env =3D &cpu->env; =20 if (RCHP_REG1_RES(reg1)) { - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } =20 @@ -747,7 +747,7 @@ void ioinst_handle_rchp(S390CPU *cpu, uint64_t reg1, ui= ntptr_t ra) break; default: /* Invalid channel subsystem. */ - s390_program_interrupt(env, PGM_OPERAND, 4, ra); + s390_program_interrupt(env, PGM_OPERAND, ra); return; } setcc(cpu, cc); @@ -758,6 +758,6 @@ void ioinst_handle_sal(S390CPU *cpu, uint64_t reg1, uin= tptr_t ra) { /* We do not provide address limit checking, so let's suppress it. */ if (SAL_REG1_INVALID(reg1) || reg1 & 0x000000000000ffff) { - s390_program_interrupt(&cpu->env, PGM_OPERAND, 4, ra); + s390_program_interrupt(&cpu->env, PGM_OPERAND, ra); } } diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 08c5cc6a99..77d2eb96d4 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -71,7 +71,7 @@ static inline void check_alignment(CPUS390XState *env, ui= nt64_t v, int wordsize, uintptr_t ra) { if (v % wordsize) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } } =20 @@ -730,7 +730,7 @@ void HELPER(srst)(CPUS390XState *env, uint32_t r1, uint= 32_t r2) =20 /* Bits 32-55 must contain all 0. */ if (env->regs[0] & 0xffffff00u) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 str =3D get_address(env, r2); @@ -767,7 +767,7 @@ void HELPER(srstu)(CPUS390XState *env, uint32_t r1, uin= t32_t r2) =20 /* Bits 32-47 of R0 must be zero. */ if (env->regs[0] & 0xffff0000u) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 str =3D get_address(env, r2); @@ -846,7 +846,7 @@ uint32_t HELPER(mvpg)(CPUS390XState *env, uint64_t r0, = uint64_t r1, uint64_t r2) S390Access srca, desta; =20 if ((f && s) || extract64(r0, 12, 4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 r1 =3D wrap_address(env, r1 & TARGET_PAGE_MASK); @@ -879,7 +879,7 @@ uint32_t HELPER(mvst)(CPUS390XState *env, uint32_t r1, = uint32_t r2) int i; =20 if (env->regs[0] & 0xffffff00ull) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 /* @@ -911,8 +911,7 @@ void HELPER(lam)(CPUS390XState *env, uint32_t r1, uint6= 4_t a2, uint32_t r3) int i; =20 if (a2 & 0x3) { - /* we either came here by lam or lamy, which have different length= s */ - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -932,7 +931,7 @@ void HELPER(stam)(CPUS390XState *env, uint32_t r1, uint= 64_t a2, uint32_t r3) int i; =20 if (a2 & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1888,7 +1887,7 @@ static uint32_t do_csst(CPUS390XState *env, uint32_t = r3, uint64_t a1, return cc; =20 spec_exception: - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); g_assert_not_reached(); } =20 @@ -1912,7 +1911,7 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (src & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1945,7 +1944,7 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, ui= nt64_t a2, uint32_t r3) uint32_t i; =20 if (src & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1976,7 +1975,7 @@ void HELPER(stctg)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (dest & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, 6, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1996,7 +1995,7 @@ void HELPER(stctl)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (dest & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -2168,7 +2167,7 @@ uint32_t HELPER(mvcs)(CPUS390XState *env, uint64_t l,= uint64_t a1, uint64_t a2) =20 if (!(env->psw.mask & PSW_MASK_DAT) || !(env->cregs[0] & CR0_SECONDARY= ) || psw_as =3D=3D AS_HOME || psw_as =3D=3D AS_ACCREG) { - s390_program_interrupt(env, PGM_SPECIAL_OP, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } =20 l =3D wrap_length32(env, l); @@ -2199,7 +2198,7 @@ uint32_t HELPER(mvcp)(CPUS390XState *env, uint64_t l,= uint64_t a1, uint64_t a2) =20 if (!(env->psw.mask & PSW_MASK_DAT) || !(env->cregs[0] & CR0_SECONDARY= ) || psw_as =3D=3D AS_HOME || psw_as =3D=3D AS_ACCREG) { - s390_program_interrupt(env, PGM_SPECIAL_OP, ILEN_AUTO, ra); + s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } =20 l =3D wrap_length32(env, l); @@ -2226,7 +2225,7 @@ void HELPER(idte)(CPUS390XState *env, uint64_t r1, ui= nt64_t r2, uint32_t m4) uint16_t entries, i, index =3D 0; =20 if (r2 & 0xff000) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 if (!(r2 & 0x800)) { @@ -2370,7 +2369,7 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t add= r) =20 /* XXX incomplete - has more corner cases */ if (!(env->psw.mask & PSW_MASK_64) && (addr >> 32)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, 2, GETPC()); + s390_program_interrupt(env, PGM_SPECIAL_OP, GETPC()); } =20 old_exc =3D cs->exception_index; @@ -2539,7 +2538,7 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t d= est, uint64_t src, __func__, dest, src, len); =20 if (!(env->psw.mask & PSW_MASK_DAT)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, 6, ra); + s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } =20 /* OAC (operand access control) for the first operand -> dest */ @@ -2570,14 +2569,14 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t= dest, uint64_t src, } =20 if (dest_a && dest_as =3D=3D AS_HOME && (env->psw.mask & PSW_MASK_PSTA= TE)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, 6, ra); + s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } if (!(env->cregs[0] & CR0_SECONDARY) && (dest_as =3D=3D AS_SECONDARY || src_as =3D=3D AS_SECONDARY)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, 6, ra); + s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } if (!psw_key_valid(env, dest_key) || !psw_key_valid(env, src_key)) { - s390_program_interrupt(env, PGM_PRIVILEGED, 6, ra); + s390_program_interrupt(env, PGM_PRIVILEGED, ra); } =20 len =3D wrap_length32(env, len); @@ -2591,7 +2590,7 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t d= est, uint64_t src, (env->psw.mask & PSW_MASK_PSTATE)) { qemu_log_mask(LOG_UNIMP, "%s: AR-mode and PSTATE support missing\n= ", __func__); - s390_program_interrupt(env, PGM_ADDRESSING, 6, ra); + s390_program_interrupt(env, PGM_ADDRESSING, ra); } =20 /* FIXME: Access using correct keys and AR-mode */ diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 7530dcb8f3..9fbb37cfb9 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -106,7 +106,7 @@ uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1,= uint64_t r2) int r =3D sclp_service_call(env, r1, r2); qemu_mutex_unlock_iothread(); if (r < 0) { - s390_program_interrupt(env, -r, 4, GETPC()); + s390_program_interrupt(env, -r, GETPC()); } return r; } @@ -143,7 +143,7 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint= 32_t r3, uint32_t num) } =20 if (r) { - s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } } =20 @@ -222,7 +222,7 @@ void HELPER(sckpf)(CPUS390XState *env, uint64_t r0) uint32_t val =3D r0; =20 if (val & 0xffff0000) { - s390_program_interrupt(env, PGM_SPECIFICATION, 2, GETPC()); + s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } env->todpr =3D val; } @@ -266,7 +266,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, = uint64_t r0, uint64_t r1) } =20 if ((r0 & STSI_R0_RESERVED_MASK) || (r1 & STSI_R1_RESERVED_MASK)) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 if ((r0 & STSI_R0_FC_MASK) =3D=3D STSI_R0_FC_CURRENT) { @@ -276,7 +276,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, = uint64_t r0, uint64_t r1) } =20 if (a0 & ~TARGET_PAGE_MASK) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 /* count the cpus and split them into configured and reserved ones */ @@ -509,7 +509,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) LowCore *lowcore; =20 if (addr & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 qemu_mutex_lock_iothread(); @@ -573,17 +573,8 @@ void HELPER(chsc)(CPUS390XState *env, uint64_t inst) #ifndef CONFIG_USER_ONLY void HELPER(per_check_exception)(CPUS390XState *env) { - uint32_t ilen; - if (env->per_perc_atmid) { - /* - * FIXME: ILEN_AUTO is most probably the right thing to use. ilen - * always has to match the instruction referenced in the PSW. E.g. - * if a PER interrupt is triggered via EXECUTE, we have to use ilen - * of EXECUTE, while per_address contains the target of EXECUTE. - */ - ilen =3D get_ilen(cpu_ldub_code(env, env->per_address)); - s390_program_interrupt(env, PGM_PER, ilen, GETPC()); + s390_program_interrupt(env, PGM_PER, GETPC()); } } =20 @@ -673,7 +664,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t add= r) int i; =20 if (addr & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, 4, ra); + s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 prepare_stfl(); @@ -746,7 +737,7 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint6= 4_t r3) qemu_mutex_unlock_iothread(); /* css_do_sic() may actually return a PGM_xxx value to inject */ if (r) { - s390_program_interrupt(env, -r, 4, GETPC()); + s390_program_interrupt(env, -r, GETPC()); } } =20 --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950742; cv=none; d=zoho.com; s=zohoarc; b=lXjFdUFuhJc5kZBz206zQ1ZTB83Oh+qWElpP+XAARvb34jlaMQdi902rSDgtYh24qO0b2fM+TgGUTQolXoekad7hVdRYhtVqpcnis+WvVudH+sUNNbufSh4UFfZXXKuij+SJNWc7GP3uv5ZC1ss8HbdPO4HAo1SXR3+qLqNCsFw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950742; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=q9Mr42wDaAqxtgZGR7xHO1prxR6bIhQ0Pkgg+dKZZYM=; b=ENxnAF2aPshqbxa1LOK5CHEb4g43+Lp2RPSMkHNPvSW5IrNskh2Ap8idDXxbqK+G8nX3DMn2uSvO2d6mi9UbeNI3w2+wLEySVQIee7FO3AM09uCMyE95gA88KcVWX168t3XOy61/pOXlfra1U53L/R0Se9gxd4FmVSk0ljn8kjU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950742246702.7927054916091; Tue, 1 Oct 2019 10:25:42 -0700 (PDT) Received: from localhost ([::1]:45718 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLu9-0001oD-4O for importer@patchew.org; Tue, 01 Oct 2019 13:25:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32780) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlB-0001X3-Ph for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLl9-0005U8-IS for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:25 -0400 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:37903) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLl9-0005Tj-AK for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:23 -0400 Received: by mail-pf1-x441.google.com with SMTP id h195so8475533pfe.5 for ; Tue, 01 Oct 2019 10:16:23 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=q9Mr42wDaAqxtgZGR7xHO1prxR6bIhQ0Pkgg+dKZZYM=; b=DerFKQHz38QbJXd5Ws9PdxLzMTQiKfoBqVBq/tgPGWrwZjh1ljW3gC/qBnjGv13xIl /6lzMGETTTRnWv35LcTbsOe2pNDj3rrUOyOl2ADp7dl5pdNAZF9lgIw+INXyLQgzUBjZ 7e3aS6qEiil4k5kLjIpeqY5MaagNG5mKjDF6t3WWOmfDuqSZ7itLIKj0yasht4aL9hFw /1uKoBbaLOr5unsalJ3bjN11BCe4BAukArX1wZ7zAC6yElL6ygp9ZOotuv1nF8Jk4gkI ZNEatyxKDl90APt8LngkJozi6n0ZWefRw8ALGR2lHYDj8itsqnFe8f5IZXEQTXd5NAMS ENMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=q9Mr42wDaAqxtgZGR7xHO1prxR6bIhQ0Pkgg+dKZZYM=; b=UC0rVBOR4Odwv68nQISyNdyqD4nFpSgI3WO4/+G/XUX9jh9iH4/cY5+oiY00hRIoSV U137vym4MWLX1hrbx6XkmPq7r3f2cpRPnXNTxT7ViS3AS4AzI/WZUwZN60UV294xFTL9 cSlCGZeRjsqIjeq6N8kVSAR5+eePHS+0y8eooI0DOJBkWTtlAdM6ZfUjHNoLkUFvq6f0 shNZePb9Ba2WZXvyNgwuxUq87rjYGFu2IPCwrHi1YCzQi5Lger0FKtbmeTBoZAWccKY2 Vsn9sZyViSJdYxueUmBfcMO/CousJo1GN+12Cl1CcEAYsS29OgcqT2fIXTzhMP417Og1 S5yg== X-Gm-Message-State: APjAAAUNEMovm7V/pXNyDSKwKIp3UN6GlDi81PQo41ArHHo7gKqooYEa 9Q6R9aSlN/4MeM67pf6+x8rjPKb7BeI= X-Google-Smtp-Source: APXvYqwSxYzKDI7jq0qLuiKcNzKaD9Xn9YeKRye/NKurLQtEZPZMDuVXiMUw1fSuLC5VFTaQSzvhRA== X-Received: by 2002:a63:d1a:: with SMTP id c26mr31735005pgl.286.1569950181637; Tue, 01 Oct 2019 10:16:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 04/18] target/s390x: Use tcg_s390_program_interrupt in TCG helpers Date: Tue, 1 Oct 2019 10:16:00 -0700 Message-Id: <20191001171614.8405-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::441 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Replace all uses of s390_program_interrupt within files that are marked CONFIG_TCG. These are necessarily tcg-only. This lets each of these users benefit from the QEMU_NORETURN attribute on tcg_s390_program_interrupt. Acked-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/cc_helper.c | 4 ++-- target/s390x/crypto_helper.c | 7 +++---- target/s390x/excp_helper.c | 2 +- target/s390x/fpu_helper.c | 6 +++--- target/s390x/int_helper.c | 15 +++++++------- target/s390x/mem_helper.c | 40 ++++++++++++++++++------------------ target/s390x/misc_helper.c | 18 ++++++++-------- 7 files changed, 46 insertions(+), 46 deletions(-) diff --git a/target/s390x/cc_helper.c b/target/s390x/cc_helper.c index 3cb00bcb09..44731e4a85 100644 --- a/target/s390x/cc_helper.c +++ b/target/s390x/cc_helper.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "internal.h" +#include "tcg_s390x.h" #include "exec/exec-all.h" #include "exec/helper-proto.h" #include "qemu/host-utils.h" @@ -588,8 +589,7 @@ void HELPER(sacf)(CPUS390XState *env, uint64_t a1) break; default: HELPER_LOG("unknown sacf mode: %" PRIx64 "\n", a1); - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); - break; + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } } #endif diff --git a/target/s390x/crypto_helper.c b/target/s390x/crypto_helper.c index 1f83987e9d..ff3fbc3950 100644 --- a/target/s390x/crypto_helper.c +++ b/target/s390x/crypto_helper.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include "qemu/main-loop.h" #include "internal.h" +#include "tcg_s390x.h" #include "exec/helper-proto.h" #include "exec/exec-all.h" #include "exec/cpu_ldst.h" @@ -34,16 +35,14 @@ uint32_t HELPER(msa)(CPUS390XState *env, uint32_t r1, u= int32_t r2, uint32_t r3, case S390_FEAT_TYPE_PCKMO: case S390_FEAT_TYPE_PCC: if (mod) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); - return 0; + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } break; } =20 s390_get_feat_block(type, subfunc); if (!test_be_bit(fc, subfunc)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); - return 0; + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 switch (fc) { diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 089623a248..dbff772d34 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -614,7 +614,7 @@ void s390x_cpu_do_unaligned_access(CPUState *cs, vaddr = addr, S390CPU *cpu =3D S390_CPU(cs); CPUS390XState *env =3D &cpu->env; =20 - s390_program_interrupt(env, PGM_SPECIFICATION, retaddr); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, retaddr); } =20 #endif /* CONFIG_USER_ONLY */ diff --git a/target/s390x/fpu_helper.c b/target/s390x/fpu_helper.c index 7228eb96e2..8bb9f54fd0 100644 --- a/target/s390x/fpu_helper.c +++ b/target/s390x/fpu_helper.c @@ -825,7 +825,7 @@ void HELPER(sfpc)(CPUS390XState *env, uint64_t fpc) { if (fpc_to_rnd[fpc & 0x7] =3D=3D -1 || fpc & 0x03030088u || (!s390_has_feat(S390_FEAT_FLOATING_POINT_EXT) && fpc & 0x4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 /* Install everything in the main FPC. */ @@ -843,7 +843,7 @@ void HELPER(sfas)(CPUS390XState *env, uint64_t fpc) =20 if (fpc_to_rnd[fpc & 0x7] =3D=3D -1 || fpc & 0x03030088u || (!s390_has_feat(S390_FEAT_FLOATING_POINT_EXT) && fpc & 0x4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 /* @@ -880,7 +880,7 @@ void HELPER(sfas)(CPUS390XState *env, uint64_t fpc) void HELPER(srnm)(CPUS390XState *env, uint64_t rnd) { if (rnd > 0x7 || fpc_to_rnd[rnd & 0x7] =3D=3D -1) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 env->fpc =3D deposit32(env->fpc, 0, 3, rnd); diff --git a/target/s390x/int_helper.c b/target/s390x/int_helper.c index 1d29a1fc1f..658507dd6d 100644 --- a/target/s390x/int_helper.c +++ b/target/s390x/int_helper.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "internal.h" +#include "tcg_s390x.h" #include "exec/exec-all.h" #include "qemu/host-utils.h" #include "exec/helper-proto.h" @@ -39,7 +40,7 @@ int64_t HELPER(divs32)(CPUS390XState *env, int64_t a, int= 64_t b64) int64_t q; =20 if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 ret =3D q =3D a / b; @@ -47,7 +48,7 @@ int64_t HELPER(divs32)(CPUS390XState *env, int64_t a, int= 64_t b64) =20 /* Catch non-representable quotient. */ if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 return ret; @@ -60,7 +61,7 @@ uint64_t HELPER(divu32)(CPUS390XState *env, uint64_t a, u= int64_t b64) uint64_t q; =20 if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 ret =3D q =3D a / b; @@ -68,7 +69,7 @@ uint64_t HELPER(divu32)(CPUS390XState *env, uint64_t a, u= int64_t b64) =20 /* Catch non-representable quotient. */ if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } =20 return ret; @@ -79,7 +80,7 @@ int64_t HELPER(divs64)(CPUS390XState *env, int64_t a, int= 64_t b) { /* Catch divide by zero, and non-representable quotient (MIN / -1). */ if (b =3D=3D 0 || (b =3D=3D -1 && a =3D=3D (1ll << 63))) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } env->retxl =3D a % b; return a / b; @@ -92,7 +93,7 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, = uint64_t al, uint64_t ret; /* Signal divide by zero. */ if (b =3D=3D 0) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } if (ah =3D=3D 0) { /* 64 -> 64/64 case */ @@ -106,7 +107,7 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah= , uint64_t al, env->retxl =3D a % b; ret =3D q; if (ret !=3D q) { - s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); + tcg_s390_program_interrupt(env, PGM_FIXPT_DIVIDE, GETPC()); } #else /* 32-bit hosts would need special wrapper functionality - just ab= ort if diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 77d2eb96d4..7d2a652823 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "internal.h" +#include "tcg_s390x.h" #include "exec/helper-proto.h" #include "exec/exec-all.h" #include "exec/cpu_ldst.h" @@ -71,7 +72,7 @@ static inline void check_alignment(CPUS390XState *env, ui= nt64_t v, int wordsize, uintptr_t ra) { if (v % wordsize) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } } =20 @@ -730,7 +731,7 @@ void HELPER(srst)(CPUS390XState *env, uint32_t r1, uint= 32_t r2) =20 /* Bits 32-55 must contain all 0. */ if (env->regs[0] & 0xffffff00u) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 str =3D get_address(env, r2); @@ -767,7 +768,7 @@ void HELPER(srstu)(CPUS390XState *env, uint32_t r1, uin= t32_t r2) =20 /* Bits 32-47 of R0 must be zero. */ if (env->regs[0] & 0xffff0000u) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 str =3D get_address(env, r2); @@ -846,7 +847,7 @@ uint32_t HELPER(mvpg)(CPUS390XState *env, uint64_t r0, = uint64_t r1, uint64_t r2) S390Access srca, desta; =20 if ((f && s) || extract64(r0, 12, 4)) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } =20 r1 =3D wrap_address(env, r1 & TARGET_PAGE_MASK); @@ -879,7 +880,7 @@ uint32_t HELPER(mvst)(CPUS390XState *env, uint32_t r1, = uint32_t r2) int i; =20 if (env->regs[0] & 0xffffff00ull) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 /* @@ -911,7 +912,7 @@ void HELPER(lam)(CPUS390XState *env, uint32_t r1, uint6= 4_t a2, uint32_t r3) int i; =20 if (a2 & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -931,7 +932,7 @@ void HELPER(stam)(CPUS390XState *env, uint32_t r1, uint= 64_t a2, uint32_t r3) int i; =20 if (a2 & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1887,8 +1888,7 @@ static uint32_t do_csst(CPUS390XState *env, uint32_t = r3, uint64_t a1, return cc; =20 spec_exception: - s390_program_interrupt(env, PGM_SPECIFICATION, ra); - g_assert_not_reached(); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 uint32_t HELPER(csst)(CPUS390XState *env, uint32_t r3, uint64_t a1, uint64= _t a2) @@ -1911,7 +1911,7 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (src & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1944,7 +1944,7 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, ui= nt64_t a2, uint32_t r3) uint32_t i; =20 if (src & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1975,7 +1975,7 @@ void HELPER(stctg)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (dest & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -1995,7 +1995,7 @@ void HELPER(stctl)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) uint32_t i; =20 if (dest & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 for (i =3D r1;; i =3D (i + 1) % 16) { @@ -2225,7 +2225,7 @@ void HELPER(idte)(CPUS390XState *env, uint64_t r1, ui= nt64_t r2, uint32_t m4) uint16_t entries, i, index =3D 0; =20 if (r2 & 0xff000) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 if (!(r2 & 0x800)) { @@ -2369,7 +2369,7 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t add= r) =20 /* XXX incomplete - has more corner cases */ if (!(env->psw.mask & PSW_MASK_64) && (addr >> 32)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIAL_OP, GETPC()); } =20 old_exc =3D cs->exception_index; @@ -2538,7 +2538,7 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t d= est, uint64_t src, __func__, dest, src, len); =20 if (!(env->psw.mask & PSW_MASK_DAT)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, ra); + tcg_s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } =20 /* OAC (operand access control) for the first operand -> dest */ @@ -2569,14 +2569,14 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t= dest, uint64_t src, } =20 if (dest_a && dest_as =3D=3D AS_HOME && (env->psw.mask & PSW_MASK_PSTA= TE)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, ra); + tcg_s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } if (!(env->cregs[0] & CR0_SECONDARY) && (dest_as =3D=3D AS_SECONDARY || src_as =3D=3D AS_SECONDARY)) { - s390_program_interrupt(env, PGM_SPECIAL_OP, ra); + tcg_s390_program_interrupt(env, PGM_SPECIAL_OP, ra); } if (!psw_key_valid(env, dest_key) || !psw_key_valid(env, src_key)) { - s390_program_interrupt(env, PGM_PRIVILEGED, ra); + tcg_s390_program_interrupt(env, PGM_PRIVILEGED, ra); } =20 len =3D wrap_length32(env, len); @@ -2590,7 +2590,7 @@ uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t d= est, uint64_t src, (env->psw.mask & PSW_MASK_PSTATE)) { qemu_log_mask(LOG_UNIMP, "%s: AR-mode and PSTATE support missing\n= ", __func__); - s390_program_interrupt(env, PGM_ADDRESSING, ra); + tcg_s390_program_interrupt(env, PGM_ADDRESSING, ra); } =20 /* FIXME: Access using correct keys and AR-mode */ diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 9fbb37cfb9..bfb457fb63 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -106,7 +106,7 @@ uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1,= uint64_t r2) int r =3D sclp_service_call(env, r1, r2); qemu_mutex_unlock_iothread(); if (r < 0) { - s390_program_interrupt(env, -r, GETPC()); + tcg_s390_program_interrupt(env, -r, GETPC()); } return r; } @@ -143,7 +143,7 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint= 32_t r3, uint32_t num) } =20 if (r) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } } =20 @@ -222,7 +222,7 @@ void HELPER(sckpf)(CPUS390XState *env, uint64_t r0) uint32_t val =3D r0; =20 if (val & 0xffff0000) { - s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, GETPC()); } env->todpr =3D val; } @@ -266,7 +266,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, = uint64_t r0, uint64_t r1) } =20 if ((r0 & STSI_R0_RESERVED_MASK) || (r1 & STSI_R1_RESERVED_MASK)) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 if ((r0 & STSI_R0_FC_MASK) =3D=3D STSI_R0_FC_CURRENT) { @@ -276,7 +276,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, = uint64_t r0, uint64_t r1) } =20 if (a0 & ~TARGET_PAGE_MASK) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 /* count the cpus and split them into configured and reserved ones */ @@ -509,7 +509,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr) LowCore *lowcore; =20 if (addr & 0x3) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 qemu_mutex_lock_iothread(); @@ -574,7 +574,7 @@ void HELPER(chsc)(CPUS390XState *env, uint64_t inst) void HELPER(per_check_exception)(CPUS390XState *env) { if (env->per_perc_atmid) { - s390_program_interrupt(env, PGM_PER, GETPC()); + tcg_s390_program_interrupt(env, PGM_PER, GETPC()); } } =20 @@ -664,7 +664,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t add= r) int i; =20 if (addr & 0x7) { - s390_program_interrupt(env, PGM_SPECIFICATION, ra); + tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra); } =20 prepare_stfl(); @@ -737,7 +737,7 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint6= 4_t r3) qemu_mutex_unlock_iothread(); /* css_do_sic() may actually return a PGM_xxx value to inject */ if (r) { - s390_program_interrupt(env, -r, GETPC()); + tcg_s390_program_interrupt(env, -r, GETPC()); } } =20 --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950649; cv=none; d=zoho.com; s=zohoarc; b=VER6rDFhQNzq+XzJ0KS5wtAc17BMgP56pW2iaEC4NVuSTYggv8/oDCL65YPeJbAs6bjlAtxzx2BAJ3tMrz3+U907TF7i+tf54BKGxKkGGx8RfesISIIZ6uOKJ76FSJuZa/h/vmNWP1UlFyKzp+IH54Gl21VycQUBK1y6ThgBSYU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950649; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=/oqnU8JxcWk92yTF6oHqZ+/jW9Yk0vbg0OCD6IUFg00=; b=ZB3F/WFyODaAsBfyO2Rz/SEqk+vzli8FbaNT6xe5u8FgmMLuIb+pMnmzdF+ZOuhJ3aEco5O49gf9wi034tgZyUao0ObmvJ8Cv9V3tDsyfV6lf38CL30x3aWiazao2YDq69r7EqoDeXBDXHaIbOVHEJ300OTHIk0/WnAYdN5ZSRs= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950649552818.3208580455838; Tue, 1 Oct 2019 10:24:09 -0700 (PDT) Received: from localhost ([::1]:45692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLsU-0008IV-Ri for importer@patchew.org; Tue, 01 Oct 2019 13:23:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32783) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlB-0001XA-UY for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlA-0005Ud-MD for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:25 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:39702) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlA-0005UO-H0 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:24 -0400 Received: by mail-pl1-x641.google.com with SMTP id s17so5790322plp.6 for ; Tue, 01 Oct 2019 10:16:24 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/oqnU8JxcWk92yTF6oHqZ+/jW9Yk0vbg0OCD6IUFg00=; b=ed98YKuAwq+zjiopuUUw17Se9XNlLEjoap99rd8tgJDhFMPTrbIWAJ/oSiWrmBZPxS 6XKE9X8X/p4vmZJWJ4msWJK1ol4FEOlK6lbZ5le2Hw+FW3WWesLePW7I4TAR926CDeov LizPVKc/jF12odwp65LWgsCsoHRGyvGzK2gqMnY2pM0OJjzG199gd6h8c6aTd6vAB8T9 hYfjSnssXLnnBGrq2UWw76By0+VFlj6saGGw1vaV/M3IJuB2oMSdpywd8Geezk3P7mTR 3VPRVB+q2X9dde+/2MGH8pl+t3k0Gc7N90kGDWowjm5CyGV6bWCuOZUKHQELULgJsGWl a9pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/oqnU8JxcWk92yTF6oHqZ+/jW9Yk0vbg0OCD6IUFg00=; b=OSdALtcRqOTafbzZFH23TLQZcPX+ESk5I1Hxttg2dA1kAQEq5ju8r4aRf6ryS+l87E x7OaoCORGefG3cg4ND6RF9xFIBrSzDdPoJ8SkJiSIaY4KI9J2e45L0WT/7ATFh/21RRs lzjJdpv8ZkJjt2fxpv6OBqNOSFQuB6kfF+PS31qfFDbIM39IkzNXQEjG73NWeSsMAKGB ZyReilcasqcEd+rfMNhkcZWc7XEsePip/YIyGTpmqYHCQEwtwa/7X3i/9GA0nVRtw/2/ KDR/pCnbYwEOBbx+IhktuY1uMu+0l++vC+Q/4jIEh84+34lIlnSAyN3Q7rAaUox0Mgic IYNw== X-Gm-Message-State: APjAAAXAKDCxv6AChVhmtQEotqRFn1i3v3JMEzLGZJELt1qhm6vbMf5o 2/bxA+sw9PiuhKo6js1Sas+pnMIpBuQ= X-Google-Smtp-Source: APXvYqxf7P11wWPoHFxYdNec1uuHzVs4nlAS3rCvvZw6Y1UkoM3Vs16B+t3nj4e0C2S9/OnIVpiAhw== X-Received: by 2002:a17:902:7202:: with SMTP id ba2mr24281569plb.267.1569950183057; Tue, 01 Oct 2019 10:16:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 05/18] target/s390x: Push trigger_pgm_exception lower in s390_cpu_tlb_fill Date: Tue, 1 Oct 2019 10:16:01 -0700 Message-Id: <20191001171614.8405-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Delay triggering an exception until the end, after we have determined ultimate success or failure, and also taken into account whether this is a non-faulting probe. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/excp_helper.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index dbff772d34..552098be5f 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -127,7 +127,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, CPUS390XState *env =3D &cpu->env; target_ulong vaddr, raddr; uint64_t asc; - int prot, fail; + int prot, fail, excp; =20 qemu_log_mask(CPU_LOG_MMU, "%s: addr 0x%" VADDR_PRIx " rw %d mmu_idx %= d\n", __func__, address, access_type, mmu_idx); @@ -141,12 +141,14 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, i= nt size, vaddr &=3D 0x7fffffff; } fail =3D mmu_translate(env, vaddr, access_type, asc, &raddr, &prot= , true); + excp =3D 0; /* exception already raised */ } else if (mmu_idx =3D=3D MMU_REAL_IDX) { /* 31-Bit mode */ if (!(env->psw.mask & PSW_MASK_64)) { vaddr &=3D 0x7fffffff; } fail =3D mmu_translate_real(env, vaddr, access_type, &raddr, &prot= ); + excp =3D 0; /* exception already raised */ } else { g_assert_not_reached(); } @@ -159,7 +161,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, qemu_log_mask(CPU_LOG_MMU, "%s: raddr %" PRIx64 " > ram_size %" PRIx64 "\n", __func__, (uint64_t)raddr, (uint64_t)ram_size); - trigger_pgm_exception(env, PGM_ADDRESSING, ILEN_AUTO); + excp =3D PGM_ADDRESSING; fail =3D 1; } =20 @@ -175,6 +177,9 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, return false; } =20 + if (excp) { + trigger_pgm_exception(env, excp, ILEN_AUTO); + } cpu_restore_state(cs, retaddr, true); =20 /* --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950652; cv=none; d=zoho.com; s=zohoarc; b=GWZ9bljQ1cP+xwvAJGIPAAAskrifC3BTJg4akvDlyx9XErc+TpOSeTVgoFBJ6ObY42J1P8anpasg8KQeTJBeeQ5FXhOcYvquqbWOxoDCnP+UrM4mbEXJM40Ly9BmDNaHWimzuKePJwpH8/Ne//RCFuiWpr1TD+/1A530cZ52LOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950652; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=H3DBi0mNjNbESSisGeli3T+KiEWE4J/mD2CVZfFgXJw=; b=HqVn5hmzfJ/k2p3SRkarTs25fMGzUafJRwtBzpz+rTEE8JQm2dcZCkHkLjhKDpDbWVzoeJWKz6ZhAvkuYrOhzzuB7sQh8Y3S6+lqCwbjfW6HaoXEau47jBl99sOLJR+8BAJtsCuw8NjoQCZJNjOrQbD7SPEv8LHjKT7oSoqO7BE= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950652117660.6595141888915; Tue, 1 Oct 2019 10:24:12 -0700 (PDT) Received: from localhost ([::1]:45696 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLsY-0008ON-GE for importer@patchew.org; Tue, 01 Oct 2019 13:24:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32798) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlC-0001Xo-NA for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlB-0005VH-PS for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:26 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]:41128) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlB-0005Uu-KF for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:25 -0400 Received: by mail-pl1-x642.google.com with SMTP id t10so5787081plr.8 for ; Tue, 01 Oct 2019 10:16:25 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=H3DBi0mNjNbESSisGeli3T+KiEWE4J/mD2CVZfFgXJw=; b=vo9TftZgn+6YC9bzDZvlRmhXUtXLeyTsstPkVVjuIFBK+vEHkzChXz5afcuPT9oCKz IkCScm8pR0g8bH+bC/5SBB3W6bGyzcgnYB44CZHmZDqHH8caqBTrUq24ZgjIyBUGWiUa v7xos6Hf6uCXvvkrBO//azefw3fVVlcDnjXVsaQAViRyt6vC5BzIuzD0RbuJ1WD+IXVl tEjqU9u7E8Encvs8JVMsgIU2Ab7RUU2aCLcPJFtpT6ZUeNXct76GJbl+IYV6sVXqO0Kz Mb7eHf6RJQ/OwDn5XNUd1zUtvRzSAojkMDTxrW2RzGBm9VMHyGpudhQZM4PMxbdV1yiq LOBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=H3DBi0mNjNbESSisGeli3T+KiEWE4J/mD2CVZfFgXJw=; b=hDLgACVzt5SrewYlz6BRxwZgMUIw48eFHYgVtfbX0KzLb3kYyLrZrPU8u9el3dWnjr Rrww+2ORxo7t2BTh93PhVLosd/6iAf5v1Q3zT2VYEmm0PpL8j+sVNGix6Z3JqHmsw3cP XGZAfgHA3aWde3j3kG7GVmT/47O/e7D9RyzXWwA9FS5tRGfZt6JFxJEslEt7pnWo04sk 0AJT20iGnR91MFn2OaPAVkUd8Fsl2MvLSIqJrNcxH42psrIMIFa3/ggJmkWvTaDNwpzD 9qj3rxQFEFbPp5hdRrK7UBuEo1DFokT/WVlqJQzP9sRXFFQYP/r69aICupq7UaLElvwW WXcA== X-Gm-Message-State: APjAAAVcYxW7KFX9tPLFCCO4pRqHjk3STYuv82kwdfHdpJBXr3K4Jzv5 5KUmVWvvdR5hAsWhuHsn12xT5dyW5dk= X-Google-Smtp-Source: APXvYqy2XOTW6oxzO8cUs4u1luNDhJ6DqNpexpddCMdwC4DPbE2RZq9CJl1dq+K0Z672gViSErYAPg== X-Received: by 2002:a17:902:467:: with SMTP id 94mr26441246ple.208.1569950184360; Tue, 01 Oct 2019 10:16:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 06/18] target/s390x: Handle tec in s390_cpu_tlb_fill Date: Tue, 1 Oct 2019 10:16:02 -0700 Message-Id: <20191001171614.8405-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::642 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" As a step toward moving all excption handling out of mmu_translate, copy handling of the LowCore tec value from trigger_access_exception into s390_cpu_tlb_fill. So far this new plumbing isn't used. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/excp_helper.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 552098be5f..ab2ed47fef 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -126,7 +126,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, S390CPU *cpu =3D S390_CPU(cs); CPUS390XState *env =3D &cpu->env; target_ulong vaddr, raddr; - uint64_t asc; + uint64_t asc, tec; int prot, fail, excp; =20 qemu_log_mask(CPU_LOG_MMU, "%s: addr 0x%" VADDR_PRIx " rw %d mmu_idx %= d\n", @@ -162,6 +162,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, "%s: raddr %" PRIx64 " > ram_size %" PRIx64 "\n", __func__, (uint64_t)raddr, (uint64_t)ram_size); excp =3D PGM_ADDRESSING; + tec =3D 0; /* unused */ fail =3D 1; } =20 @@ -178,6 +179,10 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, } =20 if (excp) { + if (excp !=3D PGM_ADDRESSING) { + stq_phys(env_cpu(env)->as, + env->psa + offsetof(LowCore, trans_exc_code), tec); + } trigger_pgm_exception(env, excp, ILEN_AUTO); } cpu_restore_state(cs, retaddr, true); --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950843; cv=none; d=zoho.com; s=zohoarc; b=W5pEJkm6Gefb0qbQlC4I4lOIlUOpM77K99Ix6phwirHB/iTONGkANAQXBC81pv/4ucQD9qLeGdxbht2KIFdit8HchF/Z52H+/VtCAkGnVYtHr+Pywd0xIKftsy7KDiFgDIi5Kxv6E9orfaNPSwyOyTqfpGc15TsW88LXYsQp9hg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950843; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=bw1EswX2q2VGPW65WyDJY/ECQ0OS5tcrpjiTXgyT1jE=; b=UCuPfkvU9ChLtkrxtPtTAGJD3NcN6IXhOUWtOZ0tMJ8DI73AXJv+/uc8FB/1g9zpg2jraEcAlfs4kO9rUJzZc1reSrn1QvExmU7KuhpDjQ4tJlgzhiSUBvFozbYrIRfbs6TVUdgdcqpsLf1eL/IklIn7H8uuuAVn0sHGRixPQOw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950843803288.8711139556117; Tue, 1 Oct 2019 10:27:23 -0700 (PDT) Received: from localhost ([::1]:45746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLvm-0003jf-Ny for importer@patchew.org; Tue, 01 Oct 2019 13:27:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32832) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlF-0001ZN-0H for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlD-0005WL-R1 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:28 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:37412) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlD-0005Vm-J1 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:27 -0400 Received: by mail-pf1-x442.google.com with SMTP id y5so8478467pfo.4 for ; Tue, 01 Oct 2019 10:16:27 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bw1EswX2q2VGPW65WyDJY/ECQ0OS5tcrpjiTXgyT1jE=; b=L9aSuzgqgi9Rij6MUGGu7Wo98EJkVze7m2y0DrsatJw3xN1N468ZhLZtNOS6uIBm5g NkRSgYvM8rrPNgUsmYstch5aGQ2ME483EdqDqgkJtP0e1uYE/9HLU5DrrdX3vwEuzbd7 ywo4hpbkMPlMSAfseHRyGa2zMRycr3j2cA+mgoC4YjUeUxBzv+uhlOpt4dcyDAejuCsH Efj5dvSuiDXFTNH39PV4FPBFg0xEKUut+Tpr/McebRlRBC6V9XyE7tDBnd1YczraLYk0 6Pt4uYLsUeTsTDZ/JpFvolh7TZZpEW7sDMV09nPRw/Fv1WeMvymtHeVxR5VmGnaiffrd aYog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bw1EswX2q2VGPW65WyDJY/ECQ0OS5tcrpjiTXgyT1jE=; b=U8MzEOwh+aToFIOrgOmU+fOF0hqYtjilFye/9GghQKucFnb2HPwcJcYAg5VrOIfKgw WMR4dfRs5GxeE0ryq0MSGvZ0bWEKh+eszrEX0x89vq2M2IditqNUQ1+EPsXztFWbhM8F A66IV0cV+BFWFrHZIDTVqYYHGZnBg8eGHa1RanXkmHltePISZpNSgLaQWmmTaK5ReK49 /AQK9EC5Jksr/El4k0OOZNSgPfmJWhFq8GWcdDogxEAQ4Y7oQ7poVISTX4Ie0cYHpvUy N2E6onNBPRi2/s4O0fbTmE1XGxe8oE7SXiL0QjTNOCJ5MFskyNt0WuTP7M5bxtUD32ce W2Bg== X-Gm-Message-State: APjAAAWYUaFyi3vCtxeWIfDOhzlFoiNfO+hjpXUc0IuG+lq3jUJBDOvO P8VM3y9zBCgcp97+CUrCPbDZoRrCe+w= X-Google-Smtp-Source: APXvYqwKQ7GH8fFNbk0JjpgX01kouNCDNubrTc+K7CAtSkV1wsrZ0yKRLBeACVUJZbhpUTDOXaJUAQ== X-Received: by 2002:a17:90a:cb16:: with SMTP id z22mr6976210pjt.70.1569950185539; Tue, 01 Oct 2019 10:16:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 07/18] target/s390x: Return exception from mmu_translate_real Date: Tue, 1 Oct 2019 10:16:03 -0700 Message-Id: <20191001171614.8405-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::442 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Do not raise the exception directly within mmu_translate_real, but pass it back so that caller may do so. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/internal.h | 2 +- target/s390x/excp_helper.c | 4 ++-- target/s390x/mmu_helper.c | 14 ++++++-------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/target/s390x/internal.h b/target/s390x/internal.h index c243fa725b..c4388aaf23 100644 --- a/target/s390x/internal.h +++ b/target/s390x/internal.h @@ -362,7 +362,7 @@ void probe_write_access(CPUS390XState *env, uint64_t ad= dr, uint64_t len, int mmu_translate(CPUS390XState *env, target_ulong vaddr, int rw, uint64_t= asc, target_ulong *raddr, int *flags, bool exc); int mmu_translate_real(CPUS390XState *env, target_ulong raddr, int rw, - target_ulong *addr, int *flags); + target_ulong *addr, int *flags, uint64_t *tec); =20 =20 /* misc_helper.c */ diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index ab2ed47fef..906b87c071 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -147,8 +147,8 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, if (!(env->psw.mask & PSW_MASK_64)) { vaddr &=3D 0x7fffffff; } - fail =3D mmu_translate_real(env, vaddr, access_type, &raddr, &prot= ); - excp =3D 0; /* exception already raised */ + excp =3D mmu_translate_real(env, vaddr, access_type, &raddr, &prot= , &tec); + fail =3D excp; } else { g_assert_not_reached(); } diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 4a794dadcf..e8281d4413 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -554,14 +554,11 @@ void s390_cpu_virt_mem_handle_exc(S390CPU *cpu, uintp= tr_t ra) * @param rw 0 =3D read, 1 =3D write, 2 =3D code fetch * @param addr the translated address is stored to this pointer * @param flags the PAGE_READ/WRITE/EXEC flags are stored to this pointer - * @return 0 if the translation was successful, < 0 if a fault occur= red + * @return 0 =3D success, !=3D 0, the exception to raise */ int mmu_translate_real(CPUS390XState *env, target_ulong raddr, int rw, - target_ulong *addr, int *flags) + target_ulong *addr, int *flags, uint64_t *tec) { - /* Code accesses have an undefined ilc, let's use 2 bytes. */ - uint64_t tec =3D (raddr & TARGET_PAGE_MASK) | - (rw =3D=3D MMU_DATA_STORE ? FS_WRITE : FS_READ); const bool lowprot_enabled =3D env->cregs[0] & CR0_LOWPROT; =20 *flags =3D PAGE_READ | PAGE_WRITE | PAGE_EXEC; @@ -570,9 +567,10 @@ int mmu_translate_real(CPUS390XState *env, target_ulon= g raddr, int rw, *flags |=3D PAGE_WRITE_INV; if (is_low_address(raddr) && rw =3D=3D MMU_DATA_STORE) { /* LAP sets bit 56 */ - tec |=3D 0x80; - trigger_access_exception(env, PGM_PROTECTION, ILEN_AUTO, tec); - return -EACCES; + *tec =3D (raddr & TARGET_PAGE_MASK) + | (rw =3D=3D MMU_DATA_STORE ? FS_WRITE : FS_READ) + | 0x80; + return PGM_PROTECTION; } } =20 --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950765; cv=none; d=zoho.com; s=zohoarc; b=eC5QQuy93Tt4frK9cwwt5EiDP9X7MyzOnpfn1Pf8ZrMOoG3oJLOxoirCJ0howtJE+f06TQCgEDTQpSfCn7fPoR+3slYDIH7odL9zK2T2iJFKF0wOmEOpYCE4RA8ZusO0qwrmOy/8SL+XWrkog8s2yC5Owcy6CfBUtvjECq5j1nI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950765; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=sktqWg5A8zjUbfven4iBrOAszFjwQxlijBBfeL/atZo=; b=l1eKWq4uY2OOrOqnmsnvEFFRalDDWbH4lgxQrweHbPwwk/2VauMkhVphR2Kiw9SUTCnPAtK9jpiN3bobskCz1efPpQW5Xg8n93BlnY+nqwJhTXFARXMYSqtSRG/oIQ52A9sNnbTkpdZvDKZCd89IRej6MdrTBxRbn4NuOlzi2aM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950765020760.8187919203793; Tue, 1 Oct 2019 10:26:05 -0700 (PDT) Received: from localhost ([::1]:45722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLuU-0002Hq-Vd for importer@patchew.org; Tue, 01 Oct 2019 13:26:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32836) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlF-0001ZV-4q for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlE-0005WX-2B for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:29 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:37414) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlD-0005W8-TD for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:28 -0400 Received: by mail-pf1-x444.google.com with SMTP id y5so8478500pfo.4 for ; Tue, 01 Oct 2019 10:16:27 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sktqWg5A8zjUbfven4iBrOAszFjwQxlijBBfeL/atZo=; b=Npxz1//4lid0KwxCCmNDovvDWsv2rSMBCNlhQbg3zchGPzVsf/K+7RABN/NmOYBt49 NdRgXveZUNznRXU1p9a66p1jVcO2ouhBhpXkAdMbmfk0EmPaHH/RPaHaOu+yg06KSPxj ZgfCc0Y+BdVSexmM/52q0trA1CKLL4qTOdQJH8Jp6qsNRNCFTj6RB9YLDN1NZIJosioQ vu4k8f+FY4nM+IbAEEm3dVZWuCurVfeAT9u7HLo7uGknFjkzHFbwZ05g2GVTcMm47efD rduyHbE/NLdYXaX6zFmKGW4BcwDFT6ffnlx1y/BS7ObY/O8NoOSmKuZSBsxKwJtCzkhW Uw3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sktqWg5A8zjUbfven4iBrOAszFjwQxlijBBfeL/atZo=; b=CltCJtrwJnkEfFTairs+4uEteyAtEDjXB9A1Z+ewKmcSG8iiwof//hNaF7l/SOFIMf hpCvvpNCQgPM9doJ7Kklay0VY4FXJloB9x1FNw1fM/VgOoacDXGms3XB6ZRbxZpdFkqV YSfWLTNQS7gfV3E5A3rsvC5fZx7VSRiGrfVAXvpXDlcrdrBuuwD1tnauu9bWrJd/jPyJ DoQzAW9+rYfc5vAAh9jUdPg2n0jyW/Ts+yldMH3qLGy8+Denk/alJTDrdbnDDElKfQ5S ovNVM21H+qvPv/QTm185Yp5DxoSBxtdDyOGAmkv9a0YcSAEninuuK1cP+MgGzqJ7ySnL Aq3A== X-Gm-Message-State: APjAAAW+DLoW8ofsnDwrpfQcyar0SGA+70xWNziL7oDUjb/VrKhQNyxt bDiyijEUDicSTUFobsFh8tz0tsTNmx8= X-Google-Smtp-Source: APXvYqwoMvz5En7llVRZMtk9DJKJTrPW9/VGmzwep+DVcApjNUBMFVonuOucTIdxyTSrRITM5RcKXQ== X-Received: by 2002:a62:7a88:: with SMTP id v130mr29654194pfc.184.1569950186503; Tue, 01 Oct 2019 10:16:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 08/18] target/s390x: Remove exc argument to mmu_translate_asce Date: Tue, 1 Oct 2019 10:16:04 -0700 Message-Id: <20191001171614.8405-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::444 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Now that mmu_translate_asce returns the exception instead of raising it, the argument is unused. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/mmu_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index e8281d4413..e57d762f45 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -116,7 +116,7 @@ static inline bool read_table_entry(CPUS390XState *env,= hwaddr gaddr, =20 static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr, uint64_t asc, uint64_t asce, target_ulong *r= addr, - int *flags, int rw, bool exc) + int *flags, int rw) { const bool edat1 =3D (env->cregs[0] & CR0_EDAT) && s390_has_feat(S390_FEAT_EDAT); @@ -423,7 +423,7 @@ int mmu_translate(CPUS390XState *env, target_ulong vadd= r, int rw, uint64_t asc, } =20 /* perform the DAT translation */ - r =3D mmu_translate_asce(env, vaddr, asc, asce, raddr, flags, rw, exc); + r =3D mmu_translate_asce(env, vaddr, asc, asce, raddr, flags, rw); if (unlikely(r)) { if (exc) { trigger_access_exception(env, r, ilen, tec); --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950484; cv=none; d=zoho.com; s=zohoarc; b=WYsqFpYr830A+S4y5STR7yhY1f9TNqi5kB6oBjOLhSxRzbT6Fg7gE9spVFoNM/tLXYtpVpaRfOvcaFi7sZ7h05xqNCk1buJUTogl8t1nYI2xGLjWJzdIQS3TscKgDYEfcEWKgHIpRXPGMKani9q5ATnd5ywJJOPVQ/x1O/SXP8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950484; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=X3LTmFzczfRxgo2AFbnOMhu+tfZBTFunSRj9qIKUaA8=; b=XnPFmPiacqOOsMjQEFCj1G+4DRcg2z6/qSBslngpwgXi67L3fJlHVOVf83lryvqM3vH6+rMx2sb1Tq7430KbcojFKKSgeUwu+Zqj/yFlgqAoCjx8Z0m/QrwJYdPao32OegoJ94p6/Ph3w4loNt0bbYBfdZuMp2PaZRpo+OofqJw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950484497168.0103594268187; Tue, 1 Oct 2019 10:21:24 -0700 (PDT) Received: from localhost ([::1]:45660 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLpz-0005vG-0y for importer@patchew.org; Tue, 01 Oct 2019 13:21:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32860) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlH-0001bX-2m for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlF-0005Xa-GJ for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:30 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:39022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlF-0005Ww-8l for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:29 -0400 Received: by mail-pl1-x62f.google.com with SMTP id s17so5790433plp.6 for ; Tue, 01 Oct 2019 10:16:29 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=X3LTmFzczfRxgo2AFbnOMhu+tfZBTFunSRj9qIKUaA8=; b=y++m4a4LsN9HqKBbgoDaKR6bVsjnSYyEWUPNSHHDAZw/oIDeBtkTZM7gCDtIh9JOZP h32CQpDZg/ptsWgVBysFUyd+kp4yUshCXOY2YfKtze904sDficR/HwphFTXNQ142YLif ThkU7AvNzbJPxL+zEt1h9xbXk2IqV2cLT9muI84R8ZIncT1Og4BPeK9HYPgJ6ZgZWxPB CDsxsO3FQ0FmvyfTRrfrpzld2AjK7pOoyH3fWw6AnH/bS/HyEeh/BT1vGgNGxqSE/RLh zQr5VLdzOY6a27sxqD4IaG7T6olET4+JBkiazL7iCFHLlT2rUg0TGIh+yb49eX8OppCG sqtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=X3LTmFzczfRxgo2AFbnOMhu+tfZBTFunSRj9qIKUaA8=; b=J3v2stqs8XAODl2TPxg33BX+v4ISaLEVPyVwyVsBSC6lRLkYLjzaf2xoPIdwVWeW+W DuJ6VqhknoGbgd1e96ddcTgW93A1ipH4VQZCp2ZoqW7CvGMOPZT7gfRmUmNxZPIN8EHl nBhPLzaC6wVT2vb4pnwxcy2GN49mUxxHAKUxyuqI2+SeFVGFtOz6e8fgxqKMkWTOB7kQ njQP3LquqHDRHCHlLusrf4HjsbkOQk8AaqeJ6AsZk8xQK9JjZU6vg2wgV4HnHBoROEmN loEY/sr1UMd8dbcbHk9MZ+NpeEkbqygGCM/KzljY0pORP4dIY69EEB5DihlUsDbMbbYU iq4Q== X-Gm-Message-State: APjAAAVjQ5tAoph6qqv3Y8te67NNB2gYfl5r6Hp1lt3Fjcd4kHX7eEBn HBUMrhlQUanhBFImobMp+CPDZk9oLIY= X-Google-Smtp-Source: APXvYqzunpFWl7xFUlwSWUOB5pIfvrja/vmM8/escDfsvfJXALojpQ3DZ0uYq+dkZuO2Nlil7hX9Rw== X-Received: by 2002:a17:902:b48f:: with SMTP id y15mr19885433plr.168.1569950187598; Tue, 01 Oct 2019 10:16:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 09/18] target/s390x: Return exception from mmu_translate Date: Tue, 1 Oct 2019 10:16:05 -0700 Message-Id: <20191001171614.8405-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::62f X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Do not raise the exception directly within mmu_translate, but pass it back so that caller may do so. Signed-off-by: Richard Henderson --- target/s390x/internal.h | 2 +- target/s390x/excp_helper.c | 4 +-- target/s390x/helper.c | 3 ++- target/s390x/mem_helper.c | 13 +++++++--- target/s390x/mmu_helper.c | 51 +++++++++++++++----------------------- 5 files changed, 35 insertions(+), 38 deletions(-) diff --git a/target/s390x/internal.h b/target/s390x/internal.h index c4388aaf23..c993c3ef40 100644 --- a/target/s390x/internal.h +++ b/target/s390x/internal.h @@ -360,7 +360,7 @@ void probe_write_access(CPUS390XState *env, uint64_t ad= dr, uint64_t len, =20 /* mmu_helper.c */ int mmu_translate(CPUS390XState *env, target_ulong vaddr, int rw, uint64_t= asc, - target_ulong *raddr, int *flags, bool exc); + target_ulong *raddr, int *flags, uint64_t *tec); int mmu_translate_real(CPUS390XState *env, target_ulong raddr, int rw, target_ulong *addr, int *flags, uint64_t *tec); =20 diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 906b87c071..6a0728b65f 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -140,8 +140,8 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, if (!(env->psw.mask & PSW_MASK_64)) { vaddr &=3D 0x7fffffff; } - fail =3D mmu_translate(env, vaddr, access_type, asc, &raddr, &prot= , true); - excp =3D 0; /* exception already raised */ + excp =3D mmu_translate(env, vaddr, access_type, asc, &raddr, &prot= , &tec); + fail =3D excp; } else if (mmu_idx =3D=3D MMU_REAL_IDX) { /* 31-Bit mode */ if (!(env->psw.mask & PSW_MASK_64)) { diff --git a/target/s390x/helper.c b/target/s390x/helper.c index bf503b56ee..a3a49164e4 100644 --- a/target/s390x/helper.c +++ b/target/s390x/helper.c @@ -52,6 +52,7 @@ hwaddr s390_cpu_get_phys_page_debug(CPUState *cs, vaddr v= addr) target_ulong raddr; int prot; uint64_t asc =3D env->psw.mask & PSW_MASK_ASC; + uint64_t tec; =20 /* 31-Bit mode */ if (!(env->psw.mask & PSW_MASK_64)) { @@ -67,7 +68,7 @@ hwaddr s390_cpu_get_phys_page_debug(CPUState *cs, vaddr v= addr) * We want to read code even if IEP is active. Use MMU_DATA_LOAD inste= ad * of MMU_INST_FETCH. */ - if (mmu_translate(env, vaddr, MMU_DATA_LOAD, asc, &raddr, &prot, false= )) { + if (mmu_translate(env, vaddr, MMU_DATA_LOAD, asc, &raddr, &prot, &tec)= ) { return -1; } return raddr; diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 7d2a652823..e15aa296dd 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -2364,8 +2364,8 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t add= r) CPUState *cs =3D env_cpu(env); uint32_t cc =3D 0; uint64_t asc =3D env->psw.mask & PSW_MASK_ASC; - uint64_t ret; - int old_exc, flags; + uint64_t ret, tec; + int old_exc, flags, exc; =20 /* XXX incomplete - has more corner cases */ if (!(env->psw.mask & PSW_MASK_64) && (addr >> 32)) { @@ -2373,7 +2373,14 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t ad= dr) } =20 old_exc =3D cs->exception_index; - if (mmu_translate(env, addr, 0, asc, &ret, &flags, true)) { + exc =3D mmu_translate(env, addr, 0, asc, &ret, &flags, &tec); + if (exc) { + /* + * We don't care about ILEN or TEC, as we're not going to + * deliver the exception -- thus resetting exception_index below. + * TODO: clean this up. + */ + trigger_pgm_exception(env, exc, ILEN_UNWIND); cc =3D 3; } if (cs->exception_index =3D=3D EXCP_PGM) { diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index e57d762f45..001d0a9c8a 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -365,20 +365,18 @@ static void mmu_handle_skey(target_ulong addr, int rw= , int *flags) * @param raddr the translated address is stored to this pointer * @param flags the PAGE_READ/WRITE/EXEC flags are stored to this pointer * @param exc true =3D inject a program check if a fault occurred - * @return 0 if the translation was successful, -1 if a fault occurr= ed + * @return 0 =3D success, !=3D 0, the exception to raise */ int mmu_translate(CPUS390XState *env, target_ulong vaddr, int rw, uint64_t= asc, - target_ulong *raddr, int *flags, bool exc) + target_ulong *raddr, int *flags, uint64_t *tec) { - /* Code accesses have an undefined ilc, let's use 2 bytes. */ - const int ilen =3D (rw =3D=3D MMU_INST_FETCH) ? 2 : ILEN_AUTO; - uint64_t tec =3D (vaddr & TARGET_PAGE_MASK) | (asc >> 46) | - (rw =3D=3D MMU_DATA_STORE ? FS_WRITE : FS_READ); uint64_t asce; int r; =20 - + *tec =3D (vaddr & TARGET_PAGE_MASK) | (asc >> 46) | + (rw =3D=3D MMU_DATA_STORE ? FS_WRITE : FS_READ); *flags =3D PAGE_READ | PAGE_WRITE | PAGE_EXEC; + if (is_low_address(vaddr & TARGET_PAGE_MASK) && lowprot_enabled(env, a= sc)) { /* * If any part of this page is currently protected, make sure the @@ -390,12 +388,9 @@ int mmu_translate(CPUS390XState *env, target_ulong vad= dr, int rw, uint64_t asc, */ *flags |=3D PAGE_WRITE_INV; if (is_low_address(vaddr) && rw =3D=3D MMU_DATA_STORE) { - if (exc) { - /* LAP sets bit 56 */ - tec |=3D 0x80; - trigger_access_exception(env, PGM_PROTECTION, ilen, tec); - } - return -EACCES; + /* LAP sets bit 56 */ + *tec |=3D 0x80; + return PGM_PROTECTION; } } =20 @@ -425,30 +420,21 @@ int mmu_translate(CPUS390XState *env, target_ulong va= ddr, int rw, uint64_t asc, /* perform the DAT translation */ r =3D mmu_translate_asce(env, vaddr, asc, asce, raddr, flags, rw); if (unlikely(r)) { - if (exc) { - trigger_access_exception(env, r, ilen, tec); - } - return -1; + return r; } =20 /* check for DAT protection */ if (unlikely(rw =3D=3D MMU_DATA_STORE && !(*flags & PAGE_WRITE))) { - if (exc) { - /* DAT sets bit 61 only */ - tec |=3D 0x4; - trigger_access_exception(env, PGM_PROTECTION, ilen, tec); - } - return -1; + /* DAT sets bit 61 only */ + *tec |=3D 0x4; + return PGM_PROTECTION; } =20 /* check for Instruction-Execution-Protection */ if (unlikely(rw =3D=3D MMU_INST_FETCH && !(*flags & PAGE_EXEC))) { - if (exc) { - /* IEP sets bit 56 and 61 */ - tec |=3D 0x84; - trigger_access_exception(env, PGM_PROTECTION, ilen, tec); - } - return -1; + /* IEP sets bit 56 and 61 */ + *tec |=3D 0x84; + return PGM_PROTECTION; } =20 nodat: @@ -472,9 +458,12 @@ static int translate_pages(S390CPU *cpu, vaddr addr, i= nt nr_pages, int ret, i, pflags; =20 for (i =3D 0; i < nr_pages; i++) { - ret =3D mmu_translate(env, addr, is_write, asc, &pages[i], &pflags= , true); + uint64_t tec; + + ret =3D mmu_translate(env, addr, is_write, asc, &pages[i], &pflags= , &tec); if (ret) { - return ret; + trigger_access_exception(env, ret, ILEN_AUTO, tec); + return -EFAULT; } if (!address_space_access_valid(&address_space_memory, pages[i], TARGET_PAGE_SIZE, is_write, --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951011; cv=none; d=zoho.com; s=zohoarc; b=aSaRp8+d0v9Y2burl4ARnACURqt8Kfg+UqT4nXx9cXj8bfRFkYmSTPCyHnUuQ1dGXgEgSY9kQe5uAhiuSbPVQUjhutb2VfuTj5GFqEAygM81+YsMYohFfA6dM47XFHak4KPpw1T4xlo74BpUDHr7eidR4Sm20/tXLIrNRYH5gM4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951011; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=qV5DRSUK9uxLr8VUlGB8IPLCjYhHZMF32okiY81/uHY=; b=B02/FnZF8DsVrIQvbNePL91oHT0tWqIEqHX6BzfGSlJAYggEizyoAZoiKln+7X0fxmAwCEdKV5HHYtNQSYpLmbWiVoDB6Tys2VE0wkr1yH5HlTOrSmkLUtSSu8NO71Dwg0/+gCN6GEBR2zbW7IGfWUx/VxbGcaa4FA+BlXUS784= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951010964845.6500540739069; Tue, 1 Oct 2019 10:30:10 -0700 (PDT) Received: from localhost ([::1]:45770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLyJ-0005yy-SR for importer@patchew.org; Tue, 01 Oct 2019 13:29:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32868) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlH-0001cm-RX for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlG-0005YI-Mt for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:31 -0400 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:34348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlG-0005Xw-Hg for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:30 -0400 Received: by mail-pg1-x542.google.com with SMTP id y35so10119373pgl.1 for ; Tue, 01 Oct 2019 10:16:30 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qV5DRSUK9uxLr8VUlGB8IPLCjYhHZMF32okiY81/uHY=; b=sfohzBHOfz0OtcjcoVM3eEN2UWS/MQfxBDhy+XwtpM/X1TS4xXyM1fv8yfRp883mxA O57Xr9tC6hGZcqCm5uIK1ra4vG5VWcHRhNJjBb9S3vwGiJgwnhcQfBF/bAU0gMOpxyqy lhCaOgya7pBK+ew6ruys5zeuwSnhOQJKrLPtJaUQmrcn4UZTznUY3PqYUrdp2HLskmw2 q7rngMc41RR1BN8orbuVr67Hy0HuQ/NJn/eBRB61Mfc8mn1JYEgyRKImkLa1uz8scdkw wSHDqpQmlDOBtaS07Wl0mWH6HgjAHXZSH0mFttQL2CzAqWEQhY9/NTiR8y67qr2FPCVz gjeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qV5DRSUK9uxLr8VUlGB8IPLCjYhHZMF32okiY81/uHY=; b=Hh/IyGfKXoYJuWL31ohZwV3q3Rhe8d4Hy4IhqUG9JrYDOQ2hiFk6LQLWdC/rOhCGfQ THTL7MEHZX5NLbg6s79U8kNpX77L7xDd1Yzr0wVbXqXGKgTkr058bxHzOxnhoHYBu3sy PXYxQGZhSPeok8223XjEUbZbKyqIytTVHPSf8KbZJ73EOOz1pkQze3hJLkhWzRc/A5tc Q15DuP0tjG8fyhgtmnXjDQEnOEARqHRHQ488I9W9Uikie9MhPfgpyWXg8lgdN6lX7B99 +VkQ4CTZ4BKQc5XZkf/d/lMjwmxWdZjcG/8I7ucLx/6dwZGiIkgrWoMhmjCsV+HQtQsR k1lw== X-Gm-Message-State: APjAAAXATKYJ9jLUjkqjZfAku2VLoiO6+ehL9GtqfiUVGmhi7/bMjm1G ncc5K+aV5WqG6103HRvLDZpvB0GnTXI= X-Google-Smtp-Source: APXvYqzb+fvvSKvBh0eMaLRqZm4jDgGkcgqpIdBLKXK//RY2rscoxI3ouw9J/gqrGiaLiEuUFWcnRQ== X-Received: by 2002:a17:90a:1b46:: with SMTP id q64mr6780639pjq.97.1569950188996; Tue, 01 Oct 2019 10:16:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 10/18] target/s390x: Return exception from translate_pages Date: Tue, 1 Oct 2019 10:16:06 -0700 Message-Id: <20191001171614.8405-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::542 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Do not raise the exception directly within translate_pages, but pass it back so that caller may do so. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/mmu_helper.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 001d0a9c8a..869debd30a 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -451,25 +451,22 @@ nodat: * the MEMOP interface. */ static int translate_pages(S390CPU *cpu, vaddr addr, int nr_pages, - target_ulong *pages, bool is_write) + target_ulong *pages, bool is_write, uint64_t *t= ec) { uint64_t asc =3D cpu->env.psw.mask & PSW_MASK_ASC; CPUS390XState *env =3D &cpu->env; int ret, i, pflags; =20 for (i =3D 0; i < nr_pages; i++) { - uint64_t tec; - - ret =3D mmu_translate(env, addr, is_write, asc, &pages[i], &pflags= , &tec); + ret =3D mmu_translate(env, addr, is_write, asc, &pages[i], &pflags= , tec); if (ret) { - trigger_access_exception(env, ret, ILEN_AUTO, tec); - return -EFAULT; + return ret; } if (!address_space_access_valid(&address_space_memory, pages[i], TARGET_PAGE_SIZE, is_write, MEMTXATTRS_UNSPECIFIED)) { - trigger_access_exception(env, PGM_ADDRESSING, ILEN_AUTO, 0); - return -EFAULT; + *tec =3D 0; /* unused */ + return PGM_ADDRESSING; } addr +=3D TARGET_PAGE_SIZE; } @@ -497,6 +494,7 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uin= t8_t ar, void *hostbuf, { int currlen, nr_pages, i; target_ulong *pages; + uint64_t tec; int ret; =20 if (kvm_enabled()) { @@ -510,8 +508,10 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, ui= nt8_t ar, void *hostbuf, + 1; pages =3D g_malloc(nr_pages * sizeof(*pages)); =20 - ret =3D translate_pages(cpu, laddr, nr_pages, pages, is_write); - if (ret =3D=3D 0 && hostbuf !=3D NULL) { + ret =3D translate_pages(cpu, laddr, nr_pages, pages, is_write, &tec); + if (ret) { + trigger_access_exception(&cpu->env, ret, ILEN_AUTO, tec); + } else if (hostbuf !=3D NULL) { /* Copy data by stepping through the area page by page */ for (i =3D 0; i < nr_pages; i++) { currlen =3D MIN(len, TARGET_PAGE_SIZE - (laddr % TARGET_PAGE_S= IZE)); --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951176; cv=none; d=zoho.com; s=zohoarc; b=Gyys4KSQNuskYHyoMVLfUNk1Olkn663Lsqj7BXILp0WiAf3lHC+1wBu/XUgpqPBpZmZGH6XgXIBoW1QMjI/KJBu5YzGYIDJidVa5Ikm0B+BqR3AJ400Ij9dn12MjiQmjyQuBQwD/tNLJjdT1SEfgHJpPi3mVtiW9+TKquwukFOY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951176; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=kOQn8fqkcBbOOtc4Nsvslx7elS0LZpOm6Sn3ku0T4zo=; b=aBkX29oh89dge4NdN7VRU3lskDzVhMl2fF7/jWWdiS4FUJk9u0WHiK12GiZtJoE1EYbayw4RvKsjmecth8Igm5wmy97k2MiWS0o5PismdAgDHQo0PnPxUn0GedXcn5lNWiATt6odan21bBTJJESfdbOvvFaPgV5b0rAG9CLZSjw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951176238273.24454366086286; Tue, 1 Oct 2019 10:32:56 -0700 (PDT) Received: from localhost ([::1]:45812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM18-0000aD-Ut for importer@patchew.org; Tue, 01 Oct 2019 13:32:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32896) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlJ-0001eA-9y for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlI-0005Z8-1E for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:33 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]:45916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlH-0005Yd-Rm for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:31 -0400 Received: by mail-pg1-x529.google.com with SMTP id q7so10071696pgi.12 for ; Tue, 01 Oct 2019 10:16:31 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kOQn8fqkcBbOOtc4Nsvslx7elS0LZpOm6Sn3ku0T4zo=; b=qXDiBiCdh6IKfSuXeURbDy3Rd8WhOYDsHula3ivJFSGO/y0pkgnN+3QEHP9VjjC3SE LA0e2D1YL7hXMLtwUj4uKlJlXXWV8rWh8pJt2zbaMF5TDdyqtzQbfA2Je54GoK+imCus bIP5+DBxetuusTsWRxd1TMRBWjHxPHWIvCe1D/TcqMrR1bWJKsOL8UcGSy1GHrNzyL09 AS2DSm9EHdf1usskM2EQ4dv1AHW5RSmBHi0XuarIiNAHZZ7PBsqCw8mEVwbzr9ka1K+B y9KTn4LOMrwWupnmD6e7F6VV8WxYwdtgGE8t+6VPulK9DDVrRyOMdQZmatcFFR/4sEuG Uejg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kOQn8fqkcBbOOtc4Nsvslx7elS0LZpOm6Sn3ku0T4zo=; b=lz1S2mUES9shEXzqUqlMelLoOs2OCuTwnsQqXoAx9SL+vzus84HGbqZH/GITL97txD uNqC+86VEQJqrIU9nyuAWQX++jj9SYcq7MJWKNmnI+YwfBoChHe5O9kpR4GR6dpx87MP eYPppx/kkG6qsJXXEBY9FJMBrlGshSCWsffTimW5HPU23lwx5/mNNs3GT+63Q9ZMfTh1 suRy57CmrPfW03c/6IyJbAunwvyKT8ML53RLXAdD26GmzMkQv7JFEvsacduTAYlH1xxB 0YfgWA5E6Np0yvxtzBnrEeWhpLRD59r10TtM7ewNTY6FcE3G3uRzX1fPxHAyz7jDXAyN 0BTg== X-Gm-Message-State: APjAAAVaXE41h1g/Dy/ROKEx4d72dtnYN2iHKQLgO9+SwXwbY88wECtz mMZW84WM8LXjKa/2w0N4Hx8z9+c66pc= X-Google-Smtp-Source: APXvYqxwtr7FI8ps2WpfL1PJhAw2GibDiLfHREte/okN53jeE6vqohfXDr3xZz+kI/VqyyuYWXWoug== X-Received: by 2002:a17:90a:2301:: with SMTP id f1mr6720391pje.121.1569950190302; Tue, 01 Oct 2019 10:16:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 11/18] target/s390x: Remove fail variable from s390_cpu_tlb_fill Date: Tue, 1 Oct 2019 10:16:07 -0700 Message-Id: <20191001171614.8405-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::529 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Now that excp always contains a real exception number, we can use that instead of a separate fail variable. This allows a redundant test to be removed. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/excp_helper.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 6a0728b65f..98a1ee8317 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -127,7 +127,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, CPUS390XState *env =3D &cpu->env; target_ulong vaddr, raddr; uint64_t asc, tec; - int prot, fail, excp; + int prot, excp; =20 qemu_log_mask(CPU_LOG_MMU, "%s: addr 0x%" VADDR_PRIx " rw %d mmu_idx %= d\n", __func__, address, access_type, mmu_idx); @@ -141,20 +141,18 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, i= nt size, vaddr &=3D 0x7fffffff; } excp =3D mmu_translate(env, vaddr, access_type, asc, &raddr, &prot= , &tec); - fail =3D excp; } else if (mmu_idx =3D=3D MMU_REAL_IDX) { /* 31-Bit mode */ if (!(env->psw.mask & PSW_MASK_64)) { vaddr &=3D 0x7fffffff; } excp =3D mmu_translate_real(env, vaddr, access_type, &raddr, &prot= , &tec); - fail =3D excp; } else { g_assert_not_reached(); } =20 /* check out of RAM access */ - if (!fail && + if (!excp && !address_space_access_valid(&address_space_memory, raddr, TARGET_PAGE_SIZE, access_type, MEMTXATTRS_UNSPECIFIED)) { @@ -163,10 +161,9 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, __func__, (uint64_t)raddr, (uint64_t)ram_size); excp =3D PGM_ADDRESSING; tec =3D 0; /* unused */ - fail =3D 1; } =20 - if (!fail) { + if (!excp) { qemu_log_mask(CPU_LOG_MMU, "%s: set tlb %" PRIx64 " -> %" PRIx64 " (%x)\n", __func__, (uint64_t)vaddr, (uint64_t)raddr, prot); @@ -178,13 +175,11 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, i= nt size, return false; } =20 - if (excp) { - if (excp !=3D PGM_ADDRESSING) { - stq_phys(env_cpu(env)->as, - env->psa + offsetof(LowCore, trans_exc_code), tec); - } - trigger_pgm_exception(env, excp, ILEN_AUTO); + if (excp !=3D PGM_ADDRESSING) { + stq_phys(env_cpu(env)->as, + env->psa + offsetof(LowCore, trans_exc_code), tec); } + trigger_pgm_exception(env, excp, ILEN_AUTO); cpu_restore_state(cs, retaddr, true); =20 /* --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951271; cv=none; d=zoho.com; s=zohoarc; b=IEoCErQkKVPB5ivvRS1K/FTW8itSlrIpN/N9Z1Zs/cl+ML/wY+7EN2qnMm5m/4uu7VKN5rUc8ujbiQ62N3L4WsvBW++mvwdYobAS/gv8DwtTFOqXjJSmdDz+YI2aicPdjIX6BCCSbgBMpbLopDloCzAhxHkMBeEh4GEmvQlU6UA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951271; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=vJYZZP2e9BNSzbbwHk+HhznESdz192Yke+3plcKoZ6o=; b=Tb/T7oodg6oIJ4iQaDL0aVFuwkmcBaxGgzG/51LqQmVInSWE0RidvOArp7I+JXCNhfcbxp+3ekLMIrs8XNVk5pPD7zGmQ+vUcff8BCMJ5XhgWJCanXnxeimuwy8BI5Tk22jbaOuEGxScdps2wqARGiOo3mqCJaf7sluRXKb6exk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951271528422.3611917457895; Tue, 1 Oct 2019 10:34:31 -0700 (PDT) Received: from localhost ([::1]:45838 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM2g-0002A5-Fx for importer@patchew.org; Tue, 01 Oct 2019 13:34:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32918) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlK-0001fe-Ki for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlJ-0005Zu-KP for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:34 -0400 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:37412) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlJ-0005ZW-FS for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:33 -0400 Received: by mail-pf1-x441.google.com with SMTP id y5so8478713pfo.4 for ; Tue, 01 Oct 2019 10:16:33 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vJYZZP2e9BNSzbbwHk+HhznESdz192Yke+3plcKoZ6o=; b=XzIkzCRUjUk4HEBRS0gpgM6RZkrUiM/UgAAhxXtu674ygOePLxt8JTj79MXXOFvew7 5cXaQzauSFgEschhQrGI0wXw1Wkxp5GBh23/aZey20wOwOph/GKmADniiOY8gvAXm2CW lJt1CmkNY6Om98QILFzTsvU1td0FJTfuqblnYGeNFYVcAqMoT72biGxmQ0Z88BkVM/P0 3XcMkXJVXsYR8FOTSmeWNrGEA5cQzQx1H6OOgha61GE1fXErdyKKzvolysqdlv7+Jqop aWQKN6ZsXR0nD5+LzMxhyIDyXGQXvm6sif+rHftS1dE6iPahzk/K2xVq6DHB2oJhoKeO 1ObA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vJYZZP2e9BNSzbbwHk+HhznESdz192Yke+3plcKoZ6o=; b=leOdgKdvWEEX53p7jSSzJIkTLiCqJ1mT5wq7N3qEefzypFhQBEfIkkNFMVX6ulbtYY hu/D1VetCTV6nlXtKnhKdZUqRrVxdIUL4N0r86/QYDTLK5HvBNM4cVmXnssr5r/RQ2O5 QZxlNEA6pVEbGc8NtahMFpvKRHqSdf4165ZbP8iaL6ZCbMZkzEO3CrI0Qcw36gvEl9DM blOayinKD4+DVDVBrNrHT3zw0A7pAQ1ixzkZmlGMGqwiH10BfLJsTyVCcPjCZn6yL9B8 qI/Qx4iiXUn061UTRJgucoHC9yGr86q1Pz+eS/kIUHFj5YlSZszTK1ZmuUq0xOnjjART uRDQ== X-Gm-Message-State: APjAAAWIU9Plv7TrVPn6TaxD8ZOTx9xXhQEPb5pJ5CIvcw9fk6O0L+Yd diC9kRRzmkaPmW0sxEh0oh2xIbDYNOE= X-Google-Smtp-Source: APXvYqxv7IwaWxZmWlDXpwqz47GxXnLt0piwx0c0vv3kFU4F+yUHlG0+QJb7lFs9YAag0XCKb8glfw== X-Received: by 2002:a17:90a:fe04:: with SMTP id ck4mr6872581pjb.74.1569950191808; Tue, 01 Oct 2019 10:16:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 12/18] target/s390x: Simplify helper_lra Date: Tue, 1 Oct 2019 10:16:08 -0700 Message-Id: <20191001171614.8405-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::441 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We currently call trigger_pgm_exception to set cs->exception_index and env->int_pgm_code and then read the values back and then reset cs->exception_index so that the exception is not delivered. Instead, use the exception type that we already have directly without ever triggering an exception that must be suppressed. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index e15aa296dd..4254548935 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -2361,34 +2361,23 @@ void HELPER(sturg)(CPUS390XState *env, uint64_t add= r, uint64_t v1) /* load real address */ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t addr) { - CPUState *cs =3D env_cpu(env); - uint32_t cc =3D 0; uint64_t asc =3D env->psw.mask & PSW_MASK_ASC; uint64_t ret, tec; - int old_exc, flags, exc; + int flags, exc, cc; =20 /* XXX incomplete - has more corner cases */ if (!(env->psw.mask & PSW_MASK_64) && (addr >> 32)) { tcg_s390_program_interrupt(env, PGM_SPECIAL_OP, GETPC()); } =20 - old_exc =3D cs->exception_index; exc =3D mmu_translate(env, addr, 0, asc, &ret, &flags, &tec); if (exc) { - /* - * We don't care about ILEN or TEC, as we're not going to - * deliver the exception -- thus resetting exception_index below. - * TODO: clean this up. - */ - trigger_pgm_exception(env, exc, ILEN_UNWIND); cc =3D 3; - } - if (cs->exception_index =3D=3D EXCP_PGM) { - ret =3D env->int_pgm_code | 0x80000000; + ret =3D exc | 0x80000000; } else { + cc =3D 0; ret |=3D addr & ~TARGET_PAGE_MASK; } - cs->exception_index =3D old_exc; =20 env->cc_op =3D cc; return ret; --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951355; cv=none; d=zoho.com; s=zohoarc; b=HAbnxKxjs8a+E02PvGv/XFXT7sht5u67NIM9nKZTPViq8pPq53CE6C6yUUr7qOklu8RWPIOKL03XKdR6pR+d+DIq2UCVqwQQ1R7Tt/vy3TJtVrWQBKSQbqWVN7afHjKsyOSlVlgfyJkHB7a6Uaos/R3kLDYnHm5QwoXhOvzMLgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951355; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=8sg4rb5KuIBYRa5veNL+5ohAGWn4FiKab4HtkGWajes=; b=J4kKtS8rA8DAZGFDT5BcJP/T/W267FkdiIauLBPcmRZc7/c4evY0HnWhQ8sSHXWCe6hrQ+Ew5/BrOgGSYpPksTeoIzfv8o5xo42d/5HvpGItRQSTdRrH3UoWzsm3d3OPfLh0nFzwa+uNSCizaA2MotOT8iv68C7yGOX/m6bVBFA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951355231920.7502990944068; Tue, 1 Oct 2019 10:35:55 -0700 (PDT) Received: from localhost ([::1]:45850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM3x-0003A0-KS for importer@patchew.org; Tue, 01 Oct 2019 13:35:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32934) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlM-0001hO-2k for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlK-0005ag-Vh for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:35 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:36738) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlK-0005aB-Qi for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:34 -0400 Received: by mail-pg1-x544.google.com with SMTP id 23so1581006pgk.3 for ; Tue, 01 Oct 2019 10:16:34 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8sg4rb5KuIBYRa5veNL+5ohAGWn4FiKab4HtkGWajes=; b=AOYp1zg77cPRcPif9SMkLZAwAdK0Aph7iPlFFqUIYy1d3Il+kSG65LK2QSOZVHwSnP fgu3aiurBne1CoecJ4aTcK0n5r8FigcpaSpXZRIzKtyZx0O3s1esRbA0EXP7MjEpoCx4 4L2IftCilatqVELDoAsEo43NlHORU+yXA1A6fOEa4ATjUISkyNYajO6NKaWJsHKcAwrF w1iQwjJJFIhC/FZxKdymclCEwscMGfDxmH9Hlb5qBfdUrVNzc7PRc3zkXxNcYoJmv9JZ oD/RTN14QtQFKBLdGtUr+LmOgMq1rypQ02skfv4UfXK1WpTjj3mZrG3EvDR6LklJzLzP HVzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=8sg4rb5KuIBYRa5veNL+5ohAGWn4FiKab4HtkGWajes=; b=UHThDNoRPpHfQTcOMa32w59gS6MBjp3HjiULofaF+Oxbf3pv5lMYvp/LplQM8tdKRC RWWzrTr+KLmoMi8Jo/NszeqRrvbKJRNBs7nuOYa1qEW0USHuNCLIHwOfZEghmh5i7rpU cje949wMtUVAOIUlFYXTBu5kCmoMhjQDmU7orLrY5nMIRetzfa57zMAx/o3LtdZy7SHO bj58XO2jTxWdFs0xd4dGMRPMuZ0DbQHs2sGNqVa0CavfJ1wTYrSLs+C3G+YlyicE/JTo bEGfKE4mlL48KPENf1I6v7Fs3WakiF4YLO3bQrmfBUeZqulMMqodGeQBVsprP0NbPsdw g9TA== X-Gm-Message-State: APjAAAX8eUtgMbfPhPSGW1rve89l5yXfj5iu1I6lpzoiAzdp32H2ud6C uA6/l3SommCfQ8oVA8Nj9wRd+8RXvWU= X-Google-Smtp-Source: APXvYqx0i8UhK0TTTivkzWFNEZNcXdUIF7UROu6QrBAmgZaD4hLZt0vaJ+jROo99ucNHM6fP21Ev4w== X-Received: by 2002:a63:ed08:: with SMTP id d8mr32188280pgi.239.1569950193356; Tue, 01 Oct 2019 10:16:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 13/18] target/s390x: Rely on unwinding in s390_cpu_tlb_fill Date: Tue, 1 Oct 2019 10:16:09 -0700 Message-Id: <20191001171614.8405-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We currently set ilen to AUTO, then overwrite that during unwinding, then overwrite that for the code access case. This can be simplified to setting ilen to our arbitrary value for the (undefined) code access case, then rely on unwinding to overwrite that with the correct value for the data access case. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/excp_helper.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 98a1ee8317..8ce992e639 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -96,7 +96,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int s= ize, { S390CPU *cpu =3D S390_CPU(cs); =20 - trigger_pgm_exception(&cpu->env, PGM_ADDRESSING, ILEN_AUTO); + trigger_pgm_exception(&cpu->env, PGM_ADDRESSING, ILEN_UNWIND); /* On real machines this value is dropped into LowMem. Since this is userland, simply put this someplace that cpu_loop can find it. = */ cpu->env.__excp_addr =3D address; @@ -179,24 +179,15 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, i= nt size, stq_phys(env_cpu(env)->as, env->psa + offsetof(LowCore, trans_exc_code), tec); } - trigger_pgm_exception(env, excp, ILEN_AUTO); - cpu_restore_state(cs, retaddr, true); =20 /* - * The ILC value for code accesses is undefined. The important - * thing here is to *not* leave env->int_pgm_ilen set to ILEN_AUTO, - * which would cause do_program_interrupt to attempt to read from - * env->psw.addr again. C.f. the condition in trigger_page_fault, - * but is not universally applied. - * - * ??? If we remove ILEN_AUTO, by moving the computation of ILEN - * into cpu_restore_state, then we may remove this entirely. + * For data accesses, ILEN will be filled in from the unwind info, + * within cpu_loop_exit_restore. For code accesses, retaddr =3D=3D 0, + * and so unwinding will not occur. However, ILEN is also undefined + * for that case -- we choose to set ILEN =3D 2. */ - if (access_type =3D=3D MMU_INST_FETCH) { - env->int_pgm_ilen =3D 2; - } - - cpu_loop_exit(cs); + trigger_pgm_exception(env, excp, 2); + cpu_loop_exit_restore(cs, retaddr); } =20 static void do_program_interrupt(CPUS390XState *env) --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569950865; cv=none; d=zoho.com; s=zohoarc; b=RvYW4nD5cSyy1QBmNR42cg1rlSWq1qhQTC7xn2J93bMuAaXad2psCNiDm/hm12o8b/tOLqXNSdwq/JiVtyjdv+AvQ3mgPCxzj9imyngo3mWU8rrgnD0H2ZL5WBU4qwhdA4wtyaBA78RdJBaFZpH4ag4vcGO15RwcMy8CKpaWMnU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569950865; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=cLTjP6H3sgR48Oz4OVwXv1gsVIS4CDtO8U+Cy7bE7UQ=; b=XZRLQugJlL01lh4Bs/fjF11OpG3zOa6TpkuDqc5c8m7G5NHjA4QLKJ4bJLbXgxRvOq48DNWWoejh7+fzzApmbiyAH6qUeo2pRLGM3aPclVtMt7aNFpd1WAo6P3H9mp1Fzu7eICAcnby0/nYvn7Ey3d2vK98VNXx71p5JiEHmpbg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569950865753468.07815093881914; Tue, 1 Oct 2019 10:27:45 -0700 (PDT) Received: from localhost ([::1]:45750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLw8-0004F9-Kp for importer@patchew.org; Tue, 01 Oct 2019 13:27:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32947) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlN-0001il-NZ for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlM-0005bT-79 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:37 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:38388) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlM-0005b5-1t for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:36 -0400 Received: by mail-pg1-x544.google.com with SMTP id x10so10101325pgi.5 for ; Tue, 01 Oct 2019 10:16:36 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cLTjP6H3sgR48Oz4OVwXv1gsVIS4CDtO8U+Cy7bE7UQ=; b=DAzB//66IIybNmiWG+r8vxmmqgUOmg4ljfxR1ZsuCFmhfuLtVaCTBYNcxhbJsj4Yfh 66pe8+B2xjt+5PG8tPlRYpGaUp3wLw9M9uhDTMBEj/m6IDWiuUflaI+xBssW7IQ7U3/c JBjog5vI6+dg91XagDmh4qobvPIJIeQv2T1k8HuMp7EmVNy1L84lSnZ75aar/v2zAiCO HbEEhrDDFSbV9M0FOZCci2fhFny0+n1aflqGfzvrRM9NkQJRoNygnUpmwyYnjSd0Oukf VggHSpqgUutz0BPqPSbV93NU7t3lb+aO6UWYK4SImcqa7iLWKKoF3qPYw6nCwdRietA4 FLww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cLTjP6H3sgR48Oz4OVwXv1gsVIS4CDtO8U+Cy7bE7UQ=; b=tdrYEIEzeXmfZCLcE/+3He6xVJrW8ZYP9geFlBY1+0fh2pSNRORnFqHQhPIjKXzN8Q OxPJfhYQN8CP1JkuZGnFkJiGjLGtNV15v0IhTb5ktH4Gon2k0N9sQSaTWSGUmX1RX3Sz niQRh1dVJbBp1dhf1PG166lFFC+BTa/uasEb4jAdupvg+b7s6Z3Kl2UDj6H+2BCEFAQE aGbx4yV2wqFqxtCOyB+rfGQoMDyxkkr7Uk/uChSNovaNo3BLVzUo8b6/7waQA3Jx4h06 MTmqukNNQMgGU/oR1zZ/l8gKt06q6N5+dDsnvu5HkPWw0f0NOFEWeB9voGrVN3iL3DeL i/Qg== X-Gm-Message-State: APjAAAVzHfm2LllXbYKgfz0GDap+EVWPT28yC5WB57kwwGENM6YvOJA+ 9LbFKnnDB+IiylMrgFSCXymHAi0Sjvg= X-Google-Smtp-Source: APXvYqy5wuG4piUjVXnpdy8Dwp14YJYhU2v159v8FkZXHxpSZOEutuy6XX8zwONtvY/ilOkR/Faqcg== X-Received: by 2002:a17:90a:1b48:: with SMTP id q66mr6701030pjq.79.1569950194770; Tue, 01 Oct 2019 10:16:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 14/18] target/s390x: Rely on unwinding in s390_cpu_virt_mem_rw Date: Tue, 1 Oct 2019 10:16:10 -0700 Message-Id: <20191001171614.8405-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" For TCG, we will always call s390_cpu_virt_mem_handle_exc, which will go through the unwinder to set ILEN. For KVM, we do not go through do_program_interrupt, so this argument is unused. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/mmu_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 869debd30a..df58fb73ba 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -510,7 +510,7 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uin= t8_t ar, void *hostbuf, =20 ret =3D translate_pages(cpu, laddr, nr_pages, pages, is_write, &tec); if (ret) { - trigger_access_exception(&cpu->env, ret, ILEN_AUTO, tec); + trigger_access_exception(&cpu->env, ret, ILEN_UNWIND, tec); } else if (hostbuf !=3D NULL) { /* Copy data by stepping through the area page by page */ for (i =3D 0; i < nr_pages; i++) { --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951489; cv=none; d=zoho.com; s=zohoarc; b=We7/pEuG5I1kybMrPOSYUus3qg8riTmRSW9AWlejrv1qsYoLjLo9/js61myPgt0aC7TN4Lwbyd3s5yW0oEbv6pLTEpT9X/IrZqCvVVgwHCGeeM3hQUVj7LClYa5yPXEq3qGQdA8Rw+knm1bQU1kAP+nAzr/nEQSja2wxE3OXzcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951489; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=v4OWbCEYlAnhjvj+x+7Ps/UFUWQ5DVP1AWFH0GWe8MY=; b=gOaPOW2QA3zldiKRSibQ1+i8b3Mr5uGomuVXVPVGp2hgmP5ml9DyIuzx1kt2FVV16Y8e+Xpdivx/a8EtHc3YWAgCSFhxx/wn094iKYarOADZFtOy7F4U9QAzXZGOn7qF3zE+VZDXZM/eSAPd6CgoCjHMehicGr2c3jsJbVM1fKA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951489926770.6144589088306; Tue, 1 Oct 2019 10:38:09 -0700 (PDT) Received: from localhost ([::1]:45886 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM6C-00054G-RY for importer@patchew.org; Tue, 01 Oct 2019 13:38:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32963) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlO-0001jZ-OY for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlN-0005cI-Qu for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:38 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:39532) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlN-0005bj-Ln for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:37 -0400 Received: by mail-pg1-x544.google.com with SMTP id e1so4578367pgj.6 for ; Tue, 01 Oct 2019 10:16:37 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=v4OWbCEYlAnhjvj+x+7Ps/UFUWQ5DVP1AWFH0GWe8MY=; b=BMyW5teIwagEVueis7ud2R9qnHWp3oYb/nHK+tFOgAYpwx0hBqUKTF0Dv6INyuJ/gF /PAMqwn+kK/DQ1uJD6ag5sq2D/LFAEAf4q2VeiFH1kZvAkmEGA4rOtSgm1/sDTuz3HS8 Mv5HWl7mOoEaPP56KAVXq/gvwAhhCOJcradFj/2wwsZRQqqZureKIBdqQAbkm6K9tb+p OXeVeTBJ5LwHoeTcglcENpqwLLWb6XCq14YHA9CkkHKd4RllFOMGkaZ+EW19KkKSxiF4 rmm9/3N1cMS6x/HlJCTRIy6kBCufcg8LmqRqX+ORFzKzlj+vSHPsArYpgr4KsOAoefVW uC4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=v4OWbCEYlAnhjvj+x+7Ps/UFUWQ5DVP1AWFH0GWe8MY=; b=A4cenpFqRx0cCBocvSdcvU6rI0XBbXcrdjfSJJKgTnQ/juCjiRpo4cxjep2OHPVKjd 1v6Rk0cHkd9m0sYEt0PFLZ0nmGrmDpo17m5N7PF1nsyE3j9uqDn6Fs2NtQZ7+1tUJXlU pONtSLRis7vVT194f0LRHx3QMzaI/QPF8qnfcGBdmkviRqlKG7Mtt5al8CBmiM6gc/Nz NYXsJUih43nF57H19A+lQA8Y8BcxCB03zhUzS2Fz433pZ3Wt50XsWaB0c/XHXd4nf5Tm NdAQApYUkN+r28ZHht92W6KQj8EK85i+VpYvo8df4f0c9HWxGunetg6x7lFxw3GWhiGZ m82Q== X-Gm-Message-State: APjAAAV9WZbJky7HR59bV/Cbdu+AJFqLPnqa9shG+Lw5X752CNcOY4i5 sY/lvdHuxtlbLz74YtXgn7piKJrEaWI= X-Google-Smtp-Source: APXvYqwngxzVcEsPfT5+tPCPbAKX6HQa8y6gSG6a276ZmPO/SmO23nNT1WhArO6hu2wiHYruGmdO+w== X-Received: by 2002:a17:90a:c096:: with SMTP id o22mr6910982pjs.29.1569950195996; Tue, 01 Oct 2019 10:16:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 15/18] target/s390x: Remove ILEN_AUTO Date: Tue, 1 Oct 2019 10:16:11 -0700 Message-Id: <20191001171614.8405-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This setting is no longer used. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 2 -- target/s390x/excp_helper.c | 3 --- 2 files changed, 5 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 18e7091763..e7a9a58e0f 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -806,8 +806,6 @@ void s390_io_interrupt(uint16_t subchannel_id, uint16_t= subchannel_nr, uint32_t io_int_parm, uint32_t io_int_word); /* instruction length set by unwind info */ #define ILEN_UNWIND 0 -/* automatically detect the instruction length */ -#define ILEN_AUTO 0xff #define RA_IGNORED 0 void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t r= a); /* service interrupts are floating therefore we must not pass an cpustate = */ diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index 8ce992e639..c252e9a7d8 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -196,9 +196,6 @@ static void do_program_interrupt(CPUS390XState *env) LowCore *lowcore; int ilen =3D env->int_pgm_ilen; =20 - if (ilen =3D=3D ILEN_AUTO) { - ilen =3D get_ilen(cpu_ldub_code(env, env->psw.addr)); - } assert(ilen =3D=3D 2 || ilen =3D=3D 4 || ilen =3D=3D 6); =20 switch (env->int_pgm_code) { --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951417; cv=none; d=zoho.com; s=zohoarc; b=eXUoGuaoh2YVsg0cD3I6fKeRksKv6ARkqVizb5qE9TovZfzOmIhht32Kp/qHMR5xbax3N6wB4jK38O9NwcwhwHZKPnrN8PJziC912yW8yu9/HxDUu9Y4hqRyWlvaZdrP+y4Mtn6Esg50JaMXu2aJANcRZWcgeeZPiDWWhT8BQ/4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951417; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=T27/+7RLgsAKUaeTVz1uKZeEShCunhopOomrfELwqqY=; b=mUSdujbzSEUZw8iOBuaqyX3JESwoHW+IHBxp52LNuzEVx1NcwRlgvHK0Ej1aCqywszAbY2SBt1z0g0lNPJlAoSq/ACWODlrlwDeNjf4Sush7pn1ORjbgbXDBKztUjth9J9zlDxB4fLqrLsRZkL7Lf95LAkxG5RqphqxV5E5jiAU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951417885245.99672855668098; Tue, 1 Oct 2019 10:36:57 -0700 (PDT) Received: from localhost ([::1]:45872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM52-00044B-Ps for importer@patchew.org; Tue, 01 Oct 2019 13:36:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32978) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlQ-0001kG-Dy for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlP-0005d1-BW for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:40 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:39530) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlP-0005cc-6S for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:39 -0400 Received: by mail-pg1-x541.google.com with SMTP id e1so4578435pgj.6 for ; Tue, 01 Oct 2019 10:16:39 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=T27/+7RLgsAKUaeTVz1uKZeEShCunhopOomrfELwqqY=; b=kp5NU5ewrUf6j+pZlpRB60fFTlIcbw89bU4zg65RlyPQJLnpb1xINweNtmyWotr3uh bbcCOz6tgw0zlB+OTJ1t5xRVosXuM39d/lkwv7ZTiimsfxlscmgx5nK+RspmHD4XQjDN nnCTgVP4m+0q2NVKVMkSRgA4BBoIvZzUcHaHhbm+ZFXLoINZEg4K1K1uZpk1Hhe2jYfS 7D4xDFWhiA4THWuwjyGOe+le41lxU98Z8YsB50KWVvDsAYjviFX99drtEh8QuE6qECvg J0YQOQYKSMmpljO7P4bD3xut5OgchUzjVZ7FT+pKjNiNWmPdsDES99h+JJORxXF57owo BX8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=T27/+7RLgsAKUaeTVz1uKZeEShCunhopOomrfELwqqY=; b=pKdpDP3SyVCgFeZn/pc/rAoYWwJ4tnhIAIjhvw9Osht88X4LWz1zoEkfJMv82HKAZL YxVL5EdgB2RFJvQ2Wyecnrp3FVJWDh5RlTxjKGqhDIr+BVYU7kLKuafDA9oo7WWdVNYR Jx42csbByINOSIwEskXRe3O/ZdZhSQ1l8c3NIQHMlEnQQldAioJ13zG15uNmkPWtASD4 HEWfl8IPGH99KpHiaDO+DI4/KTgvUE3p6zswV5N8UEsRuDRzVYyNLVVReKuQinugB+4D OKvecsdmFTGitrKXtmreTYzlrYpQgcp6sdc6Lq0193g46G2Gzcs+AZq5GO/+xCXTaCPQ nywQ== X-Gm-Message-State: APjAAAXMWwn19ORRxhXuHNs13Q4LbvjirgEPoyF0H7SYH23eEpIe5vK5 q0Xg9+4hCrtzXYoyTu1YGSYkEgkAb84= X-Google-Smtp-Source: APXvYqz+b5m8p/UheH/VDxeTTDyHz0SxUzLdMbu9+GSfF3LoskSe/1JLq5vzlB1nG2zbboz0RiLgXA== X-Received: by 2002:a63:1d02:: with SMTP id d2mr31211631pgd.190.1569950197258; Tue, 01 Oct 2019 10:16:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 16/18] target/s390x: Remove ilen argument from trigger_access_exception Date: Tue, 1 Oct 2019 10:16:12 -0700 Message-Id: <20191001171614.8405-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The single caller passes ILEN_UNWIND; pass that along to trigger_pgm_exception directly. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/mmu_helper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index df58fb73ba..09c74f17dd 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -33,7 +33,7 @@ #define FS_WRITE 0x400 =20 static void trigger_access_exception(CPUS390XState *env, uint32_t type, - uint32_t ilen, uint64_t tec) + uint64_t tec) { S390CPU *cpu =3D env_archcpu(env); =20 @@ -44,7 +44,7 @@ static void trigger_access_exception(CPUS390XState *env, = uint32_t type, if (type !=3D PGM_ADDRESSING) { stq_phys(cs->as, env->psa + offsetof(LowCore, trans_exc_code),= tec); } - trigger_pgm_exception(env, type, ilen); + trigger_pgm_exception(env, type, ILEN_UNWIND); } } =20 @@ -510,7 +510,7 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uin= t8_t ar, void *hostbuf, =20 ret =3D translate_pages(cpu, laddr, nr_pages, pages, is_write, &tec); if (ret) { - trigger_access_exception(&cpu->env, ret, ILEN_UNWIND, tec); + trigger_access_exception(&cpu->env, ret, tec); } else if (hostbuf !=3D NULL) { /* Copy data by stepping through the area page by page */ for (i =3D 0; i < nr_pages; i++) { --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951053; cv=none; d=zoho.com; s=zohoarc; b=h+L1nLF3hAFjpfikJpWn5ZQegPeNY7yeJgFcb8w2S7aMcOSl/Pdf2S/0ifSTRFVNQwXHB2au7KrUCbQhNgLZaHwWYcvPh/jdmByvSuDIQZgekNpDSh4m5AtBBxQRb9EwljLmnpQQ9CZDv6I7/mSBRjuiRYWn9jllNwkmIjp9FkU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951053; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=zWndXgEDq38ZD9+tzMggT4V1IKonosDqt8xl6lDbLwc=; b=Y0rJ+uQ86BEIFUg6hGq1gNdTwKYpnrX9FcZxmi5ShWq/7f5+gZREwLLKJNC5/iOWtahWiBM/YwlvAvRg4cL1D1ZSUQRwgERc4sY8gZpPXvNNfUhNvTwgNA1pVPSRPoI20uPrTEvfXyJpBmZx/VR+ej5aT/G7ta7mn1JiyMrh/eM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951053806376.47281753399943; Tue, 1 Oct 2019 10:30:53 -0700 (PDT) Received: from localhost ([::1]:45789 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLzA-000718-5W for importer@patchew.org; Tue, 01 Oct 2019 13:30:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32991) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlR-0001kT-Pt for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlQ-0005dg-F7 for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:41 -0400 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:41350) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlQ-0005d5-9i for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:40 -0400 Received: by mail-pg1-x543.google.com with SMTP id s1so10094319pgv.8 for ; Tue, 01 Oct 2019 10:16:39 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zWndXgEDq38ZD9+tzMggT4V1IKonosDqt8xl6lDbLwc=; b=Rv6rqUR2U5m+Q68C4U02FebkcUVqJvtdRBd3tY1NCPDSUBtvID3T7cs2mv4jwui7fF mpee7zecLtAy6SHSlEVqgJmEzNQiJmgvQ7XYn7qyKY+ze+BJ5gC+M3GLdE2JGPkPgu4O d4WNUAq/Ou7qj1gTZf8cnA9Gp6flf6wXM/XSAlFvjZfc/4G/LtEpsVfBp1xgUn9d044h rQV2nU4TSK7bTEo/4Guwh+Ih9Jtz5aMqiOaN+bZJn+VMl2VjzUXa6n/BtF0wFf+gKZTh UiwjqSd1fE0FKcuMPc87RaOiuG2fuSS/hAPioyXCmoaoWNoqjOBtqGtxbitovdIeqSFd LL0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zWndXgEDq38ZD9+tzMggT4V1IKonosDqt8xl6lDbLwc=; b=LVexExqHcVQuoAS7zpd+g8PtH9MrUHkmlbQYmZ5jk+ZaMd6FcEtwfqOjrmQ7AB14ci QN0SB7zRKfGWRSlMzGnjoRSEGyB3onR+OqhBlHrFHH2RGQO+LdvrI2R09RLCvwEFOMVC 7M3KpPnTW4UuqOTElZ7USGHsVDkcpaO3vS0BtWTwFkxgL1OzjOBkflz8Onsb6v/YIrRR WRzWmsjhaVaNR45Fohb+E4KN5vQJrprN39cZOxjPlIoCQEhpWsEtIesV4V+mod03Wghl F6OuaOJNToS/jB5mMeWRZFuZcsfgyTWrCir7I8ncmMTfjnYyKu1kr+TJ16NfnH+yhnYq Tqtw== X-Gm-Message-State: APjAAAWCVqp1Blb3jiu8ODQ6fi3x3ASbHRGDQslJO4KC9rJRfwmNoJwn yZYrLLwumzBuvoTXQHnX2SAs3g2cItE= X-Google-Smtp-Source: APXvYqx41FG48UQUibuw6rT8m/NNzDs22WvRfzOEJkfnd1Mv8WNToSMW5+emhnqcOqWLJDG/VmxqOw== X-Received: by 2002:a65:6786:: with SMTP id e6mr31821960pgr.257.1569950198473; Tue, 01 Oct 2019 10:16:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 17/18] target/s390x: Remove ilen argument from trigger_pgm_exception Date: Tue, 1 Oct 2019 10:16:13 -0700 Message-Id: <20191001171614.8405-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" All but one caller passes ILEN_UNWIND, which is not stored. For the one use case in s390_cpu_tlb_fill, set int_pgm_ilen directly, simply to avoid the assert within do_program_interrupt. Reviewed-by: David Hildenbrand Signed-off-by: Richard Henderson --- target/s390x/internal.h | 2 +- target/s390x/excp_helper.c | 7 ++++--- target/s390x/interrupt.c | 7 ++----- target/s390x/mmu_helper.c | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/target/s390x/internal.h b/target/s390x/internal.h index c993c3ef40..d37816104d 100644 --- a/target/s390x/internal.h +++ b/target/s390x/internal.h @@ -317,7 +317,7 @@ void cpu_unmap_lowcore(LowCore *lowcore); =20 =20 /* interrupt.c */ -void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ile= n); +void trigger_pgm_exception(CPUS390XState *env, uint32_t code); void cpu_inject_clock_comparator(S390CPU *cpu); void cpu_inject_cpu_timer(S390CPU *cpu); void cpu_inject_emergency_signal(S390CPU *cpu, uint16_t src_cpu_addr); diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c index c252e9a7d8..e70c20d363 100644 --- a/target/s390x/excp_helper.c +++ b/target/s390x/excp_helper.c @@ -42,7 +42,7 @@ void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XSta= te *env, cpu_restore_state(cs, ra, true); qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", env->psw.addr); - trigger_pgm_exception(env, code, ILEN_UNWIND); + trigger_pgm_exception(env, code); cpu_loop_exit(cs); } =20 @@ -96,7 +96,7 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int s= ize, { S390CPU *cpu =3D S390_CPU(cs); =20 - trigger_pgm_exception(&cpu->env, PGM_ADDRESSING, ILEN_UNWIND); + trigger_pgm_exception(&cpu->env, PGM_ADDRESSING); /* On real machines this value is dropped into LowMem. Since this is userland, simply put this someplace that cpu_loop can find it. = */ cpu->env.__excp_addr =3D address; @@ -186,7 +186,8 @@ bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int= size, * and so unwinding will not occur. However, ILEN is also undefined * for that case -- we choose to set ILEN =3D 2. */ - trigger_pgm_exception(env, excp, 2); + env->int_pgm_ilen =3D 2; + trigger_pgm_exception(env, excp); cpu_loop_exit_restore(cs, retaddr); } =20 diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index 2b71e03914..4cdbbc8849 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -22,16 +22,13 @@ #endif =20 /* Ensure to exit the TB after this call! */ -void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ile= n) +void trigger_pgm_exception(CPUS390XState *env, uint32_t code) { CPUState *cs =3D env_cpu(env); =20 cs->exception_index =3D EXCP_PGM; env->int_pgm_code =3D code; - /* If ILEN_UNWIND, int_pgm_ilen already has the correct value. */ - if (ilen !=3D ILEN_UNWIND) { - env->int_pgm_ilen =3D ilen; - } + /* env->int_pgm_ilen is already set, or will be set during unwinding */ } =20 void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t r= a) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 09c74f17dd..90b81335f9 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -44,7 +44,7 @@ static void trigger_access_exception(CPUS390XState *env, = uint32_t type, if (type !=3D PGM_ADDRESSING) { stq_phys(cs->as, env->psa + offsetof(LowCore, trans_exc_code),= tec); } - trigger_pgm_exception(env, type, ILEN_UNWIND); + trigger_pgm_exception(env, type); } } =20 --=20 2.17.1 From nobody Sun Apr 28 22:25:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1569951577; cv=none; d=zoho.com; s=zohoarc; b=W0SqD7CXt4k8a5P3csXc9ZjcZTr25GgLe3h+nJ+Pp9ZeMxbdvAZoU2tBEiEHrnpVPXGmkXgQAFGVml3vPQZWusRzuNC6Vvk0CGv6D8bOaEnL8Az3SEUNSJm4KiRQyHE0D/tAiiKlPUoik1bMD+KFFTA8PVPIs4GWQ6DOmBKv5ZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569951577; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=nKLVZY0MmJdzh4WMbpWEWjNzr7fohAHeyzm16e0V7Wc=; b=RcureMQngDG/qOs7CX7XNccQy56yTPI0PNk4jvsYHy2dn1PAhSlhQVpZhkBi+ZWo+eqcPHw+3NtOGptqZ2bfb3vwq9vL/VHFTJhNn55IHjh2w5LTiF2UGKqdFrbUeZmP0o+kvMo9t3UKFyhNrfRMYqa14p/fMxILYi/HYPPWmKk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569951576967106.98583812242373; Tue, 1 Oct 2019 10:39:36 -0700 (PDT) Received: from localhost ([::1]:45904 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFM7b-00063e-Se for importer@patchew.org; Tue, 01 Oct 2019 13:39:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33000) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFLlS-0001ko-JU for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFLlR-0005eH-KG for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:42 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:46259) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFLlR-0005ds-3X for qemu-devel@nongnu.org; Tue, 01 Oct 2019 13:16:41 -0400 Received: by mail-pf1-x444.google.com with SMTP id q5so8453221pfg.13 for ; Tue, 01 Oct 2019 10:16:41 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id w7sm2863568pjn.1.2019.10.01.10.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Oct 2019 10:16:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=nKLVZY0MmJdzh4WMbpWEWjNzr7fohAHeyzm16e0V7Wc=; b=wDuebHO1XKx37+4/iaHNHFKeNDPhzc2A2AtCAMKTOUaR+hhynbW1Jckegee9dxxkiG 0ldbjFrYpk6dAyydLgY6bQ6Y5Aj4SyhKhPGlznK8KqwkrKZbY8uA83w7asN/Q2F69dWR 5QpdpLerLFT1/aRMMpbz5a0lDUhXkwuo0TcmQUhWyOvMa+CFT0g0qXtVy5/CptwMje/2 proSgqjF2kbTbeZepAaFQpBV/W3OviNAKKkbs/H6wzO0hMBiWzuPZNl+CwF2lEpfoEC3 Eae34/JC6YjE67PzOvCv8Kyc+h3hCPSYPMatJIcx1EJOZGSsJnOSv2jbMdDLiiZSlr0e lUDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=nKLVZY0MmJdzh4WMbpWEWjNzr7fohAHeyzm16e0V7Wc=; b=JnERuUv/fqpWYLIy1pu8Yh8If7BoxjEpoFVBBXXrbI3gBPpuaiFO2vzuCFV561sc4U StBg2ix3SWcGYEQMe34rlK8NsgeUbITG9ydmlnz1xuprGCNUM9x55dA8qXybbsBKhZh+ hQgeHGHKzHgAP2uIPFOVK7sdpC4HeUgGknnmVJZJIwjt8d4XYbwp5jm4uR4Jli/DLhIN Z7WQDmatXmGoOgEFX92CJtNBLXJbTGyFzKV+tn/WW740+m9+YnmXph+kC4PonqyF5hKy 4ynX1B+q9Lv6ys6qT6sFrsOA2lFqZ+5owf+vXfmQGc01FR9l75a+kdzRA8bn4F+OzKNt hWMg== X-Gm-Message-State: APjAAAXUe6vSDHEl3AGBXkYrdbsb3A1DwZvmV8yRBhNBtBMHf3mSZYnF b7RrCIb8/owDBPpSOfadu61RKGKziyE= X-Google-Smtp-Source: APXvYqxvhEbbZQTqJhd6yhxmx33/abIphzYiJCc2eKa6B2yIhG/FIqVazU97CrGVhbb3tLARoC/O/A== X-Received: by 2002:a63:364d:: with SMTP id d74mr31917924pga.416.1569950199704; Tue, 01 Oct 2019 10:16:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v5 18/18] target/s390x: Remove ILEN_UNWIND Date: Tue, 1 Oct 2019 10:16:14 -0700 Message-Id: <20191001171614.8405-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001171614.8405-1-richard.henderson@linaro.org> References: <20191001171614.8405-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::444 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This setting is no longer used. Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index e7a9a58e0f..17460ed7b3 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -804,8 +804,6 @@ int cpu_s390x_signal_handler(int host_signum, void *pin= fo, void *puc); void s390_crw_mchk(void); void s390_io_interrupt(uint16_t subchannel_id, uint16_t subchannel_nr, uint32_t io_int_parm, uint32_t io_int_word); -/* instruction length set by unwind info */ -#define ILEN_UNWIND 0 #define RA_IGNORED 0 void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t r= a); /* service interrupts are floating therefore we must not pass an cpustate = */ --=20 2.17.1