From 927eb99e75325164a541c2638e1e607294019381 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Tue, 17 Nov 2020 12:38:40 +0100 Subject: Complete hierarchical evaluation (unittest and systemtest fixed) --- flowgraph/node.cpp | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'flowgraph/node.cpp') diff --git a/flowgraph/node.cpp b/flowgraph/node.cpp index 2d757f9..8e8b5eb 100644 --- a/flowgraph/node.cpp +++ b/flowgraph/node.cpp @@ -1,6 +1,7 @@ #include "node.h" #include "data.h" +#include "minicc.h" #include @@ -19,33 +20,40 @@ FlowGraph::Data& Node::destination() // 4 byte for now Data FlowGraph::MakeConstantInt(int i) { - std::vector value(size_t(4), uint8_t(0)); - *(reinterpret_cast(value.data())) = boost::endian::native_to_little(static_cast(i)); - return Data{DataType::Int, std::make_shared(value)}; + return Data{DataType::Int, std::make_shared(to_little_endian(int32_t(i)))}; } -Data FlowGraph::MakeLocalPointer(FlowGraph::LocalScope& scope, const std::string& name) +Data FlowGraph::MakeLocalPointer(std::shared_ptr scope, const std::string& name) { - Data data{DataType::Pointer, std::make_shared(scope, name)}; - scope.push_back(std::make_shared(data)); + Data data{DataType::Pointer, std::make_shared(name)}; + scope->push_back(std::make_shared(data)); return data; } -Data FlowGraph::MakeLocalSize(FlowGraph::LocalScope& scope, const std::string& name) +Data FlowGraph::MakeLocalSize(std::shared_ptr scope, const std::string& name) { - Data data{DataType::Size, std::make_shared(scope, name)}; - scope.push_back(std::make_shared(data)); + Data data{DataType::Size, std::make_shared(name)}; + scope->push_back(std::make_shared(data)); return data; } -Data FlowGraph::MakeTemporaryInt(FlowGraph::LocalScope& scope) +Data FlowGraph::MakeTemporaryInt(std::shared_ptr scope) { - Data data{DataType::Int, std::make_shared(scope)}; - scope.push_back(std::make_shared(data)); + Data data{DataType::Int, std::make_shared()}; + scope->push_back(std::make_shared(data)); return data; } -LocalScope& CreateScopeOp::scope() +FlowGraph::CreateScopeOp::CreateScopeOp(): m_scope(std::make_shared()) +{ +} + +std::shared_ptr FlowGraph::CreateScopeOp::scope() { return m_scope; } + +FlowGraph::DestroyScopeOp::DestroyScopeOp(std::shared_ptr scope): m_scope(std::make_shared()) +{ +} + -- cgit v1.2.3