aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/src/declaration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/src/declaration.cpp')
-rw-r--r--c_compiler/src/declaration.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/c_compiler/src/declaration.cpp b/c_compiler/src/declaration.cpp
index 6edf875..0298fe6 100644
--- a/c_compiler/src/declaration.cpp
+++ b/c_compiler/src/declaration.cpp
@@ -68,10 +68,10 @@ VariableStackBindings Declaration::localAsm(VariableStackBindings bindings, unsi
if(initializer_ != nullptr)
{
initializer_->printAsm(bindings, label_count);
- printf("\tsw\t$2,%d($fp)\n", stack_position);
+ type_->store(stack_position);
}
bindings.insertBinding(id_, type_, stack_position);
- bindings.increaseStackPosition();
+ type_->increaseStackPosition(bindings);
}
return bindings;
@@ -179,12 +179,12 @@ VariableStackBindings ArrayDeclaration::localAsm(VariableStackBindings bindings,
{
int initializer_count = itr-initializer_vector.rbegin();
(*itr)->printAsm(bindings, label_count);
- printf("\tsw\t$2,%d($fp)\n", stack_position+4*initializer_count);
+ type_->store(stack_position+4*initializer_count);
}
}
bindings.insertBinding(id_, type_, stack_position);
- bindings.increaseStackPosition(size_);
+ type_->increaseStackPosition(bindings);
}
return bindings;