summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/code-generator.c16
-rw-r--r--src/compiler/code-generator.h1
-rw-r--r--stdlib/main.asm5
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