[mips] Modify definitions of floating point branch instructions.
authorAkira Hatanaka <ahatanaka@mips.com>
Thu, 13 Dec 2012 01:32:36 +0000 (01:32 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Thu, 13 Dec 2012 01:32:36 +0000 (01:32 +0000)
No functionality change.

llvm-svn: 170076

llvm/lib/Target/Mips/MipsInstrFPU.td
llvm/lib/Target/Mips/MipsInstrFormats.td

index 182f2e9..878e6b2 100644 (file)
@@ -273,6 +273,17 @@ class SWXC1_FT<string opstr, RegisterClass DRC, RegisterClass PRC,
          !strconcat(opstr, "\t$fs, ${index}(${base})"),
          [(OpNode DRC:$fs, (add PRC:$base, PRC:$index))], Itin, FrmFI>;
 
+class BC1F_FT<string opstr, InstrItinClass Itin,
+              SDPatternOperator Op = null_frag>  :
+  InstSE<(outs), (ins brtarget:$offset), !strconcat(opstr, "\t$offset"),
+         [(MipsFPBrcond Op, bb:$offset)], Itin, FrmFI> {
+  let isBranch = 1;
+  let isTerminator = 1;
+  let hasDelaySlot = 1;
+  let Defs = [AT];
+  let Uses = [FCR31];
+}
+
 //===----------------------------------------------------------------------===//
 // Floating Point Instructions
 //===----------------------------------------------------------------------===//
@@ -495,8 +506,8 @@ let isBranch=1, isTerminator=1, hasDelaySlot=1, base=0x8, Uses=[FCR31] in
 }
 
 let DecoderMethod = "DecodeBC1" in {
-def BC1F  : FBRANCH<0, 0, MIPS_BRANCH_F,  "bc1f">;
-def BC1T  : FBRANCH<0, 1, MIPS_BRANCH_T,  "bc1t">;
+def BC1F : BC1F_FT<"bc1f", IIBranch, MIPS_BRANCH_F>, BC1F_FM<0, 0>;
+def BC1T : BC1F_FT<"bc1t", IIBranch, MIPS_BRANCH_T>, BC1F_FM<0, 1>;
 }
 //===----------------------------------------------------------------------===//
 // Floating Point Flag Conditions
index 210a1cb..6c7e3c5 100644 (file)
@@ -453,3 +453,16 @@ class SWXC1_FM<bits<6> funct> {
   let Inst{10-6}  = 0;
   let Inst{5-0}   = funct;
 }
+
+class BC1F_FM<bit nd, bit tf> {
+  bits<16> offset;
+
+  bits<32> Inst;
+
+  let Inst{31-26} = 0x11;
+  let Inst{25-21} = 0x8;
+  let Inst{20-18} = 0; // cc
+  let Inst{17} = nd;
+  let Inst{16} = tf;
+  let Inst{15-0} = offset;
+}