summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCInstrFormats.td
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-04-14 03:20:38 +0000
committerNate Begeman <natebegeman@mac.com>2005-04-14 03:20:38 +0000
commitef7288c824e082d560edb783156a74ee310bfe28 (patch)
tree24878998a39da3b046add3a09a0ea9c9faf33047 /lib/Target/PowerPC/PPCInstrFormats.td
parent1b7f7fbf95b373fa54e67f9d5b603da8a7f77a31 (diff)
downloadllvm-ef7288c824e082d560edb783156a74ee310bfe28.tar.gz
llvm-ef7288c824e082d560edb783156a74ee310bfe28.tar.bz2
llvm-ef7288c824e082d560edb783156a74ee310bfe28.tar.xz
Add the necessary support to codegen condition register logical ops with
register allocated condition registers. Make sure that the printed output is gas compatible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21295 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrFormats.td')
-rw-r--r--lib/Target/PowerPC/PPCInstrFormats.td18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td
index 6d845ebde3..181f2b3cd7 100644
--- a/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/lib/Target/PowerPC/PPCInstrFormats.td
@@ -309,8 +309,22 @@ class XForm_28<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
// 1.7.7 XL-Form
class XLForm_1<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
- dag OL, string asmstr>
- : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, ppc64, vmx, OL, asmstr> {
+ bits<3> CRD;
+ bits<2> CRDb;
+ bits<3> CRA;
+ bits<2> CRAb;
+ bits<3> CRB;
+ bits<2> CRBb;
+
+ let Inst{6-8} = CRD;
+ let Inst{9-10} = CRDb;
+ let Inst{11-13} = CRA;
+ let Inst{14-15} = CRAb;
+ let Inst{16-18} = CRB;
+ let Inst{19-20} = CRBb;
+ let Inst{21-30} = xo;
+ let Inst{31} = 0;
}
class XLForm_2<bits<6> opcode, bits<10> xo, bit lk, bit ppc64, bit vmx,