diff options
author | Laurent Vivier <laurent@vivier.eu> | 2016-10-28 20:42:23 +0200 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2016-12-27 18:16:42 +0100 |
commit | 0ccb9c1d8128a020720d5c6abf99a470742a1b94 (patch) | |
tree | 912612d600490ef4a0e22d9f365ce2f6b784d0a6 /linux-user | |
parent | 8be95defd6ab10d2c9f986879a0afa82417cb8e5 (diff) |
target-m68k: add 680x0 divu/divs variants
Update helper to set the throwing location in case of div-by-0.
Cleanup divX.w and add quad word variants of divX.l.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <rth@twidle.net>
[laurent: modified to clear Z on overflow, as found with risu]
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index 75b199f274..c1d5eb4d6f 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -2864,6 +2864,13 @@ void cpu_loop(CPUM68KState *env) info._sifields._sigfault._addr = env->pc; queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); break; + case EXCP_DIV0: + info.si_signo = TARGET_SIGFPE; + info.si_errno = 0; + info.si_code = TARGET_FPE_INTDIV; + info._sifields._sigfault._addr = env->pc; + queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + break; case EXCP_TRAP0: { abi_long ret; |