diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2022-09-25 14:48:04 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2022-09-26 23:37:22 +0200 |
commit | b342e56b23dc2a0a1f30e21d67d001a1d0befbf0 (patch) | |
tree | 3395f62377c7011cd3791c63824a7db0361d5cc4 /target/m68k/translate.c | |
parent | 2dc7bf63cf77d23b287c8d78628d62046fba1bf4 (diff) |
target/m68k: use M68K_FEATURE_MOVEFROMSR_PRIV feature for move_from_sr privilege check
Now that M68K_FEATURE_M68000 has been renamed to M68K_FEATURE_M68K it is easier
to see that the privilege exception check is wrong: it is currently only generated
for ColdFire CPUs when in fact it should also be generated for Motorola CPUs from
the 68010 onwards.
Introduce a new M68K_FEATURE_MOVEFROMSR_PRIV feature which is set for all non-
Motorola CPUs, and for all Motorola CPUs from the 68010 onwards and use it to
determine whether a privilege exception should be generated for the MOVE-from-SR
instruction.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220925134804.139706-3-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'target/m68k/translate.c')
-rw-r--r-- | target/m68k/translate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 233b9d8e57..9df17aa4b2 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4624,7 +4624,7 @@ DISAS_INSN(move_from_sr) { TCGv sr; - if (IS_USER(s) && !m68k_feature(env, M68K_FEATURE_M68K)) { + if (IS_USER(s) && m68k_feature(env, M68K_FEATURE_MOVEFROMSR_PRIV)) { gen_exception(s, s->base.pc_next, EXCP_PRIVILEGE); return; } |