[llvm-commits] CVS: llvm/include/llvm/CallingConv.h
Anton Korobeynikov
asl at math.spbu.ru
Sun Sep 17 13:26:06 PDT 2006
Changes in directory llvm/include/llvm:
CallingConv.h updated: 1.4 -> 1.5
---
Log message:
Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.
---
Diffs of the changes: (+18 -7)
CallingConv.h | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
Index: llvm/include/llvm/CallingConv.h
diff -u llvm/include/llvm/CallingConv.h:1.4 llvm/include/llvm/CallingConv.h:1.5
--- llvm/include/llvm/CallingConv.h:1.4 Mon Jun 5 11:29:06 2006
+++ llvm/include/llvm/CallingConv.h Sun Sep 17 15:25:45 2006
@@ -24,10 +24,10 @@
/// calling conventions.
/// @brief LLVM Calling Convention Representation
enum ID {
- // 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 tolerate
- // certain amounts of prototype mismatch.
+ /// 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 tolerate
+ /// certain amounts of prototype mismatch.
C = 0,
/// CSRet - C Struct Return calling convention. This convention requires
@@ -42,8 +42,8 @@
// support varargs calls, and all assume that the caller and callee
// prototype exactly match.
- // Fast - This calling convention attempts to make calls as fast as possible
- // (e.g. by passing things in registers).
+ /// Fast - This calling convention attempts to make calls as fast as possible
+ /// (e.g. by passing things in registers).
Fast = 8,
// Cold - This calling convention attempts to make code in the caller as
@@ -54,7 +54,18 @@
// Target - This is the start of the target-specific calling conventions,
// e.g. fastcall and thiscall on X86.
- FirstTargetCC = 64
+ FirstTargetCC = 64,
+
+ /// X86_StdCall - stdcall is the calling conventions mostly used by the
+ /// Win32 API. It is basically the same as the C convention with the
+ /// difference in that the callee is responsible for popping the arguments
+ /// from the stack.
+ X86_StdCall = 64,
+
+ /// X86_FastCall - 'fast' analog of X86_StdCall. Passes first two arguments
+ /// in ECX:EDX registers, others - via stack. Callee is responsible for
+ /// stack cleaning.
+ X86_FastCall = 65
};
} // End CallingConv namespace
More information about the llvm-commits
mailing list