summaryrefslogtreecommitdiffhomepage
path: root/flowgraph/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'flowgraph/node.h')
-rw-r--r--flowgraph/node.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/flowgraph/node.h b/flowgraph/node.h
index 9ae5479..98c684d 100644
--- a/flowgraph/node.h
+++ b/flowgraph/node.h
@@ -43,8 +43,8 @@ namespace FlowGraph {
};
Data MakeConstantInt(int i);
- Data MakeLocalPointer(const std::string& name);
- Data MakeLocalSize(const std::string& name);
+ Data MakeLocalPointer(FlowGraph::LocalScope& scope, const std::string& name);
+ Data MakeLocalSize(FlowGraph::LocalScope& scope, const std::string& name);
Data MakeTemporaryInt(LocalScope& scope);
class MemCopy: public Node
@@ -114,7 +114,8 @@ namespace FlowGraph {
{
Increment,
Decrement,
- Negate
+ Negate,
+ Store // just take Data as-is to store it at destination
};
class UnaryOperation: public Node
@@ -159,4 +160,21 @@ namespace FlowGraph {
BinaryOperationType m_type;
};
+ // Open a new scope, with stack frame
+ class CreateScopeOp: public Node
+ {
+ public:
+ CreateScopeOp() {}
+ LocalScope& scope();
+ private:
+ LocalScope m_scope;
+ };
+
+ // Close current scope, closing stack frame
+ class DestroyScopeOp: public Node
+ {
+ public:
+ DestroyScopeOp() {}
+ };
+
} // namespace FlowGraph