changeset 732:61467483eb31

Fix div instruction when dest is d0 in 32-bit build
author Michael Pavone <pavone@retrodev.com>
date Mon, 25 May 2015 13:21:24 -0700
parents 0835cd3dfc36
children fbda8e865dae
files m68k_core_x86.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/m68k_core_x86.c	Sun May 24 21:11:18 2015 -0700
+++ b/m68k_core_x86.c	Mon May 25 13:21:24 2015 -0700
@@ -1698,8 +1698,13 @@
 	}
 	cmp_ir(code, 0, RAX, SZ_W);
 	pop_r(code, RAX);
-	pop_r(code, RDX);
-	update_flags(opts, V0|Z|N);
+	if (dst_op->base == RDX) {
+		update_flags(opts, V0|Z|N);
+		add_ir(code, sizeof(void *), RSP, SZ_D);
+	} else {
+		pop_r(code, RDX);
+		update_flags(opts, V0|Z|N);
+	}
 	code_ptr end_off = code->cur + 1;
 	jmp(code, code->cur + 2);
 	*norm_off = code->cur - (norm_off + 1);