Annotation class for MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2643 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/MachineInstrAnnot.cpp b/lib/CodeGen/MachineInstrAnnot.cpp
new file mode 100644
index 0000000..c5c0c3f
--- /dev/null
+++ b/lib/CodeGen/MachineInstrAnnot.cpp
@@ -0,0 +1,39 @@
+// $Id$ -*-c++-*-
+//***************************************************************************
+// File:
+//	MachineInstrAnnot.cpp
+// 
+// Purpose:
+//      Annotations used to pass information between code generation phases.
+// 
+// History:
+//	5/10/02	 -  Vikram Adve  -  Created
+//**************************************************************************/
+
+#include "llvm/CodeGen/MachineInstrAnnot.h"
+#include "llvm/Annotation.h"
+#include "llvm/iOther.h"
+#include <vector>
+
+
+AnnotationID CallArgsDescriptor::AID(AnnotationManager::
+                                     getID("CodeGen::CallArgsDescriptor"));
+
+CallArgsDescriptor::CallArgsDescriptor(const CallInst* _callInstr,
+                                       TmpInstruction* _retAddrReg,
+                                       bool _isVarArgs, bool _noPrototype)
+  : Annotation(AID),
+    callInstr(_callInstr),
+    funcPtr(isa<Function>(_callInstr->getCalledValue())
+            ? NULL : _callInstr->getCalledValue()),
+    retAddrReg(_retAddrReg),
+    isVarArgs(_isVarArgs),
+    noPrototype(_noPrototype)
+{
+  unsigned int numArgs = callInstr->getNumOperands();
+  argInfoVec.reserve(numArgs);
+  assert(callInstr->getOperand(0) == callInstr->getCalledValue()
+         && "Operand 0 is ignored in the loop below!");
+  for (unsigned int i=1; i < numArgs; ++i)
+    argInfoVec.push_back(CallArgInfo(callInstr->getOperand(i)));
+}