aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenTarget.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2012-01-09 19:13:28 +0000
committerDevang Patel <dpatel@apple.com>2012-01-09 19:13:28 +0000
commit85d684a4d91ee6405d00be09e457238c032b03f3 (patch)
tree9a52643ff13a6e0cf704c1822dcc0639a7e9ee1f /llvm/utils/TableGen/CodeGenTarget.cpp
parent18334dd9e9941fea937ad9f3ef9c6415fa1c7ebd (diff)
downloadllvm-85d684a4d91ee6405d00be09e457238c032b03f3.zip
llvm-85d684a4d91ee6405d00be09e457238c032b03f3.tar.gz
llvm-85d684a4d91ee6405d00be09e457238c032b03f3.tar.bz2
Split AsmParser into two components - AsmParser and AsmParserVariant
AsmParser holds info specific to target parser. AsmParserVariant holds info specific to asm variants supported by the target. llvm-svn: 147787
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp
index cb98518..be3ea74 100644
--- a/llvm/utils/TableGen/CodeGenTarget.cpp
+++ b/llvm/utils/TableGen/CodeGenTarget.cpp
@@ -150,6 +150,26 @@ Record *CodeGenTarget::getAsmParser() const {
return LI[AsmParserNum];
}
+/// getAsmParserVariant - Return the AssmblyParserVariant definition for
+/// this target.
+///
+Record *CodeGenTarget::getAsmParserVariant(unsigned i) const {
+ std::vector<Record*> LI =
+ TargetRec->getValueAsListOfDefs("AssemblyParserVariants");
+ if (i >= LI.size())
+ throw "Target does not have an AsmParserVariant #" + utostr(i) + "!";
+ return LI[i];
+}
+
+/// getAsmParserVariantCount - Return the AssmblyParserVariant definition
+/// available for this target.
+///
+unsigned CodeGenTarget::getAsmParserVariantCount() const {
+ std::vector<Record*> LI =
+ TargetRec->getValueAsListOfDefs("AssemblyParserVariants");
+ return LI.size();
+}
+
/// getAsmWriter - Return the AssemblyWriter definition for this target.
///
Record *CodeGenTarget::getAsmWriter() const {