X86: Implement the vectorcall calling convention
[oota-llvm.git] / include / llvm / IR / CallingConv.h
index 0c305439dd048ec2bdcc8e0bbd1763afbeed7082..9872e6ec794d8ddd01f20323c3cd2bc2e39133aa 100644 (file)
@@ -20,10 +20,13 @@ namespace llvm {
 /// the well-known calling conventions.
 ///
 namespace CallingConv {
+  /// LLVM IR allows to use arbitrary numbers as calling convention identifiers.
+  typedef unsigned ID;
+
   /// A set of enums which specify the assigned numeric values for known llvm
   /// calling conventions.
   /// @brief LLVM Calling Convention Representation
-  enum ID {
+  enum {
     /// C - The default llvm calling convention, compatible with C.  This
     /// convention is the only calling convention that supports varargs calls.
     /// As with typical C calling conventions, the callee/caller have to
@@ -139,16 +142,10 @@ namespace CallingConv {
     /// arguments are shadowed by GPRs, and vice versa.
     X86_64_Win64 = 79,
 
-    /// \brief The calling convention used for __cdecl methods on win32.
-    /// Differs from the C calling convention only in that the order of the
-    /// first parameter and the sret parameter are swapped.
-    X86_CDeclMethod = 80
-
+    /// \brief MSVC calling convention that passes vectors and vector aggregates
+    /// in SSE registers.
+    X86_VectorCall = 80
   };
-
-  /// isARMTargetCC - Return true if the specific calling convention is one of
-  /// ARM target specific calling convention.
-  bool isARMTargetCC(ID id);
 } // End CallingConv namespace
 
 } // End llvm namespace