summaryrefslogtreecommitdiff
path: root/include/llvm/Target/Target.td
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-07-08 17:36:35 +0000
committerJim Grosbach <grosbach@apple.com>2011-07-08 17:36:35 +0000
commit86f9adb8becf5da6962bd89301e96bccba26f72a (patch)
treeeeb801e52b78e1dfe137c872e008a4371774194c /include/llvm/Target/Target.td
parent90b40414a092a5cbf35b80eb03e38787eea1a363 (diff)
downloadllvm-86f9adb8becf5da6962bd89301e96bccba26f72a.tar.gz
llvm-86f9adb8becf5da6962bd89301e96bccba26f72a.tar.bz2
llvm-86f9adb8becf5da6962bd89301e96bccba26f72a.tar.xz
TableGen'erated MC lowering for simple pseudo-instructions.
This allows the (many) pseudo-instructions we have that map onto a single real instruction to have their expansion during MC lowering handled automatically instead of the current cumbersome manual expansion required. These sorts of pseudos are common when an instruction is used in situations that require different MachineInstr flags (isTerminator, isBranch, et. al.) than the generic instruction description has. For example, using a move to the PC to implement a branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134704 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/Target.td')
-rw-r--r--include/llvm/Target/Target.td8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td
index afc6aa65e5..ebe962bbc4 100644
--- a/include/llvm/Target/Target.td
+++ b/include/llvm/Target/Target.td
@@ -373,6 +373,14 @@ class Instruction {
///@}
}
+/// PseudoInstExpansion - Expansion information for a pseudo-instruction.
+/// Which instruction it expands to and how the operands map from the
+/// pseudo.
+class PseudoInstExpansion<dag Result> {
+ dag ResultInst = Result; // The instruction to generate.
+ bit isPseudo = 1;
+}
+
/// Predicates - These are extra conditionals which are turned into instruction
/// selector matching code. Currently each predicate is just a string.
class Predicate<string cond> {