aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/SystemZ/SystemZInstrFormats.td
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-09-25 10:20:08 +0000
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-09-25 10:20:08 +0000
commit9f3f4bf377ac93fd32c8b93ae23378a82ad0f353 (patch)
treef98e9963ce27ab007357856b4c6dda985491659f /lib/Target/SystemZ/SystemZInstrFormats.td
parentc2b840cb7c58e59c68aaa589841c41fb272df66d (diff)
downloadexternal_llvm-9f3f4bf377ac93fd32c8b93ae23378a82ad0f353.zip
external_llvm-9f3f4bf377ac93fd32c8b93ae23378a82ad0f353.tar.gz
external_llvm-9f3f4bf377ac93fd32c8b93ae23378a82ad0f353.tar.bz2
[SystemZ] Define the return instruction as a pseudo alias of BR
This is the first of a few patches to reduce the dupliation of encoding information. The return instruction is a normal BR in which one of the registers is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191364 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZInstrFormats.td')
-rw-r--r--lib/Target/SystemZ/SystemZInstrFormats.td10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/SystemZ/SystemZInstrFormats.td b/lib/Target/SystemZ/SystemZInstrFormats.td
index 7f2f9f8..b594f0e 100644
--- a/lib/Target/SystemZ/SystemZInstrFormats.td
+++ b/lib/Target/SystemZ/SystemZInstrFormats.td
@@ -1467,3 +1467,13 @@ multiclass StringRRE<string mnemonic, bits<16> opcode,
[(set GR64:$end, (operator GR64:$start1, GR64:$start2,
GR32:$char))]>;
}
+
+// A pseudo instruction that is a direct alias of a real instruction.
+// These aliases are used in cases where a particular register operand is
+// fixed or where the same instruction is used with different register sizes.
+// The size parameter is the size in bytes of the associated real instruction.
+class Alias<int size, dag outs, dag ins, list<dag> pattern>
+ : InstSystemZ<size, outs, ins, "", pattern> {
+ let isPseudo = 1;
+ let isCodeGenOnly = 1;
+}