Mercurial > repos > blastem
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); |