summaryrefslogtreecommitdiff
path: root/src/compiler/code-generator.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-01-30 08:54:18 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-01-30 08:54:18 +0330
commit9f2b1bdcfbbc084876c3ab7cc2cb8c15ffb88184 (patch)
treecf46656b50fa3d868a7bed4821667f6a31ea922c /src/compiler/code-generator.h
parentd32d148cee5b3aec5e8943738aa30139d442478c (diff)
added assign operator
Diffstat (limited to 'src/compiler/code-generator.h')
-rw-r--r--src/compiler/code-generator.h8
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);