summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/ABIInfo.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-03 06:17:37 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-03 06:17:37 +0000
commit67dace890fa35ea66557825472ca1a61bc7f938e (patch)
treef5f012d75d12d79d343cd95a2e55c9127b3f2a61 /clang/lib/CodeGen/ABIInfo.h
parent5b0de550453306c043c42a3b6ce7362e2a15aa5e (diff)
downloadbcm5719-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.h8
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; }
OpenPOWER on IntegriCloud