From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5wZe-0001Nl-Dm for qemu-devel@nongnu.org; Fri, 19 Jun 2015 09:43:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z5wZa-00074q-2I for qemu-devel@nongnu.org; Fri, 19 Jun 2015 09:43:14 -0400 Received: from nskntmtas06p.mx.bigpond.com ([61.9.168.152]:46374) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5wZZ-00072n-Kx for qemu-devel@nongnu.org; Fri, 19 Jun 2015 09:43:09 -0400 From: gerg@uclinux.org Date: Fri, 19 Jun 2015 23:43:25 +1000 Message-Id: <1434721406-25288-3-git-send-email-gerg@uclinux.org> In-Reply-To: <1434721406-25288-1-git-send-email-gerg@uclinux.org> References: <1434721406-25288-1-git-send-email-gerg@uclinux.org> Subject: [Qemu-devel] [PATCH v2 2/3] m68k: implement move to/from usp register instruction List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, Greg Ungerer From: Greg Ungerer Fill out the code support for the move to/from usp instructions. They are being decoded, but there is no code to support there actions. So add it. Current versions of Linux running on the ColdFire 5208 use these instructions. Signed-off-by: Greg Ungerer Reviewed-by: Richard Henderson --- target-m68k/translate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 4959b97..96d75bf 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -1995,8 +1995,8 @@ DISAS_INSN(move_from_usp) gen_exception(s, s->pc - 2, EXCP_PRIVILEGE); return; } - /* TODO: Implement USP. */ - gen_exception(s, s->pc - 2, EXCP_ILLEGAL); + tcg_gen_ld_i32(AREG(insn, 0), cpu_env, + offsetof(CPUM68KState, sp[M68K_USP])); } DISAS_INSN(move_to_usp) @@ -2005,8 +2005,8 @@ DISAS_INSN(move_to_usp) gen_exception(s, s->pc - 2, EXCP_PRIVILEGE); return; } - /* TODO: Implement USP. */ - gen_exception(s, s->pc - 2, EXCP_ILLEGAL); + tcg_gen_st_i32(AREG(insn, 0), cpu_env, + offsetof(CPUM68KState, sp[M68K_USP])); } DISAS_INSN(halt) -- 1.9.1