[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td

Rafael Espindola rafael.espindola at gmail.com
Tue Oct 17 13:45:37 PDT 2006



Changes in directory llvm/lib/Target/ARM:

ARMInstrInfo.td updated: 1.63 -> 1.64
---
Log message:

add the FPUnaryOp and DFPUnaryOp classes


---
Diffs of the changes:  (+14 -15)

 ARMInstrInfo.td |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.63 llvm/lib/Target/ARM/ARMInstrInfo.td:1.64
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.63	Tue Oct 17 15:33:13 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td	Tue Oct 17 15:45:22 2006
@@ -70,6 +70,16 @@
                  !strconcat(OpcStr, " $dst, $a, $b"),
                  [(set DFPRegs:$dst, (OpNode DFPRegs:$a, DFPRegs:$b))]>;
 
+class FPUnaryOp<string OpcStr, SDNode OpNode> :
+        InstARM<(ops FPRegs:$dst, FPRegs:$src),
+                 !strconcat(OpcStr, " $dst, $src"),
+                 [(set FPRegs:$dst, (OpNode FPRegs:$src))]>;
+
+class DFPUnaryOp<string OpcStr, SDNode OpNode> :
+        InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
+                 !strconcat(OpcStr, " $dst, $src"),
+                 [(set DFPRegs:$dst, (OpNode DFPRegs:$src))]>;
+
 class Addr1BinOp<string OpcStr, SDNode OpNode> :
         InstARM<(ops IntRegs:$dst, IntRegs:$a, op_addr_mode1:$b),
                  !strconcat(OpcStr, " $dst, $a, $b"),
@@ -280,21 +290,10 @@
 def FSUBS   : FPBinOp<"fsubs",  fsub>;
 def FSUBD   : DFPBinOp<"fsubd", fsub>;
 
-def FNEGS   : InstARM<(ops FPRegs:$dst, FPRegs:$src),
-                       "fnegs $dst, $src",
-		       [(set FPRegs:$dst, (fneg FPRegs:$src))]>;
-
-def FNEGD   : InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
-                       "fnegd $dst, $src",
-		       [(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
-
-def FABSS   : InstARM<(ops FPRegs:$dst, FPRegs:$src),
-                       "fabss $dst, $src",
-		       [(set FPRegs:$dst, (fabs FPRegs:$src))]>;
-
-def FABSD   : InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
-                       "fabsd $dst, $src",
-		       [(set DFPRegs:$dst, (fabs DFPRegs:$src))]>;
+def FNEGS   : FPUnaryOp<"fnegs",  fneg>;
+def FNEGD   : DFPUnaryOp<"fnegd", fneg>;
+def FABSS   : FPUnaryOp<"fabss",  fabs>;
+def FABSD   : DFPUnaryOp<"fabsd", fabs>;
 
 def FMULS   : FPBinOp<"fmuls", fmul>;
 def FMULD   : DFPBinOp<"fmuld", fmul>;






More information about the llvm-commits mailing list