# HG changeset patch # User Michael Pavone # Date 1492752538 25200 # Node ID c9dc2603b0876407304f1350da0d935caacb91a2 # Parent b1423d432c0e5d1573832bd6b2b54f138b74a754 Fixed timing for RTS and RTE diff -r b1423d432c0e -r c9dc2603b087 m68k_core.c --- 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);