diff options
Diffstat (limited to 'include/llvm/CodeGen')
| -rw-r--r-- | include/llvm/CodeGen/SelectionDAG.h | 4 | ||||
| -rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 19 |
2 files changed, 12 insertions, 11 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index 70c7185c61..c40295891c 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -359,12 +359,12 @@ public: /// getAtomic - Gets a node for an atomic op, produces result and chain, takes // 3 operands SDOperand getAtomic(unsigned Opcode, SDOperand Chain, SDOperand Ptr, - SDOperand A2, SDOperand A3, MVT::ValueType VT); + SDOperand Cmp, SDOperand Swp, MVT::ValueType VT); /// getAtomic - Gets a node for an atomic op, produces result and chain, takes // 2 operands SDOperand getAtomic(unsigned Opcode, SDOperand Chain, SDOperand Ptr, - SDOperand A2, MVT::ValueType VT); + SDOperand Val, MVT::ValueType VT); /// getLoad - Loads are not normal binary operators: their result type is not /// determined by their operands, and they produce a value AND a token chain. diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 293bb73a23..bffcfb245e 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -1193,26 +1193,27 @@ class AtomicSDNode : public SDNode { SDOperand Ops[4]; MVT::ValueType OrigVT; public: - AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand X, - SDOperand Y, SDOperand Z, MVT::ValueType VT) + AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand Ptr, + SDOperand Cmp, SDOperand Swp, MVT::ValueType VT) : SDNode(Opc, VTL) { Ops[0] = Chain; - Ops[1] = X; - Ops[2] = Y; - Ops[3] = Z; + Ops[1] = Ptr; + Ops[2] = Swp; + Ops[3] = Cmp; InitOperands(Ops, 4); OrigVT=VT; } - AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand X, - SDOperand Y, MVT::ValueType VT) + AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand Ptr, + SDOperand Val, MVT::ValueType VT) : SDNode(Opc, VTL) { Ops[0] = Chain; - Ops[1] = X; - Ops[2] = Y; + Ops[1] = Ptr; + Ops[2] = Val; InitOperands(Ops, 3); OrigVT=VT; } MVT::ValueType getVT() const { return OrigVT; } + bool isCompareAndSwap() const { return getOpcode() == ISD::ATOMIC_LCS; } }; class StringSDNode : public SDNode { |
