diff options
author | Devang Patel <dpatel@apple.com> | 2012-01-09 19:13:28 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2012-01-09 19:13:28 +0000 |
commit | 0dbcadaa2fdf7038431931bab090f4467d8e308f (patch) | |
tree | 024843df5eaf406047696e818059528b48e25fed /include/llvm | |
parent | 8bf295b1bf345dda7f3f5cd12b5c0dafea283e81 (diff) | |
download | external_llvm-0dbcadaa2fdf7038431931bab090f4467d8e308f.zip external_llvm-0dbcadaa2fdf7038431931bab090f4467d8e308f.tar.gz external_llvm-0dbcadaa2fdf7038431931bab090f4467d8e308f.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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147787 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Target/Target.td | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index c9b6a8e..be08b9c 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -712,7 +712,15 @@ class AsmParser { // function of the AsmParser class to call on every matched instruction. // This can be used to perform target specific instruction post-processing. string AsmParserInstCleanup = ""; +} +def DefaultAsmParser : AsmParser; +//===----------------------------------------------------------------------===// +// AsmParserVariant - Subtargets can have multiple different assembly parsers +// (e.g. AT&T vs Intel syntax on X86 for example). This class can be +// implemented by targets to describe such variants. +// +class AsmParserVariant { // Variant - AsmParsers can be of multiple different variants. Variants are // used to support targets that need to parser multiple formats for the // assembly language. @@ -729,7 +737,7 @@ class AsmParser { // purposes of matching. string RegisterPrefix = ""; } -def DefaultAsmParser : AsmParser; +def DefaultAsmParserVariant : AsmParserVariant; /// AssemblerPredicate - This is a Predicate that can be used when the assembler /// matches instructions and aliases. @@ -840,6 +848,10 @@ class Target { // AssemblyParsers - The AsmParser instances available for this target. list<AsmParser> AssemblyParsers = [DefaultAsmParser]; + /// AssemblyParserVariants - The AsmParserVariant instances available for + /// this target. + list<AsmParserVariant> AssemblyParserVariants = [DefaultAsmParserVariant]; + // AssemblyWriters - The AsmWriter instances available for this target. list<AsmWriter> AssemblyWriters = [DefaultAsmWriter]; } |