From nobody Tue Oct 28 12:15:21 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 151493696459450.94178750121932; Tue, 2 Jan 2018 15:49:24 -0800 (PST) Received: from localhost ([::1]:59646 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWWJ6-00050C-2b for importer@patchew.org; Tue, 02 Jan 2018 18:49:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52412) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWWBT-00079G-Ms 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 1eWWBR-0003AD-QC for qemu-devel@nongnu.org; Tue, 02 Jan 2018 18:41:27 -0500 Received: from mout.kundenserver.de ([212.227.126.134]:62312) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWWBR-00039m-Go for qemu-devel@nongnu.org; Tue, 02 Jan 2018 18:41:25 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue005 [212.227.15.167]) with ESMTPSA (Nemesis) id 0Lm8VZ-1f68381ELx-00ZcGa; Wed, 03 Jan 2018 00:41:23 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Wed, 3 Jan 2018 00:41:03 +0100 Message-Id: <20180102234108.32713-13-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:Xnpd3ftKmGz7MmFNA7Vdifw6kpiVphRQAnUnb69ARRtOsT4dh/m hM46u/3SFQeIyRKAC5bKxOIbDOaoceTh7GLDafyB7Ni1a4liCJV20rVuyZ4JbxOJsJxdil8 RZwBArOiJK0tOQXYOqeshmK7lHIyQ2IIMTqrRPRD8usswQ+Mu96JIJY0r2hufUZPVDBPoLu ZK0pQWmUF19dcYJO2h5Jw== X-UI-Out-Filterresults: notjunk:1;V01:K0:C1Y4zgiI0SE=:hqLNVI04whHwqxX33Miw42 JvoYzX5+Em3qnLwqTfcZCqfIebBikJ0kz3I6/t2inFosu6wGXez6QW059cm+rqfl+hhQq8804 NnAM0+az2EAxpJAUHeE/0K4By2R2OtdWH215cOKXg6rvTl0SmaGxqaAdJYBJfEOiINwDynhn5 hpW8Xo+9CUoQuqbKaWrj7S2keTYCjnOM1kXEM0hdJWZv8NZOMI/XC9Q9Mvw5G6xBFOxX8xwHv iWzenrq1F5QYZwX8KRKao/h9qz7nWxea2E4FJ4YNTACTgjnNhtTimwlucLuibETyDf5mZYErk wN/F3/IhbvxCzPe98ix+Ay32CJZZ0jO7+m1f/wGvQZa8m792cUXTe28QsTOkegbXhwX4f51LE izrDCLCoTNq4D/Lut9zBpd7snmTaueWqF1gJPg3JU0zizf+tVBxqT4oB+Dze1pigH13P5L5gL 8ZxBV+cVpXsgBgPof1+Yj0g4kwyIH8VVwj0YkZNYSpiORPDfGiI99dTpvd8kxY2oSRA3Hf2HE r1aErQw4/xddBxGI+71lo/a0KteOyv3PKZ8rJu36l/Il4jzwt2iL7ogXJ34eSTxXYxbbMEutm L/dY3Uo5tuJthTzzbuUl9xyQrGbP6yNo7LHcQ8v5Db5/zr8W9FvVEn4tXWVFEVkAs2cCyKKSe WzC8sifBkdIlJdWgxBNOrX/1ng/qg/It5U6z2NpBToV/nle9OYoQV7pBAFKN4hEJMfjcQdkxY qvour2oLpbQwj++Sxl2IqIxUM/l/hrlk0uMXnA== 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 12/17] target/m68k: implement fsave/frestore 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" Signed-off-by: Laurent Vivier Reviewed-by: Richard Henderson --- target/m68k/translate.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 69bd347a70..baaa260875 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5104,28 +5104,35 @@ DISAS_INSN(fscc) #if defined(CONFIG_SOFTMMU) DISAS_INSN(frestore) { - M68kCPU *cpu =3D m68k_env_get_cpu(env); + TCGv addr; =20 if (IS_USER(s)) { gen_exception(s, s->insn_pc, EXCP_PRIVILEGE); return; } - - /* TODO: Implement frestore. */ - cpu_abort(CPU(cpu), "FRESTORE not implemented"); + if (m68k_feature(s->env, M68K_FEATURE_M68040)) { + SRC_EA(env, addr, OS_LONG, 0, NULL); + /* FIXME: check the state frame */ + } else { + disas_undef(env, s, insn); + } } =20 DISAS_INSN(fsave) { - M68kCPU *cpu =3D m68k_env_get_cpu(env); - if (IS_USER(s)) { gen_exception(s, s->insn_pc, EXCP_PRIVILEGE); return; } =20 - /* TODO: Implement fsave. */ - cpu_abort(CPU(cpu), "FSAVE not implemented"); + if (m68k_feature(s->env, M68K_FEATURE_M68040)) { + /* always write IDLE */ + TCGv idle =3D tcg_const_i32(0x41000000); + DEST_EA(env, insn, OS_LONG, idle, NULL); + tcg_temp_free(idle); + } else { + disas_undef(env, s, insn); + } } #endif =20 --=20 2.14.3