summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-01-13 02:39:42 +0000
committerChris Lattner <sabre@nondot.org>2006-01-13 02:39:42 +0000
commita5110e854da59c88b4ab9427f348992e148b8f3d (patch)
treec38e4d6ce126c50dc8fec075e26bd16eb5271866
parent00720d8ff01513194a9fc4d131095ea0e0266ef6 (diff)
downloadbcm5719-llvm-a5110e854da59c88b4ab9427f348992e148b8f3d.tar.gz
bcm5719-llvm-a5110e854da59c88b4ab9427f348992e148b8f3d.zip
add stacksave/stackrestore nodes
llvm-svn: 25270
-rw-r--r--llvm/include/llvm/CodeGen/SelectionDAGNodes.h9
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp8
2 files changed, 15 insertions, 2 deletions
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
index 032f319a960..0ee64f6452f 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -312,6 +312,15 @@ namespace ISD {
CALL,
TAILCALL,
+ // STACKSAVE - STACKSAVE has one operand, an input chain. It produces a
+ // value, the same type as the pointer type for the system, and an output
+ // chain.
+ STACKSAVE,
+
+ // STACKRESTORE has two operands, an input chain and a pointer to restore to
+ // it returns an output chain.
+ STACKRESTORE,
+
// MEMSET/MEMCPY/MEMMOVE - The first operand is the chain, and the rest
// correspond to the operands of the LLVM intrinsic functions. The only
// result is a token chain. The alignment argument is guaranteed to be a
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index a89660bb4b4..0936ccee328 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -1982,8 +1982,12 @@ const char *SDNode::getOperationName(const SelectionDAG *G) const {
case ISD::TRUNCSTORE: return "truncstore";
case ISD::DYNAMIC_STACKALLOC: return "dynamic_stackalloc";
- case ISD::EXTRACT_ELEMENT: return "extract_element";
- case ISD::BUILD_PAIR: return "build_pair";
+ case ISD::EXTRACT_ELEMENT: return "extract_element";
+ case ISD::BUILD_PAIR: return "build_pair";
+ case ISD::STACKSAVE: return "stacksave";
+ case ISD::STACKRESTORE: return "stackrestore";
+
+ // Block memory operations.
case ISD::MEMSET: return "memset";
case ISD::MEMCPY: return "memcpy";
case ISD::MEMMOVE: return "memmove";
OpenPOWER on IntegriCloud