diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2006-09-17 20:25:45 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2006-09-17 20:25:45 +0000 |
commit | bcb9770efe409f3291ce21269904744e7bf3397b (patch) | |
tree | 88414cb50a458549c4b76bc1f5c7b33cad02f991 /include/llvm/CallingConv.h | |
parent | 2f463865c2f03b8835e35d3499fcd95eed922bc6 (diff) | |
download | external_llvm-bcb9770efe409f3291ce21269904744e7bf3397b.zip external_llvm-bcb9770efe409f3291ce21269904744e7bf3397b.tar.gz external_llvm-bcb9770efe409f3291ce21269904744e7bf3397b.tar.bz2 |
Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30446 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CallingConv.h')
-rw-r--r-- | include/llvm/CallingConv.h | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/include/llvm/CallingConv.h b/include/llvm/CallingConv.h index 2e3ccee..e6ffd28 100644 --- a/include/llvm/CallingConv.h +++ b/include/llvm/CallingConv.h @@ -24,10 +24,10 @@ namespace CallingConv { /// 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 @@ namespace CallingConv { // 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 @@ namespace CallingConv { // 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 |