changeset 1323:c9dc2603b087

Fixed timing for RTS and RTE
author Michael Pavone <pavone@retrodev.com>
date Thu, 20 Apr 2017 22:28:58 -0700
parents b1423d432c0e
children 2fc444b69351
files m68k_core.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/m68k_core.c	Tue Apr 18 19:27:10 2017 -0700
+++ b/m68k_core.c	Thu Apr 20 22:28:58 2017 -0700
@@ -305,10 +305,10 @@
 static void translate_m68k_rts(m68k_options * opts, m68kinst * inst)
 {
 	code_info *code = &opts->gen.code;
-	//TODO: Add cycles
 	areg_to_native(opts, 7, opts->gen.scratch1);
 	addi_areg(opts, 4, 7);
 	call(code, opts->read_32);
+	cycles(&opts->gen, 2*BUS);
 	call(code, opts->native_addr);
 	jmp_r(code, opts->gen.scratch1);
 }
@@ -626,6 +626,7 @@
 	call(code, opts->read_32);
 	addi_areg(opts, 4, 7);
 	check_user_mode_swap_ssp_usp(opts);
+	cycles(&opts->gen, 2*BUS);
 	//Get native address, sync components, recalculate integer points and jump to returned address
 	call(code, opts->native_addr_and_sync);
 	jmp_r(code, opts->gen.scratch1);