aboutsummaryrefslogtreecommitdiff
path: root/linux-user/main.c
diff options
context:
space:
mode:
authorLaurent Vivier <laurent@vivier.eu>2016-10-28 20:42:23 +0200
committerLaurent Vivier <laurent@vivier.eu>2016-12-27 18:16:42 +0100
commit0ccb9c1d8128a020720d5c6abf99a470742a1b94 (patch)
tree912612d600490ef4a0e22d9f365ce2f6b784d0a6 /linux-user/main.c
parent8be95defd6ab10d2c9f986879a0afa82417cb8e5 (diff)
downloadqemu-0ccb9c1d8128a020720d5c6abf99a470742a1b94.zip
qemu-0ccb9c1d8128a020720d5c6abf99a470742a1b94.tar.gz
qemu-0ccb9c1d8128a020720d5c6abf99a470742a1b94.tar.bz2
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/main.c')
-rw-r--r--linux-user/main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/linux-user/main.c b/linux-user/main.c
index 75b199f..c1d5eb4 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;