summaryrefslogtreecommitdiff
path: root/lib/Target/Sparc/SparcISelLowering.h
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-09-03 04:11:59 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-09-03 04:11:59 +0000
commit75ddb2bb34f96c2bda48d0e86331fb52b55b8d03 (patch)
tree53fdaf0dde28d1df45506ab73509c997ed494786 /lib/Target/Sparc/SparcISelLowering.h
parent4ccfbedaedc35920dc437aec501ec2bc4f8a4a2a (diff)
downloadllvm-75ddb2bb34f96c2bda48d0e86331fb52b55b8d03.tar.gz
llvm-75ddb2bb34f96c2bda48d0e86331fb52b55b8d03.tar.bz2
llvm-75ddb2bb34f96c2bda48d0e86331fb52b55b8d03.tar.xz
[Sparc] Add support for soft long double (fp128).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189780 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc/SparcISelLowering.h')
-rw-r--r--lib/Target/Sparc/SparcISelLowering.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcISelLowering.h b/lib/Target/Sparc/SparcISelLowering.h
index 261c25abcc..64c688d681 100644
--- a/lib/Target/Sparc/SparcISelLowering.h
+++ b/lib/Target/Sparc/SparcISelLowering.h
@@ -127,6 +127,23 @@ namespace llvm {
SDValue makeHiLoPair(SDValue Op, unsigned HiTF, unsigned LoTF,
SelectionDAG &DAG) const;
SDValue makeAddress(SDValue Op, SelectionDAG &DAG) const;
+
+ SDValue LowerF128_LibCallArg(SDValue Chain, ArgListTy &Args,
+ SDValue Arg, SDLoc DL,
+ SelectionDAG &DAG) const;
+ SDValue LowerF128Op(SDValue Op, SelectionDAG &DAG,
+ const char *LibFuncName,
+ unsigned numArgs) const;
+ SDValue LowerF128Compare(SDValue LHS, SDValue RHS,
+ unsigned &SPCC,
+ SDLoc DL,
+ SelectionDAG &DAG) const;
+
+ bool ShouldShrinkFPConstant(EVT VT) const {
+ // Do not shrink FP constpool if VT == MVT::f128.
+ // (ldd, call _Q_fdtoq) is more expensive than two ldds.
+ return VT != MVT::f128;
+ }
};
} // end namespace llvm