mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-10-21 01:25:20 +00:00
Add assertions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19596 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c8ea3c4710
commit
7636512f59
@ -543,6 +543,37 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
|||||||
|
|
||||||
SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||||
SDOperand N1, SDOperand N2) {
|
SDOperand N1, SDOperand N2) {
|
||||||
|
#ifndef NDEBUG
|
||||||
|
switch (Opcode) {
|
||||||
|
case ISD::AND:
|
||||||
|
case ISD::OR:
|
||||||
|
case ISD::XOR:
|
||||||
|
case ISD::UDIV:
|
||||||
|
case ISD::UREM:
|
||||||
|
assert(MVT::isInteger(VT) && "This operator does not apply to FP types!");
|
||||||
|
// fall through
|
||||||
|
case ISD::ADD:
|
||||||
|
case ISD::SUB:
|
||||||
|
case ISD::MUL:
|
||||||
|
case ISD::SDIV:
|
||||||
|
case ISD::SREM:
|
||||||
|
assert(N1.getValueType() == N2.getValueType() &&
|
||||||
|
N1.getValueType() == VT && "Binary operator types must match!");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ISD::SHL:
|
||||||
|
case ISD::SRA:
|
||||||
|
case ISD::SRL:
|
||||||
|
assert(VT == N1.getValueType() &&
|
||||||
|
"Shift operators return type must be the same as their first arg");
|
||||||
|
assert(MVT::isInteger(VT) && MVT::isInteger(N2.getValueType()) &&
|
||||||
|
"Shifts only work on integers");
|
||||||
|
assert(VT >= MVT::i8 && "Shift amount cannot be a MVT::i1");
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1.Val);
|
ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1.Val);
|
||||||
ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2.Val);
|
ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2.Val);
|
||||||
if (N1C) {
|
if (N1C) {
|
||||||
|
Loading…
Reference in New Issue
Block a user