m68k: implement move to/from usp register instruction

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 <gerg@uclinux.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Tested-by: Laurent Vivier <laurent@vivier.eu>
Message-id: 1434721406-25288-3-git-send-email-gerg@uclinux.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Greg Ungerer 2015-06-19 23:43:25 +10:00 committed by Peter Maydell
parent 8c52f0cbba
commit 2a8327e8a8

View File

@ -1995,8 +1995,8 @@ DISAS_INSN(move_from_usp)
gen_exception(s, s->pc - 2, EXCP_PRIVILEGE); gen_exception(s, s->pc - 2, EXCP_PRIVILEGE);
return; return;
} }
/* TODO: Implement USP. */ tcg_gen_ld_i32(AREG(insn, 0), cpu_env,
gen_exception(s, s->pc - 2, EXCP_ILLEGAL); offsetof(CPUM68KState, sp[M68K_USP]));
} }
DISAS_INSN(move_to_usp) DISAS_INSN(move_to_usp)
@ -2005,8 +2005,8 @@ DISAS_INSN(move_to_usp)
gen_exception(s, s->pc - 2, EXCP_PRIVILEGE); gen_exception(s, s->pc - 2, EXCP_PRIVILEGE);
return; return;
} }
/* TODO: Implement USP. */ tcg_gen_st_i32(AREG(insn, 0), cpu_env,
gen_exception(s, s->pc - 2, EXCP_ILLEGAL); offsetof(CPUM68KState, sp[M68K_USP]));
} }
DISAS_INSN(halt) DISAS_INSN(halt)