Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns."
[oota-llvm.git] / lib / Target / MBlaze / MBlazeInstrFPU.td
index d264a09813488a1f394f20b339c6e3232e638dc2..094de5c0c1a8fdf1dbbe7826f1a5b741665ef441 100644 (file)
@@ -52,9 +52,9 @@ class CmpFN<bits<6> op, bits<11> flags, string instr_asm,
 
 class ArithFR<bits<6> op, bits<11> flags, string instr_asm, SDNode OpNode,
              InstrItinClass itin> :
-             TA<op, flags, (outs GPR:$dst), (ins GPR:$b, GPR:$c),
-                !strconcat(instr_asm, "   $dst, $c, $b"),
-                [(set GPR:$dst, (OpNode GPR:$b, GPR:$c))], itin>;
+             TAR<op, flags, (outs GPR:$dst), (ins GPR:$b, GPR:$c),
+                 !strconcat(instr_asm, "   $dst, $c, $b"),
+                 [(set GPR:$dst, (OpNode GPR:$b, GPR:$c))], itin>;
 
 class LogicF<bits<6> op, string instr_asm> :
              TB<op, (outs GPR:$dst), (ins GPR:$b, GPR:$c),
@@ -99,18 +99,20 @@ let Predicates=[HasFPU] in {
   def FRSUB  : ArithFR<0x16, 0x080, "frsub  ", fsub, IIAlu>;
   def FMUL   :  ArithF<0x16, 0x100, "fmul   ", fmul, IIAlu>;
   def FDIV   :  ArithF<0x16, 0x180, "fdiv   ", fdiv, IIAlu>;
+}
 
-  def LWF    :   LoadFM<0x32, "lw     ", load>;
-  def LWFI   :  LoadFMI<0x32, "lwi    ", load>;
+let Predicates=[HasFPU], isCodeGenOnly=1 in {
+  def LWF    :   LoadFM<0x32, "lw      ", load>;
+  def LWFI   :  LoadFMI<0x3A, "lwi     ", load>;
 
-  def SWF    :  StoreFM<0x32, "sw     ", store>;
-  def SWFI   : StoreFMI<0x32, "swi    ", store>;
+  def SWF    :  StoreFM<0x36, "sw      ", store>;
+  def SWFI   : StoreFMI<0x3E, "swi     ", store>;
 }
 
 let Predicates=[HasFPU,HasSqrt] in {
   def FLT    : ArithIF<0x16, 0x280, "flt    ", IIAlu>;
   def FINT   : ArithFI<0x16, 0x300, "fint   ", IIAlu>;
-  def FSQRT  : ArithF2<0x16, 0x300, "fsqrt  ", IIAlu>;
+  def FSQRT  : ArithF2<0x16, 0x380, "fsqrt  ", IIAlu>;
 }
 
 let isAsCheapAsAMove = 1 in {
@@ -124,7 +126,7 @@ let isAsCheapAsAMove = 1 in {
 }
 
 
-let usesCustomInserter = 1, isCodeGenOnly = 1 in {
+let usesCustomInserter = 1 in {
   def Select_FCC : MBlazePseudo<(outs GPR:$dst),
     (ins GPR:$T, GPR:$F, GPR:$CMP, i32imm:$CC),
     "; SELECT_FCC PSEUDO!",
@@ -141,74 +143,74 @@ let Predicates=[HasFPU] in {
 // SET_CC operations
 let Predicates=[HasFPU] in {
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETEQ),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_EQ GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETNE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_EQ GPR:$L, GPR:$R), 1)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETOEQ),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_EQ GPR:$L, GPR:$R), 2)>;
  def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETONE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (XOR (FCMP_UN GPR:$L, GPR:$R),
                             (FCMP_EQ GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETONE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_EQ GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETGT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_GT GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETLT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_LT GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETGE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_GE GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETLE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_LE GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETOGT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_GT GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETOLT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_LT GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETOGE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_GE GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETOLE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_LE GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETUEQ),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_EQ GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETUNE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_NE GPR:$L, GPR:$R), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETUGT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_GT GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETULT),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_LT GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETUGE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_GE GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETULE),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (OR (FCMP_UN GPR:$L, GPR:$R),
                            (FCMP_LE GPR:$L, GPR:$R)), 2)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETO),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_UN GPR:$L, GPR:$R), 1)>;
   def : Pat<(setcc (f32 GPR:$L), (f32 GPR:$R), SETUO),
-            (Select_CC (ADDI (i32 R0), 1), (ADDI (i32 R0), 0),
+            (Select_CC (ADDIK (i32 R0), 1), (ADDIK (i32 R0), 0),
                        (FCMP_UN GPR:$L, GPR:$R), 2)>;
 }