From nobody Tue Oct 28 04:13:16 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514937044570310.6231198626166; Tue, 2 Jan 2018 15:50:44 -0800 (PST) Received: from localhost ([::1]:59666 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWWKR-00062J-GZ for importer@patchew.org; Tue, 02 Jan 2018 18:50:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWWBT-00079H-NP for qemu-devel@nongnu.org; Tue, 02 Jan 2018 18:41:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWWBQ-00039u-VT for qemu-devel@nongnu.org; Tue, 02 Jan 2018 18:41:27 -0500 Received: from mout.kundenserver.de ([212.227.126.134]:51142) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWWBQ-00039U-LS for qemu-devel@nongnu.org; Tue, 02 Jan 2018 18:41:24 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue005 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MUAFy-1eONFY0aFm-00R3Xr; Wed, 03 Jan 2018 00:41:22 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Wed, 3 Jan 2018 00:41:02 +0100 Message-Id: <20180102234108.32713-12-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102234108.32713-1-laurent@vivier.eu> References: <20180102234108.32713-1-laurent@vivier.eu> X-Provags-ID: V03:K0:9cI6W+rv80IYXsv+fu/Wkga5EqHwQY+dKUFKu3GQatxv9Mb+OFS ONICCUhY3blNloBDJge43B4Q94XUuJnOHRNzkzmyUD+pRx/Mp+4pFqT8Ro4hk91fiPSvptE 9SerWJppqqi00fDB/S8Ad12oLr8BnRkSCLb4AaWerfuPg5QF1QxQEZU3ssuzZuh+izTWerF CvwsUrsQV0DJ4LEl12IvA== X-UI-Out-Filterresults: notjunk:1;V01:K0:EHNHBMUeXEg=:1eeHqFYWx0dkWdn79Q0nTv SgyKKa05QgwXZnLpZS4/j5A1mcCibOorW1bXEqcxlu15K3YmF80QV7xzTGu275Q9t450fXfUI XJSfT2GqwJDKhT8a8clPMeVIUR6yf6o57lqVr3LLNOqGwwj2tB9HqdRr5SQqXvZwFXO16QOWK KVPnO4Dov13iq/ijn/X3BIWy0gDbjdZ+raW1Z+F/lX8MJsxe1qtiDVup4KW56tB8RoEkFw6kG YzuKjc/Bkepfb0NNz0QKsIiG/06iXbyOPL737aPugaetEtcNYkptw9Ym/dAaQU4e/hQHhkvWz Y4DuyscCUPo2tHMnBtApGy2pfLxIeechlmfawU4IQYiNwTlrmCLjC5ydK+Ef5pEltgQrxRsQz mo4KJfWal/UyDdn2Tu3JctmSjVBACbdOUdD1bvB5Zga3fd0wNMoMX1zw71iRX75HvcePeQ2cn 1CfQfyrEKOuVPetALumwWzx/H7VNXYoW7Y35Vtx5p66OJ//7et/kLoFz/q2hi9vb9ZtXTsZrD R+IYxA6PIuLST6oqDYJbezw6oEgEe9nFb8AR9qrw94u5cPdN5EH+QL1TEXUcI2vRR4qLyIE+/ wnXvMN4YL7Vr5oWDCoGcnNzPyW+JFobKzhYHr84kg79QiPIgspnyhdX5qAQuJRqvAycNA3o8D m7rbyb57sLU1kQPe9kUFHdZmLJAN6qOZcEVMPr1u15VizoZTvHl8kAFC2n0I6LDdOYKhOX41u yEsBnPcbyD5eYqX5clTXGdCV5dAHmOZ4azIfJw== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.134 Subject: [Qemu-devel] [PATCH v6 11/17] target/m68k: add reset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The instruction traps if the CPU is not in Supervisor state but the helper is empty because there is no easy way to reset all the peripherals without resetting the CPU itself. Signed-off-by: Laurent Vivier Reviewed-by: Richard Henderson --- target/m68k/helper.c | 7 +++++++ target/m68k/helper.h | 4 ++++ target/m68k/translate.c | 13 +++++++++++++ 3 files changed, 24 insertions(+) diff --git a/target/m68k/helper.c b/target/m68k/helper.c index af57ffcea9..52b054e1a3 100644 --- a/target/m68k/helper.c +++ b/target/m68k/helper.c @@ -711,3 +711,10 @@ void HELPER(set_mac_extu)(CPUM68KState *env, uint32_t = val, uint32_t acc) res |=3D (uint64_t)(val & 0xffff0000) << 16; env->macc[acc + 1] =3D res; } + +#if defined(CONFIG_SOFTMMU) +void HELPER(reset)(CPUM68KState *env) +{ + /* FIXME: reset all except CPU */ +} +#endif diff --git a/target/m68k/helper.h b/target/m68k/helper.h index 78483da003..d27ea37d60 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -97,3 +97,7 @@ DEF_HELPER_FLAGS_4(bfffo_mem, TCG_CALL_NO_WG, i64, env, i= 32, s32, i32) =20 DEF_HELPER_3(chk, void, env, s32, s32) DEF_HELPER_4(chk2, void, env, s32, s32, s32) + +#if defined(CONFIG_SOFTMMU) +DEF_HELPER_FLAGS_1(reset, TCG_CALL_NO_RWG, void, env) +#endif diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 75be38973e..69bd347a70 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -2762,6 +2762,18 @@ DISAS_INSN(unlk) tcg_temp_free(src); } =20 +#if defined(CONFIG_SOFTMMU) +DISAS_INSN(reset) +{ + if (IS_USER(s)) { + gen_exception(s, s->insn_pc, EXCP_PRIVILEGE); + return; + } + + gen_helper_reset(cpu_env); +} +#endif + DISAS_INSN(nop) { } @@ -5573,6 +5585,7 @@ void register_m68k_insns (CPUM68KState *env) #if defined(CONFIG_SOFTMMU) INSN(move_to_usp, 4e60, fff8, USP); INSN(move_from_usp, 4e68, fff8, USP); + INSN(reset, 4e70, ffff, M68000); BASE(stop, 4e72, ffff); BASE(rte, 4e73, ffff); INSN(movec, 4e7b, ffff, CF_ISA_A); --=20 2.14.3