From nobody Tue Oct 28 12:15:23 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514855577453907.2826319714425; Mon, 1 Jan 2018 17:12:57 -0800 (PST) Received: from localhost ([::1]:50738 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWB8P-0002nY-8H for importer@patchew.org; Mon, 01 Jan 2018 20:12:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36118) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWB6L-0001Y1-L1 for qemu-devel@nongnu.org; Mon, 01 Jan 2018 20:10:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWB6I-00056q-9P for qemu-devel@nongnu.org; Mon, 01 Jan 2018 20:10:45 -0500 Received: from mout.kundenserver.de ([212.227.126.131]:57888) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWB6H-00055H-VO for qemu-devel@nongnu.org; Mon, 01 Jan 2018 20:10:42 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MSmNI-1eORMB3Tro-00RVhf; Tue, 02 Jan 2018 02:10:40 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 2 Jan 2018 02:10:26 +0100 Message-Id: <20180102011032.30056-12-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102011032.30056-1-laurent@vivier.eu> References: <20180102011032.30056-1-laurent@vivier.eu> X-Provags-ID: V03:K0:Z8Z2tR/2UFo2RIDtRT+Is5nHgJ2y53Hc5302d7B0VHuEFpuOjki klEJejdiPwGoRC4rP7CRX6Rp00wpY4NHIeK/SNkHhVGANSAJcdQzKAltsuC2J70+RGPqrV4 45PLoI2dGhaXyXoC9DnHLBA0uTV2caGdRIpNBG+xJTJWgs+XYCI+6g0spni2bVjsXPsItr1 zcVktSbpt13vqAY1jjcJQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:ToLmmiuCKMw=:1mUlhpZdXjncBCM7t6D9PT NInuovNphYHpiFm4Y0XSjEQ0+17YI/bJU/XkECEJjVVw+lbCaIx12FZCqMrC/IsASDh/BmTih Y3Zm9AS4fMH5EiCDUDuDapvjw9KA0TCsaVM8sE+U0pcldZ/I+Ew0ZFVcREz8u0LBdPlH4ywC2 8YBPhjZ5VPIcGu+9PJK2WUfPPr7hRAlUgQJYDK/+hSJ0+dtFf5O8PEsLjB/vHAxlWNmfmf22h QuLXvjcTa0NpLmLAg1BUX6Xo6pA2sb1KnlqP1yq1zriGQsAjEZp68uFQLiMHnUcM+GQWUUqBs tB/WybbS1TtAJFjqwZECNd+0kGBKtgg+s8dDk3sdXnlE7OFuNxXg3pkZCJFr0pEpZB+p1W/96 gPCLhxcWLsPMqzIIOI23IHM2TKemwezQU6uTnEyg4MjFVpA7HLhHb687TXzs4qSba06sdtvWO rILkoUpoief+OdksgpYFokI7km5h0ZLEXre6HCz64usYYuYT+a/k73Ewd932U/fSWgy2Yd5x/ bip5MEJUBO1ieIKazqIxkgDLz370Tw5CPi7uvs5Y88OLQ4PNhawfpOmG3i/n0I+j9/USlvxDM QpfDkwp6eVBSYd6asvIftR4rWTYH92UG8NZxDt3kdiyLkwoPkkt1ENn8aYmb96EkBrkRd3Lt6 EYS3lhR+3yg9liRbwDQufPDChe/TX1F6Za4veesvRHwwDJ11qiPuTZ6mH1+28j5CWF5lZdkz8 z3zxuZ6Tc9fL7TfMhu3q1OEKUvHKVDLU/BDDvw== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.131 Subject: [Qemu-devel] [PATCH v5 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 , 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 7e50ff5871..f8bd456145 100644 --- a/target/m68k/helper.c +++ b/target/m68k/helper.c @@ -707,3 +707,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 eebe52dae5..8d0cad7c6b 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -94,3 +94,7 @@ DEF_HELPER_FLAGS_4(bfchg_mem, TCG_CALL_NO_WG, i32, env, i= 32, s32, i32) DEF_HELPER_FLAGS_4(bfclr_mem, TCG_CALL_NO_WG, i32, env, i32, s32, i32) DEF_HELPER_FLAGS_4(bfset_mem, TCG_CALL_NO_WG, i32, env, i32, s32, i32) DEF_HELPER_FLAGS_4(bfffo_mem, TCG_CALL_NO_WG, i64, env, i32, s32, i32) + +#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 2a9a9c8e42..68b67bc0a3 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) { } @@ -5634,6 +5646,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