diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td index 50f1e09c6ee5..95e94c4c8e1c 100644 --- a/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td @@ -1764,6 +1764,55 @@ class DirectiveInsnSSF<dag outs, dag ins, string asmstr, list<dag> pattern> let Inst{35-32} = enc{35-32}; } +class DirectiveInsnVRI<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVRIe<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + +class DirectiveInsnVRR<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVRRc<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + +class DirectiveInsnVRS<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVRSc<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + +class DirectiveInsnVRV<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVRV<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + +class DirectiveInsnVRX<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVRX<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + +class DirectiveInsnVSI<dag outs, dag ins, string asmstr, list<dag> pattern> + : InstVSI<0, outs, ins, asmstr, pattern> { + bits<48> enc; + + let Inst{47-40} = enc{47-40}; + let Inst{7-0} = enc{7-0}; +} + + //===----------------------------------------------------------------------===// // Variants of instructions with condition mask //===----------------------------------------------------------------------===// @@ -1862,6 +1911,11 @@ class ICV<string name> !cast<CondVariant>("IntCondVariant"#name).suffix, !cast<CondVariant>("IntCondVariant"#name).alternate>; +// Defines a class that makes it easier to define +// a MnemonicAlias when CondVariant's are involved. +class MnemonicCondBranchAlias<CondVariant V, string from, string to> + : MnemonicAlias<!subst("#", V.suffix, from), !subst("#", V.suffix, to)>; + //===----------------------------------------------------------------------===// // Instruction definitions with semantics //===----------------------------------------------------------------------===// |