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 | 46327aaf031529be2cf8bb21bc76d7a5ae0d43cd (patch) | |
tree | 35634f454ed171ba86fbec540a1a830265c70787 /lib/CodeGen/ABIInfo.h | |
parent | b94fcd03c08633b6c26f3f574cf23c4793ace716 (diff) |
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63615 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ABIInfo.h')
-rw-r--r-- | lib/CodeGen/ABIInfo.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/CodeGen/ABIInfo.h b/lib/CodeGen/ABIInfo.h index e0917f77e0..d343ffdbbe 100644 --- a/lib/CodeGen/ABIInfo.h +++ b/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; } |