aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Target/AArch64/AArch64ISelLowering.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Target/AArch64/AArch64ISelLowering.cpp b/lib/Target/AArch64/AArch64ISelLowering.cpp
index 2158b05..652f129 100644
--- a/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -2389,8 +2389,10 @@ static SDValue PerformATOMIC_FENCECombine(SDNode *FenceNode,
if (!AtomicNode)
return SDValue();
- uint64_t FenceOrder = FenceNode->getConstantOperandVal(1);
- uint64_t FenceScope = FenceNode->getConstantOperandVal(2);
+ AtomicOrdering FenceOrder
+ = static_cast<AtomicOrdering>(FenceNode->getConstantOperandVal(1));
+ SynchronizationScope FenceScope
+ = static_cast<SynchronizationScope>(FenceNode->getConstantOperandVal(2));
if (FenceOrder != Acquire || FenceScope != AtomicNode->getSynchScope())
return SDValue();
@@ -2409,7 +2411,7 @@ static SDValue PerformATOMIC_FENCECombine(SDNode *FenceNode,
Chain, // Chain
AtomicOp.getOperand(1), // Pointer
AtomicNode->getMemOperand(), Acquire,
- static_cast<SynchronizationScope>(FenceScope));
+ FenceScope);
if (AtomicNode->getOpcode() == ISD::ATOMIC_LOAD)
DAG.ReplaceAllUsesWith(AtomicNode, Op.getNode());
@@ -2428,10 +2430,10 @@ static SDValue PerformATOMIC_STORECombine(SDNode *N,
if (FenceOp.getOpcode() != ISD::ATOMIC_FENCE)
return SDValue();
- uint64_t FenceOrder
- = cast<ConstantSDNode>(FenceOp.getOperand(1))->getZExtValue();
- uint64_t FenceScope
- = cast<ConstantSDNode>(FenceOp.getOperand(2))->getZExtValue();
+ AtomicOrdering FenceOrder
+ = static_cast<AtomicOrdering>(FenceOp->getConstantOperandVal(1));
+ SynchronizationScope FenceScope
+ = static_cast<SynchronizationScope>(FenceOp->getConstantOperandVal(2));
if (FenceOrder != Release || FenceScope != AtomicNode->getSynchScope())
return SDValue();
@@ -2442,7 +2444,7 @@ static SDValue PerformATOMIC_STORECombine(SDNode *N,
AtomicNode->getOperand(1), // Pointer
AtomicNode->getOperand(2), // Value
AtomicNode->getMemOperand(), Release,
- static_cast<SynchronizationScope>(FenceScope));
+ FenceScope);
}
/// For a true bitfield insert, the bits getting into that contiguous mask