diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2006-10-16 18:32:36 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2006-10-16 18:32:36 +0000 |
| commit | f63752f94ba778b541462f37393ecdd8856991b7 (patch) | |
| tree | 473f173dcd1106f996a6023c488f8e618cbd6a7c /llvm/lib/Target | |
| parent | b23dc141354c52dba2cb05efdd514be9acf2e652 (diff) | |
| download | bcm5719-llvm-f63752f94ba778b541462f37393ecdd8856991b7.tar.gz bcm5719-llvm-f63752f94ba778b541462f37393ecdd8856991b7.zip | |
add the FPBinOp class
llvm-svn: 30980
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index c648f826edd..64996923baf 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/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", |

