diff --git a/src/intermediate_code.c b/src/intermediate_code.c index 38cbe10..c1e5980 100644 --- a/src/intermediate_code.c +++ b/src/intermediate_code.c @@ -100,6 +100,8 @@ void emit_function_call(char* result, char* name){ } void emit_return(char* value){ emit_helper(); + current->opcode = RETURN; + current->operand1 = look_up(cur, name); return; } void emit_reserve(char* result, char* type_name, int size){ diff --git a/src/intermediate_code.h b/src/intermediate_code.h index 464d331..499d4c3 100644 --- a/src/intermediate_code.h +++ b/src/intermediate_code.h @@ -29,8 +29,10 @@ typedef enum { CGOTO, // 5 LESSTHEN, // 6 rule 1 + 5 EQUALTO, // 6 rule 1 + 5 + CALL, // 7 PARAM, // 7 - CALL // 7 + RETURN // 7 + } Op; typedef struct Instruction {