Compare commits

...

2 Commits

2 changed files with 2 additions and 2 deletions

View File

@ -356,7 +356,7 @@ struct imm_ret_t *parse_immediate(char* str,struct assembler_context_t *assemble
struct label_ll_t *search=assembler_context->label_ll; struct label_ll_t *search=assembler_context->label_ll;
while(search){ while(search){
if(strncmp(str,search->name,len)==0){ if(strncmp(str,search->name,len)==0&&search->name[len]==0){
if(select==1) if(select==1)
imm_ret->value=search->address>>16; imm_ret->value=search->address>>16;
else if(select==2) else if(select==2)

2
cpu.c
View File

@ -384,7 +384,7 @@ int exec(struct simdata_t *simdata){
case RET: case RET:
simdata->exec_data->cycles_left=delay_values[CALL_RET_INDX]; simdata->exec_data->cycles_left=delay_values[CALL_RET_INDX];
simdata->registers->SP-=4; simdata->registers->SP-=4;
simdata->registers->PC=simdata->RAM[simdata->registers->SP]; simdata->registers->PC=*(uint32_t*)(simdata->RAM+simdata->registers->SP);
break; break;
case EXEC_ALU: case EXEC_ALU:
if( simdata->exec_data->in_op1->OP_ADDR==REGISTER && if( simdata->exec_data->in_op1->OP_ADDR==REGISTER &&