# HG changeset patch # User Michael Pavone # Date 1459744023 25200 # Node ID 5683d9ba9acc4e189504d7b9a06873d1ff7e0e97 # Parent 5a5e02d1acf10ce37e25859b6d7a54f4382ff27f Fix call instruction for the case in which A reg == DST reg diff -r 5a5e02d1acf1 -r 5683d9ba9acc src/cpu.c --- 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: