AArch64: add comment missed out from earlier patch.
authorTim Northover <tnorthover@apple.com>
Fri, 17 Jul 2015 03:31:50 +0000 (03:31 +0000)
committerTim Northover <tnorthover@apple.com>
Fri, 17 Jul 2015 03:31:50 +0000 (03:31 +0000)
Helps explain some of the background behind this bit of code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242503 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64ISelDAGToDAG.cpp

index cf33782365bea9d06b84062c1336528746e87570..1a1b58bd26efb836f3eec590661e981528f9225a 100644 (file)
@@ -2062,6 +2062,10 @@ SDNode *AArch64DAGToDAGISel::SelectLIBM(SDNode *N) {
   SmallVector<SDValue, 2> Ops;
   Ops.push_back(In);
 
+  // C11 leaves it implementation-defined whether these operations trigger an
+  // inexact exception. IEEE says they don't.  Unfortunately, Darwin decided
+  // they do so we sometimes have to insert a special instruction just to set
+  // the right bit in FPSR.
   if (Subtarget->isTargetDarwin() && !TM.Options.UnsafeFPMath) {
     SDNode *FRINTX = CurDAG->getMachineNode(FRINTXOpc, dl, VT, MVT::Glue, In);
     Ops.push_back(SDValue(FRINTX, 1));