summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-23 06:06:36 +0000
committerChris Lattner <sabre@nondot.org>2009-09-23 06:06:36 +0000
commitd545ad130180ba15c894cd137a457fcd30c75c73 (patch)
treede193ab75f61f82364ecabc326828a352224f05b /clang/lib/Basic/Targets.cpp
parentf47afd707eea1b95311aefbfa608c40f1da46844 (diff)
downloadbcm5719-llvm-d545ad130180ba15c894cd137a457fcd30c75c73.tar.gz
bcm5719-llvm-d545ad130180ba15c894cd137a457fcd30c75c73.zip
implement support for __builtin_eh_return_data_regno on x86-32 and x86-64.
This implements PR5034 and rdar://6836445. llvm-svn: 82614
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index f620581cb49..8c31dcb7c66 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -900,6 +900,12 @@ public:
virtual const char *getVAListDeclaration() const {
return "typedef char* __builtin_va_list;";
}
+
+ int getEHDataRegisterNumber(unsigned RegNo) const {
+ if (RegNo == 0) return 0;
+ if (RegNo == 1) return 2;
+ return -1;
+ }
};
} // end anonymous namespace
@@ -990,6 +996,12 @@ public:
"} __va_list_tag;"
"typedef __va_list_tag __builtin_va_list[1];";
}
+
+ int getEHDataRegisterNumber(unsigned RegNo) const {
+ if (RegNo == 0) return 0;
+ if (RegNo == 1) return 1;
+ return -1;
+ }
};
} // end anonymous namespace
OpenPOWER on IntegriCloud