diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-02-03 06:17:37 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-02-03 06:17:37 +0000 |
commit | 67dace890fa35ea66557825472ca1a61bc7f938e (patch) | |
tree | f5f012d75d12d79d343cd95a2e55c9127b3f2a61 /clang/lib/CodeGen/ABIInfo.h | |
parent | 5b0de550453306c043c42a3b6ce7362e2a15aa5e (diff) | |
download | bcm5719-llvm-67dace890fa35ea66557825472ca1a61bc7f938e.tar.gz bcm5719-llvm-67dace890fa35ea66557825472ca1a61bc7f938e.zip |
Add ABIArgInfo::Direct kind, which passes arguments using whatever the
native IRgen type is. This is like Default, but without any extra
semantics (like automatic tweaking of structures or void).
llvm-svn: 63615
Diffstat (limited to 'clang/lib/CodeGen/ABIInfo.h')
-rw-r--r-- | clang/lib/CodeGen/ABIInfo.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/ABIInfo.h b/clang/lib/CodeGen/ABIInfo.h index e0917f77e0e..d343ffdbbe6 100644 --- a/clang/lib/CodeGen/ABIInfo.h +++ b/clang/lib/CodeGen/ABIInfo.h @@ -27,6 +27,10 @@ namespace clang { public: enum Kind { Default, + + Direct, /// Pass the argument directly using the normal + /// converted LLVM type. + StructRet, /// Only valid for return values. The return value /// should be passed through a pointer to a caller /// allocated location passed as an implicit first @@ -68,6 +72,9 @@ namespace clang { static ABIArgInfo getDefault() { return ABIArgInfo(Default); } + static ABIArgInfo getDirect() { + return ABIArgInfo(Direct); + } static ABIArgInfo getStructRet() { return ABIArgInfo(StructRet); } @@ -86,6 +93,7 @@ namespace clang { Kind getKind() const { return TheKind; } bool isDefault() const { return TheKind == Default; } + bool isDirect() const { return TheKind == Direct; } bool isStructRet() const { return TheKind == StructRet; } bool isIgnore() const { return TheKind == Ignore; } bool isCoerce() const { return TheKind == Coerce; } |