aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2006-10-16 18:32:36 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2006-10-16 18:32:36 +0000
commita6f149d548bcd5f24f391fa0f9b196104db550dd (patch)
tree449989fc27b1c9d135991f52d17386b14fc92a2e /lib
parent90057aaeb7e0d2cc0d0cfd3d7dd59a86ad4ec4e6 (diff)
add the FPBinOp class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30980 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index c648f826ed..64996923ba 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -51,6 +51,11 @@ class IntBinOp<string OpcStr, SDNode OpNode> :
!strconcat(OpcStr, " $dst, $a, $b"),
[(set IntRegs:$dst, (OpNode IntRegs:$a, IntRegs:$b))]>;
+class FPBinOp<string OpcStr, SDNode OpNode> :
+ InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
+ !strconcat(OpcStr, " $dst, $a, $b"),
+ [(set FPRegs:$dst, (OpNode FPRegs:$a, FPRegs:$b))]>;
+
class Addr1BinOp<string OpcStr, SDNode OpNode> :
InstARM<(ops IntRegs:$dst, IntRegs:$a, op_addr_mode1:$b),
!strconcat(OpcStr, " $dst, $a, $b"),
@@ -251,17 +256,13 @@ def FCVTSD : InstARM<(ops FPRegs:$dst, DFPRegs:$src),
def FMSTAT : InstARM<(ops ), "fmstat", [(armfmstat)]>;
// Floating Point Arithmetic
-def FADDS : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
- "fadds $dst, $a, $b",
- [(set FPRegs:$dst, (fadd FPRegs:$a, FPRegs:$b))]>;
+def FADDS : FPBinOp<"fadds", fadd>;
def FADDD : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
"faddd $dst, $a, $b",
[(set DFPRegs:$dst, (fadd DFPRegs:$a, DFPRegs:$b))]>;
-def FSUBS : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
- "fsubs $dst, $a, $b",
- [(set FPRegs:$dst, (fsub FPRegs:$a, FPRegs:$b))]>;
+def FSUBS : FPBinOp<"fsubs", fsub>;
def FSUBD : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
"fsubd $dst, $a, $b",
@@ -275,9 +276,7 @@ def FNEGD : InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
"fnegd $dst, $src",
[(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
-def FMULS : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
- "fmuls $dst, $a, $b",
- [(set FPRegs:$dst, (fmul FPRegs:$a, FPRegs:$b))]>;
+def FMULS : FPBinOp<"fmuls", fmul>;
def FMULD : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
"fmuld $dst, $a, $b",