comparison m68k_to_x86.c @ 187:8e138da572ab

Fix return address for areg displacement mode JSR
author Mike Pavone <pavone@retrodev.com>
date Sun, 13 Jan 2013 23:06:26 -0800
parents ebcbdd1c4cc8
children 062e3aa549eb
comparison
equal deleted inserted replaced
186:02e25abe2dcd 187:8e138da572ab
1998 dst = jmp_r(dst, SCRATCH1); 1998 dst = jmp_r(dst, SCRATCH1);
1999 } 1999 }
2000 break; 2000 break;
2001 case MODE_AREG_DISPLACE: 2001 case MODE_AREG_DISPLACE:
2002 dst = cycles(dst, BUS*2); 2002 dst = cycles(dst, BUS*2);
2003 dst = mov_ir(dst, inst->address + 2, SCRATCH1, SZ_D); 2003 dst = mov_ir(dst, inst->address + 4, SCRATCH1, SZ_D);
2004 if (opts->flags & OPT_NATIVE_CALL_STACK) { 2004 if (opts->flags & OPT_NATIVE_CALL_STACK) {
2005 dst = push_r(dst, SCRATCH1); 2005 dst = push_r(dst, SCRATCH1);
2006 } 2006 }
2007 dst = sub_ir(dst, 4, opts->aregs[7], SZ_D); 2007 dst = sub_ir(dst, 4, opts->aregs[7], SZ_D);
2008 dst = mov_rr(dst, opts->aregs[7], SCRATCH2, SZ_D); 2008 dst = mov_rr(dst, opts->aregs[7], SCRATCH2, SZ_D);