projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c8fe2bf
)
AArch64: add comment missed out from earlier patch.
author
Tim Northover
<tnorthover@apple.com>
Fri, 17 Jul 2015 03:31:50 +0000
(
03:31
+0000)
committer
Tim 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
patch
|
blob
|
history
diff --git
a/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
b/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
index cf33782365bea9d06b84062c1336528746e87570..1a1b58bd26efb836f3eec590661e981528f9225a 100644
(file)
--- a/
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+++ b/
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
@@
-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));