diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-30 08:54:18 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-30 08:54:18 +0330 |
commit | 9f2b1bdcfbbc084876c3ab7cc2cb8c15ffb88184 (patch) | |
tree | cf46656b50fa3d868a7bed4821667f6a31ea922c /src/compiler/code-generator.h | |
parent | d32d148cee5b3aec5e8943738aa30139d442478c (diff) |
added assign operator
Diffstat (limited to 'src/compiler/code-generator.h')
-rw-r--r-- | src/compiler/code-generator.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h index a9c6490..ac47e76 100644 --- a/src/compiler/code-generator.h +++ b/src/compiler/code-generator.h @@ -9,6 +9,7 @@ typedef enum CodeGeneratorInstruction : uint8_t { CODE_GENERATOR_INSTRUCTION_CALL, CODE_GENERATOR_INSTRUCTION_RET, CODE_GENERATOR_INSTRUCTION_DEF_VAR64, + CODE_GENERATOR_INSTRUCTION_MOV_U64, } CodeGeneratorInstruction; typedef struct CodeGeneratorCode { @@ -28,6 +29,11 @@ typedef struct CodeGeneratorOperand { bool isReference; } CodeGeneratorOperand; +typedef struct CodeGeneratorDoubleOperand { + CodeGeneratorOperand op0; + CodeGeneratorOperand op1; +} CodeGeneratorDoubleOperand; + typedef struct CodeGeneratorCodes { CodeGeneratorCode *codes; size_t codes_size; @@ -37,6 +43,8 @@ void codeGeneratorDelete(CodeGeneratorCodes *code); CodeGeneratorOperand *newCodeGeneratorOperand(char *value, bool isReference); +CodeGeneratorOperand *makeCodeGeneratorOperand(AstTree tree); + CodeGeneratorCode createGenerateCode(char *label_begin, char *label_end, CodeGeneratorInstruction instruction, void *metadata); |