diff options
Diffstat (limited to 'src/compiler/code-generator.h')
-rw-r--r-- | src/compiler/code-generator.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h index 0c388b9..3399ee3 100644 --- a/src/compiler/code-generator.h +++ b/src/compiler/code-generator.h @@ -9,13 +9,9 @@ typedef enum CodeGeneratorInstruction : uint8_t { CODE_GENERATOR_INSTRUCTION_CALL, CODE_GENERATOR_INSTRUCTION_RET, CODE_GENERATOR_INSTRUCTION_DEF_VAR64, - CODE_GENERATOR_INSTRUCTION_MOV_64, + CODE_GENERATOR_INSTRUCTION_MOV, } CodeGeneratorInstruction; -typedef enum CodeGeneratorType : uint8_t { - CODE_GENERATOR_TYPE_64, -} CodeGeneratorType; - typedef struct CodeGeneratorCode { char *label_begin; char *label_end; @@ -41,11 +37,17 @@ typedef struct CodeGeneratorDoubleOperand { CodeGeneratorOperand op1; } CodeGeneratorDoubleOperand; +typedef struct CodeGeneratorMov { + CodeGeneratorOperand op0; + CodeGeneratorOperand op1; + size_t bytes; +} CodeGeneratorMov; + typedef struct CodeGeneratorDefine { char *label_begin; char *label_end; CodeGeneratorOperand operand; - CodeGeneratorType type; + size_t bytes; } CodeGeneratorDefine; typedef struct CodeGeneratorCodes { @@ -68,8 +70,8 @@ CodeGeneratorCode createGenerateCode(char *label_begin, char *label_end, void *metadata); CodeGeneratorDefine createGenerateDefine(char *label_begin, char *label_end, - CodeGeneratorOperand operand, - CodeGeneratorType type); + CodeGeneratorOperand operand, + size_t bytes); CodeGeneratorCode *newGenerateCode(char *label_begin, char *label_end, CodeGeneratorInstruction instruction); |