Mercurial > repos > simple16
changeset 36:5683d9ba9acc
Fix call instruction for the case in which A reg == DST reg
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 03 Apr 2016 21:27:03 -0700 |
parents | 5a5e02d1acf1 |
children | 44c057a640b2 |
files | src/cpu.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu.c Sun Apr 03 20:51:23 2016 -0700 +++ b/src/cpu.c Sun Apr 03 21:27:03 2016 -0700 @@ -307,8 +307,9 @@ update_flags_arith(context, tmp); return; case CALL: - context->regs[dst] = context->regs[REG_PC] - 2; + tmp = context->regs[REG_PC] - 2; context->regs[REG_PC] = context->regs[a]; + context->regs[dst] = tmp; context->state = STATE_NEED_FETCH; return; case SWAP: