diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-05 10:25:56 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-05 10:25:56 +0330 |
commit | f5f8e53b9d4c7ad2bd635a0b2273cd2fa90ff8b4 (patch) | |
tree | 2f61cb85149a05aebf5a7d30eaec08c942c09005 | |
parent | 160da58b3f49b9c295551f81d41a106ff7f6546e (diff) |
cleaning up
-rw-r--r-- | src/compiler/code-generator.c | 16 | ||||
-rw-r--r-- | src/compiler/code-generator.h | 1 | ||||
-rw-r--r-- | stdlib/main.asm | 5 |
3 files changed, 3 insertions, 19 deletions
diff --git a/src/compiler/code-generator.c b/src/compiler/code-generator.c index b1c5604..cfa7476 100644 --- a/src/compiler/code-generator.c +++ b/src/compiler/code-generator.c @@ -18,8 +18,7 @@ void codeGeneratorDelete(CodeGeneratorCodes *code) { for (size_t i = 0; i < code->codes_size; ++i) { CodeGeneratorCode current = code->codes[i]; switch (current.instruction) { - case CODE_GENERATOR_INSTRUCTION_PRINT_U64: - case CODE_GENERATOR_INSTRUCTION_DEF_VAR64: { + case CODE_GENERATOR_INSTRUCTION_PRINT_U64: { CodeGeneratorOperand *metadata = current.metadata; codeGeneratorOperandDestroy(*metadata); free(metadata); @@ -408,19 +407,6 @@ char *codeGeneratorToFlatASM(const CodeGeneratorCodes *codes) { strlen(INST)); } continue; - case CODE_GENERATOR_INSTRUCTION_DEF_VAR64: { - CodeGeneratorOperand *metadata = code.metadata; - char *inst; - if (metadata->isReference) { - asprintf(&inst, "dq [%s]\n", metadata->value.reference); - } else { - asprintf(&inst, "dq %lu\n", metadata->value.value); - } - codeGeneratorAppendFlatASMCommand(&fasm, &fasm_size, &fasm_inserted, inst, - strlen(inst)); - free(inst); - } - continue; case CODE_GENERATOR_INSTRUCTION_MOV: { CodeGeneratorMov *metadata = code.metadata; char *inst; diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h index 3399ee3..dc09386 100644 --- a/src/compiler/code-generator.h +++ b/src/compiler/code-generator.h @@ -8,7 +8,6 @@ typedef enum CodeGeneratorInstruction : uint8_t { CODE_GENERATOR_INSTRUCTION_PRINT_U64, CODE_GENERATOR_INSTRUCTION_CALL, CODE_GENERATOR_INSTRUCTION_RET, - CODE_GENERATOR_INSTRUCTION_DEF_VAR64, CODE_GENERATOR_INSTRUCTION_MOV, } CodeGeneratorInstruction; diff --git a/stdlib/main.asm b/stdlib/main.asm index 61a6fac..ac8bcea 100644 --- a/stdlib/main.asm +++ b/stdlib/main.asm @@ -79,16 +79,15 @@ macro funCall id, name { segment readable executable entry _start -; rdi = the number +; rax = the number print_u64: mov rcx, rsp - mov rax, rdi mov rbx, 10 .L: xor rdx, rdx div rbx - add dl, '0' + add edx, '0' dec rcx mov [rcx],dl cmp rax, 0 |