diff --git a/cpu.c b/cpu.c index 1a3140e..aea391b 100644 --- a/cpu.c +++ b/cpu.c @@ -384,7 +384,7 @@ int exec(struct simdata_t *simdata){ case RET: simdata->exec_data->cycles_left=delay_values[CALL_RET_INDX]; simdata->registers->SP-=4; - simdata->registers->PC=simdata->RAM[simdata->registers->SP]; + simdata->registers->PC=*(uint32_t*)(simdata->RAM+simdata->registers->SP); break; case EXEC_ALU: if( simdata->exec_data->in_op1->OP_ADDR==REGISTER &&