From 28791dd17f40d9e71a53f19a06ffacf13ab2b2cb Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Mon, 2 Aug 2004 16:54:54 +0000 Subject: [PATCH] Separate instruction formats from instruction definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15414 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrFormats.td | 1247 +++++++++++++++++++++++++ lib/Target/PowerPC/PPCInstrInfo.td | 1237 +----------------------- 2 files changed, 1248 insertions(+), 1236 deletions(-) create mode 100644 lib/Target/PowerPC/PPCInstrFormats.td diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td new file mode 100644 index 00000000000..1a47593604f --- /dev/null +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -0,0 +1,1247 @@ +//===- PowerPCInstrFormats.td - PowerPC Instruction Formats --*- tablegen -*-=// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// +//===----------------------------------------------------------------------===// + +class Format val> { + bits<5> Value = val; +} + +def Pseudo: Format<0>; +def Gpr : Format<1>; +def Gpr0 : Format<2>; +def Simm16 : Format<3>; +def Zimm16 : Format<4>; +def PCRelimm24 : Format<5>; +def Imm24 : Format<6>; +def Imm5 : Format<7>; +def PCRelimm14 : Format<8>; +def Imm14 : Format<9>; +def Imm2 : Format<10>; +def Crf : Format<11>; +def Imm3 : Format<12>; +def Imm1 : Format<13>; +def Fpr : Format<14>; +def Imm4 : Format<15>; +def Imm8 : Format<16>; +def Disimm16 : Format<17>; +def Disimm14 : Format<18>; +def Spr : Format<19>; +def Sgr : Format<20>; +def Imm15 : Format<21>; +def Vpr : Format<22>; + +class PPC32Inst : Instruction { + field bits<32> Inst; + bits<3> ArgCount; + bits<5> Arg0Type; + bits<5> Arg1Type; + bits<5> Arg2Type; + bits<5> Arg3Type; + bits<5> Arg4Type; + bit PPC64; + bit VMX; + + let Namespace = "PPC32"; +} + +class PPC32InstPattern0 opconstant0, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<16> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {15-0} = operand2; +} + +class PPC32InstPattern1 opconstant0, bits<5> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<16> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20-16} = opconstant1; + let Inst {25-21} = operand0; + let Inst {15-0} = operand1; +} + +class PPC32InstPattern2 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {15-11} = operand2; +} + +class PPC32InstPattern3 opconstant0, bits<16> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {15-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; +} + +class PPC32InstPattern4 opconstant0, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<16> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {20-16} = operand0; + let Inst {25-21} = operand1; + let Inst {15-0} = operand2; +} + +class PPC32InstPattern5 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {25-21} = operand1; + let Inst {15-11} = operand2; +} + +class PPC32InstPattern6 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<24> operand0; + + + let Inst {31-26} = opconstant0; + let Inst {1-0} = opconstant1; + let Inst {25-2} = operand0; +} + +class PPC32InstPattern7 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<14> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {1-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {15-2} = operand2; +} + +class PPC32InstPattern8 opconstant0, bits<3> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<2> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {15-13} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {12-11} = operand2; +} + +class PPC32InstPattern9 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<14> operand1; + + + let Inst {31-21} = opconstant0; + let Inst {1-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {15-2} = operand1; +} + +class PPC32InstPattern10 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<14> operand0; + + + let Inst {31-16} = opconstant0; + let Inst {1-0} = opconstant1; + let Inst {15-2} = operand0; +} + +class PPC32InstPattern11 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<2> operand0; + + + let Inst {31-13} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {12-11} = operand0; +} + +class PPC32InstPattern12 opconstant0, bits<3> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<2> operand1; + + + let Inst {31-21} = opconstant0; + let Inst {15-13} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {20-16} = operand0; + let Inst {12-11} = operand1; +} + +class PPC32InstPattern13 opconstant0, bits<1> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 4; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<1> operand1; + bits<5> operand2; + bits<16> operand3; + + + let Inst {31-26} = opconstant0; + let Inst {22} = opconstant1; + let Inst {25-23} = operand0; + let Inst {21} = operand1; + let Inst {20-16} = operand2; + let Inst {15-0} = operand3; +} + +class PPC32InstPattern14 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<5> operand1; + bits<16> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {22-21} = opconstant1; + let Inst {25-23} = operand0; + let Inst {20-16} = operand1; + let Inst {15-0} = operand2; +} + +class PPC32InstPattern15 opconstant0, bits<1> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 4; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<1> operand1; + bits<5> operand2; + bits<5> operand3; + + + let Inst {31-26} = opconstant0; + let Inst {22} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {25-23} = operand0; + let Inst {21} = operand1; + let Inst {20-16} = operand2; + let Inst {15-11} = operand3; +} + +class PPC32InstPattern16 opconstant0, bits<2> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<5> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {22-21} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {25-23} = operand0; + let Inst {20-16} = operand1; + let Inst {15-11} = operand2; +} + +class PPC32InstPattern17 opconstant0, bits<16> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {15-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {25-21} = operand1; +} + +class PPC32InstPattern18 opconstant0, bits<5> opconstant1, bits<6> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {15-11} = opconstant1; + let Inst {5-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {10-6} = operand2; +} + +class PPC32InstPattern19 opconstant0, bits<6> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 4; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + bits<5> operand3; + + + let Inst {31-26} = opconstant0; + let Inst {5-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {10-6} = operand2; + let Inst {15-11} = operand3; +} + +class PPC32InstPattern20 opconstant0, bits<5> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20-16} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {15-11} = operand1; +} + +class PPC32InstPattern21 opconstant0, bits<21> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + + + let Inst {31-26} = opconstant0; + let Inst {20-0} = opconstant1; + let Inst {25-21} = operand0; +} + +class PPC32InstPattern22 opconstant0, bits<18> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {17-0} = opconstant1; + let Inst {25-23} = operand0; + let Inst {22-18} = operand1; +} + +class PPC32InstPattern23 opconstant0, bits<7> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<4> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {22-16} = opconstant1; + let Inst {11-0} = opconstant2; + let Inst {25-23} = operand0; + let Inst {15-12} = operand1; +} + +class PPC32InstPattern24 opconstant0, bits<1> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<8> operand0; + bits<5> operand1; + + + let Inst {31-25} = opconstant0; + let Inst {16} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {24-17} = operand0; + let Inst {15-11} = operand1; +} + +class PPC32InstPattern25 opconstant0, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<16> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {25-21} = operand0; + let Inst {15-0} = operand1; + let Inst {20-16} = operand2; +} + +class PPC32InstPattern26 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<14> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {1-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {15-2} = operand1; + let Inst {20-16} = operand2; +} + +class PPC32InstPattern27 opconstant0, bits<2> opconstant1, bits<18> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + bits<3> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {22-21} = opconstant1; + let Inst {17-0} = opconstant2; + let Inst {25-23} = operand0; + let Inst {20-18} = operand1; +} + +class PPC32InstPattern28 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<10> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-11} = operand1; +} + +class PPC32InstPattern29 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<10> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {20-11} = operand0; + let Inst {25-21} = operand1; +} + +class PPC32InstPattern30 opconstant0, bits<1> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<8> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20} = opconstant1; + let Inst {11-0} = opconstant2; + let Inst {19-12} = operand0; + let Inst {25-21} = operand1; +} + +class PPC32InstPattern31 opconstant0, bits<23> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<3> operand0; + + + let Inst {31-26} = opconstant0; + let Inst {22-0} = opconstant1; + let Inst {25-23} = operand0; +} + +class PPC32InstPattern32 opconstant0, bits<1> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<8> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20} = opconstant1; + let Inst {11-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {19-12} = operand1; +} + +class PPC32InstPattern33 opconstant0, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 0; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = 0; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + + + let Inst {31-0} = opconstant0; +} + +class PPC32InstPattern34 opconstant0, bits<1> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 5; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = OperandType4.Value; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + bits<5> operand3; + bits<5> operand4; + + + let Inst {31-26} = opconstant0; + let Inst {0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {25-21} = operand1; + let Inst {15-11} = operand2; + let Inst {10-6} = operand3; + let Inst {5-1} = operand4; +} + +class PPC32InstPattern35 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {15-11} = operand1; + let Inst {20-16} = operand2; +} + +class PPC32InstPattern36 opconstant0, bits<21> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<2> operand0; + + + let Inst {31-23} = opconstant0; + let Inst {20-0} = opconstant1; + let Inst {22-21} = operand0; +} + +class PPC32InstPattern37 opconstant0, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<16> operand1; + + + let Inst {31-21} = opconstant0; + let Inst {20-16} = operand0; + let Inst {15-0} = operand1; +} + +class PPC32InstPattern38 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + + + let Inst {31-21} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {15-11} = operand1; +} + +class PPC32InstPattern39 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<4> operand2; + + + let Inst {31-25} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {15-11} = operand1; + let Inst {24-21} = operand2; +} + +class PPC32InstPattern40 opconstant0, bits<4> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<1> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20-17} = opconstant1; + let Inst {15-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {16} = operand1; +} + +class PPC32InstPattern41 opconstant0, bits<1> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<4> operand0; + bits<5> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20} = opconstant1; + let Inst {15-0} = opconstant2; + let Inst {19-16} = operand0; + let Inst {25-21} = operand1; +} + +class PPC32InstPattern42 opconstant0, bits<1> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<4> operand1; + + + let Inst {31-26} = opconstant0; + let Inst {20} = opconstant1; + let Inst {15-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {19-16} = operand1; +} + +class PPC32InstPattern43 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + + + let Inst {31-16} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {15-11} = operand0; +} + +class PPC32InstPattern44 opconstant0, bits<5> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 2; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<1> operand1; + + + let Inst {31-22} = opconstant0; + let Inst {20-16} = opconstant1; + let Inst {10-0} = opconstant2; + let Inst {15-11} = operand0; + let Inst {21} = operand1; +} + +class PPC32InstPattern45 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 1; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = 0; + let Arg2Type = 0; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<15> operand0; + + + let Inst {31-26} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {25-11} = operand0; +} + +class PPC32InstPattern46 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 3; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = 0; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<2> operand2; + + + let Inst {31-23} = opconstant0; + let Inst {10-0} = opconstant1; + let Inst {20-16} = operand0; + let Inst {15-11} = operand1; + let Inst {22-21} = operand2; +} + +class PPC32InstPattern47 opconstant0, bits<6> opconstant1, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 4; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + bits<5> operand3; + + + let Inst {31-26} = opconstant0; + let Inst {5-0} = opconstant1; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {15-11} = operand2; + let Inst {10-6} = operand3; +} + +class PPC32InstPattern48 opconstant0, bits<1> opconstant1, bits<6> opconstant2, bit ppc64, bit vmx> : PPC32Inst { + let Name = name; + let ArgCount = 4; + let PPC64 = ppc64; + let VMX =vmx; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType1.Value; + let Arg2Type = OperandType2.Value; + let Arg3Type = OperandType3.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + bits<4> operand3; + + + let Inst {31-26} = opconstant0; + let Inst {10} = opconstant1; + let Inst {5-0} = opconstant2; + let Inst {25-21} = operand0; + let Inst {20-16} = operand1; + let Inst {15-11} = operand2; + let Inst {9-6} = operand3; +} + +class PPC32InstPatternPseudo : PPC32Inst { + let Name = name; + let ArgCount = 0; + let PPC64 = 0; + let VMX = 0; + + let Arg0Type = OperandType0.Value; + let Arg1Type = OperandType0.Value; + let Arg2Type = OperandType0.Value; + let Arg3Type = OperandType0.Value; + let Arg4Type = 0; + let PPC64 = 0; + let VMX = 0; + bits<5> operand0; + bits<5> operand1; + bits<5> operand2; + bits<4> operand3; + + + let Inst {31-0} = 0; +} diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index 6028b8a56d6..3dcc721e248 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -10,1242 +10,7 @@ // //===----------------------------------------------------------------------===// -class Format val> { - bits<5> Value = val; -} - -class PPC32Inst : Instruction { - field bits<32> Inst; - bits<3> ArgCount; - bits<5> Arg0Type; - bits<5> Arg1Type; - bits<5> Arg2Type; - bits<5> Arg3Type; - bits<5> Arg4Type; - bit PPC64; - bit VMX; - - let Namespace = "PPC32"; -} - -def Pseudo: Format<0>; -def Gpr : Format<1>; -def Gpr0 : Format<2>; -def Simm16 : Format<3>; -def Zimm16 : Format<4>; -def PCRelimm24 : Format<5>; -def Imm24 : Format<6>; -def Imm5 : Format<7>; -def PCRelimm14 : Format<8>; -def Imm14 : Format<9>; -def Imm2 : Format<10>; -def Crf : Format<11>; -def Imm3 : Format<12>; -def Imm1 : Format<13>; -def Fpr : Format<14>; -def Imm4 : Format<15>; -def Imm8 : Format<16>; -def Disimm16 : Format<17>; -def Disimm14 : Format<18>; -def Spr : Format<19>; -def Sgr : Format<20>; -def Imm15 : Format<21>; -def Vpr : Format<22>; - -class PPC32InstPattern0 opconstant0, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<16> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {15-0} = operand2; -} - -class PPC32InstPattern1 opconstant0, bits<5> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<16> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20-16} = opconstant1; - let Inst {25-21} = operand0; - let Inst {15-0} = operand1; -} - -class PPC32InstPattern2 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {15-11} = operand2; -} - -class PPC32InstPattern3 opconstant0, bits<16> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {15-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; -} - -class PPC32InstPattern4 opconstant0, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<16> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {20-16} = operand0; - let Inst {25-21} = operand1; - let Inst {15-0} = operand2; -} - -class PPC32InstPattern5 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {25-21} = operand1; - let Inst {15-11} = operand2; -} - -class PPC32InstPattern6 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<24> operand0; - - - let Inst {31-26} = opconstant0; - let Inst {1-0} = opconstant1; - let Inst {25-2} = operand0; -} - -class PPC32InstPattern7 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<14> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {1-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {15-2} = operand2; -} - -class PPC32InstPattern8 opconstant0, bits<3> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<2> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {15-13} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {12-11} = operand2; -} - -class PPC32InstPattern9 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<14> operand1; - - - let Inst {31-21} = opconstant0; - let Inst {1-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {15-2} = operand1; -} - -class PPC32InstPattern10 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<14> operand0; - - - let Inst {31-16} = opconstant0; - let Inst {1-0} = opconstant1; - let Inst {15-2} = operand0; -} - -class PPC32InstPattern11 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<2> operand0; - - - let Inst {31-13} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {12-11} = operand0; -} - -class PPC32InstPattern12 opconstant0, bits<3> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<2> operand1; - - - let Inst {31-21} = opconstant0; - let Inst {15-13} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {20-16} = operand0; - let Inst {12-11} = operand1; -} - -class PPC32InstPattern13 opconstant0, bits<1> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 4; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<1> operand1; - bits<5> operand2; - bits<16> operand3; - - - let Inst {31-26} = opconstant0; - let Inst {22} = opconstant1; - let Inst {25-23} = operand0; - let Inst {21} = operand1; - let Inst {20-16} = operand2; - let Inst {15-0} = operand3; -} - -class PPC32InstPattern14 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<5> operand1; - bits<16> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {22-21} = opconstant1; - let Inst {25-23} = operand0; - let Inst {20-16} = operand1; - let Inst {15-0} = operand2; -} - -class PPC32InstPattern15 opconstant0, bits<1> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 4; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<1> operand1; - bits<5> operand2; - bits<5> operand3; - - - let Inst {31-26} = opconstant0; - let Inst {22} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {25-23} = operand0; - let Inst {21} = operand1; - let Inst {20-16} = operand2; - let Inst {15-11} = operand3; -} - -class PPC32InstPattern16 opconstant0, bits<2> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<5> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {22-21} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {25-23} = operand0; - let Inst {20-16} = operand1; - let Inst {15-11} = operand2; -} - -class PPC32InstPattern17 opconstant0, bits<16> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {15-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {25-21} = operand1; -} - -class PPC32InstPattern18 opconstant0, bits<5> opconstant1, bits<6> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {15-11} = opconstant1; - let Inst {5-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {10-6} = operand2; -} - -class PPC32InstPattern19 opconstant0, bits<6> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 4; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - bits<5> operand3; - - - let Inst {31-26} = opconstant0; - let Inst {5-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {10-6} = operand2; - let Inst {15-11} = operand3; -} - -class PPC32InstPattern20 opconstant0, bits<5> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20-16} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {15-11} = operand1; -} - -class PPC32InstPattern21 opconstant0, bits<21> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - - - let Inst {31-26} = opconstant0; - let Inst {20-0} = opconstant1; - let Inst {25-21} = operand0; -} - -class PPC32InstPattern22 opconstant0, bits<18> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {17-0} = opconstant1; - let Inst {25-23} = operand0; - let Inst {22-18} = operand1; -} - -class PPC32InstPattern23 opconstant0, bits<7> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<4> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {22-16} = opconstant1; - let Inst {11-0} = opconstant2; - let Inst {25-23} = operand0; - let Inst {15-12} = operand1; -} - -class PPC32InstPattern24 opconstant0, bits<1> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<8> operand0; - bits<5> operand1; - - - let Inst {31-25} = opconstant0; - let Inst {16} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {24-17} = operand0; - let Inst {15-11} = operand1; -} - -class PPC32InstPattern25 opconstant0, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<16> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {25-21} = operand0; - let Inst {15-0} = operand1; - let Inst {20-16} = operand2; -} - -class PPC32InstPattern26 opconstant0, bits<2> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<14> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {1-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {15-2} = operand1; - let Inst {20-16} = operand2; -} - -class PPC32InstPattern27 opconstant0, bits<2> opconstant1, bits<18> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - bits<3> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {22-21} = opconstant1; - let Inst {17-0} = opconstant2; - let Inst {25-23} = operand0; - let Inst {20-18} = operand1; -} - -class PPC32InstPattern28 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<10> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-11} = operand1; -} - -class PPC32InstPattern29 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<10> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {20-11} = operand0; - let Inst {25-21} = operand1; -} - -class PPC32InstPattern30 opconstant0, bits<1> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<8> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20} = opconstant1; - let Inst {11-0} = opconstant2; - let Inst {19-12} = operand0; - let Inst {25-21} = operand1; -} - -class PPC32InstPattern31 opconstant0, bits<23> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<3> operand0; - - - let Inst {31-26} = opconstant0; - let Inst {22-0} = opconstant1; - let Inst {25-23} = operand0; -} - -class PPC32InstPattern32 opconstant0, bits<1> opconstant1, bits<12> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<8> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20} = opconstant1; - let Inst {11-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {19-12} = operand1; -} - -class PPC32InstPattern33 opconstant0, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 0; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = 0; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - - - let Inst {31-0} = opconstant0; -} - -class PPC32InstPattern34 opconstant0, bits<1> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 5; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = OperandType4.Value; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - bits<5> operand3; - bits<5> operand4; - - - let Inst {31-26} = opconstant0; - let Inst {0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {25-21} = operand1; - let Inst {15-11} = operand2; - let Inst {10-6} = operand3; - let Inst {5-1} = operand4; -} - -class PPC32InstPattern35 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {15-11} = operand1; - let Inst {20-16} = operand2; -} - -class PPC32InstPattern36 opconstant0, bits<21> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<2> operand0; - - - let Inst {31-23} = opconstant0; - let Inst {20-0} = opconstant1; - let Inst {22-21} = operand0; -} - -class PPC32InstPattern37 opconstant0, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<16> operand1; - - - let Inst {31-21} = opconstant0; - let Inst {20-16} = operand0; - let Inst {15-0} = operand1; -} - -class PPC32InstPattern38 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - - - let Inst {31-21} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {15-11} = operand1; -} - -class PPC32InstPattern39 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<4> operand2; - - - let Inst {31-25} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {15-11} = operand1; - let Inst {24-21} = operand2; -} - -class PPC32InstPattern40 opconstant0, bits<4> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<1> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20-17} = opconstant1; - let Inst {15-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {16} = operand1; -} - -class PPC32InstPattern41 opconstant0, bits<1> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<4> operand0; - bits<5> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20} = opconstant1; - let Inst {15-0} = opconstant2; - let Inst {19-16} = operand0; - let Inst {25-21} = operand1; -} - -class PPC32InstPattern42 opconstant0, bits<1> opconstant1, bits<16> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<4> operand1; - - - let Inst {31-26} = opconstant0; - let Inst {20} = opconstant1; - let Inst {15-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {19-16} = operand1; -} - -class PPC32InstPattern43 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - - - let Inst {31-16} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {15-11} = operand0; -} - -class PPC32InstPattern44 opconstant0, bits<5> opconstant1, bits<11> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 2; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<1> operand1; - - - let Inst {31-22} = opconstant0; - let Inst {20-16} = opconstant1; - let Inst {10-0} = opconstant2; - let Inst {15-11} = operand0; - let Inst {21} = operand1; -} - -class PPC32InstPattern45 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 1; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = 0; - let Arg2Type = 0; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<15> operand0; - - - let Inst {31-26} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {25-11} = operand0; -} - -class PPC32InstPattern46 opconstant0, bits<11> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 3; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = 0; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<2> operand2; - - - let Inst {31-23} = opconstant0; - let Inst {10-0} = opconstant1; - let Inst {20-16} = operand0; - let Inst {15-11} = operand1; - let Inst {22-21} = operand2; -} - -class PPC32InstPattern47 opconstant0, bits<6> opconstant1, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 4; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - bits<5> operand3; - - - let Inst {31-26} = opconstant0; - let Inst {5-0} = opconstant1; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {15-11} = operand2; - let Inst {10-6} = operand3; -} - -class PPC32InstPattern48 opconstant0, bits<1> opconstant1, bits<6> opconstant2, bit ppc64, bit vmx> : PPC32Inst { - let Name = name; - let ArgCount = 4; - let PPC64 = ppc64; - let VMX =vmx; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType1.Value; - let Arg2Type = OperandType2.Value; - let Arg3Type = OperandType3.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - bits<4> operand3; - - - let Inst {31-26} = opconstant0; - let Inst {10} = opconstant1; - let Inst {5-0} = opconstant2; - let Inst {25-21} = operand0; - let Inst {20-16} = operand1; - let Inst {15-11} = operand2; - let Inst {9-6} = operand3; -} - -class PPC32InstPatternPseudo : PPC32Inst { - let Name = name; - let ArgCount = 0; - let PPC64 = 0; - let VMX = 0; - - let Arg0Type = OperandType0.Value; - let Arg1Type = OperandType0.Value; - let Arg2Type = OperandType0.Value; - let Arg3Type = OperandType0.Value; - let Arg4Type = 0; - let PPC64 = 0; - let VMX = 0; - bits<5> operand0; - bits<5> operand1; - bits<5> operand2; - bits<4> operand3; - - - let Inst {31-0} = 0; -} - +include "PowerPCInstrFormats.td" let isTerminator = 1, isReturn = 1 in def BLR : PPC32InstPattern11 <"blr", Imm2, 160768, 32, 0, 0>;