From nobody Tue Oct 28 12:14:02 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 1514856307580902.3296778697294; Mon, 1 Jan 2018 17:25:07 -0800 (PST) Received: from localhost ([::1]:51077 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWBKE-0004O7-Rb for importer@patchew.org; Mon, 01 Jan 2018 20:25:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36120) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWB6L-0001Y4-Kr 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-000570-IS for qemu-devel@nongnu.org; Mon, 01 Jan 2018 20:10:45 -0500 Received: from mout.kundenserver.de ([212.227.126.131]:53606) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWB6I-00055Z-73 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 0Lwioi-1eyZzM13GK-016LlL; Tue, 02 Jan 2018 02:10:40 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 2 Jan 2018 02:10:27 +0100 Message-Id: <20180102011032.30056-13-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:2p13maU8BJZGU1InoTO0qQTpaQBgD3aEcGDEm5Btt5WRguD0ObI XVV3MyWFd22LKc+eaOQzXQll9Q4XDpMi2QQRGM2LTiZ1eY8maCpeQ5unt86zd0JH/CyESgd KNmBjsYfViCpjxVstzC19FVYIPzS5aUyGBrco+yZ7JYuDyBAmgjfnzHZltyEyv1MJ3HqjDm +zTWpuM2657btkmy/JMZQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:SYevzjnk+7Y=:jUzUL+DUmwH0jBPkWKwLV+ okniGxJ9X/6qbJ90zmwvleOGu6mkkXNjFmElVmyeaDEEpNbieHXOkKNslWdgODkjR8N6em1IG goDdg7QsJv8tHLPw0sgD16ZTOvWRAaNfFZ8knpvcAtTDk+1iV7ZDf/bO4XZyDFyD5s/EbmgCF T6CtDl7X4M2d26dEZTeLzjvNdamlyyN9iBkraE/3IPpjW5ZGfWMZayhASjNt/M5Dk3updsGUW 9brQA/K4Wb1auptxzYKWzG/Kkw7dN7mDfBk97g70xiCGFsE3FI1qKaaaO46uE8jL2axqJc7d6 wV3qxo6b8LjjZOCrWaAbbH4GIHZPjLl4s/uKzGwVQqlScwiJi9VdtxA2lFb2bFxgJPx5MdEus uzDfcl/+PS6tzAMw7FzsVsDVIrN+dw5xkEzxcDytd7CblnziH9CsPiSCez0iC4owSrBGBT1cE tHT+jTr9Y7SSkCWym/EvHz85N6Hen58yrXigTxNcLkaXRUuTiS4NCaFK8ko9APsFvzkNFHu40 ZzFao7bAdboHlcaM2qn6MwnOflJz7IUyw7psjfIwhAnIsF/YNdsxhktV5TOKB9AeIynjTn5Ze AGmBrMugl+rFtONZiKYgb2C/NyBnqRbm4QjjI0/I0o+Wzogi6Cbt83wBiBpJFJ/lbubWEyF5Z XRfhCBCDKNrVnHZXFqMtccUdqt1xXKwdYTbX2ujSgQIULcGEYJ2T8goqWW/tP5iu3RKltRpIe QkCSSPPWfwrtuoJJVRkQPesOXvMWfkg4oVk3Xg== 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 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 , 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 68b67bc0a3..4fced68ceb 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5165,28 +5165,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