diff options
Diffstat (limited to 'lib/Target/SparcV9/InstrSelection/InstrForest.cpp')
-rw-r--r-- | lib/Target/SparcV9/InstrSelection/InstrForest.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp index d7edf15..c24c35b 100644 --- a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp +++ b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp @@ -73,10 +73,15 @@ InstructionNode::InstructionNode(Instruction* I) { opLabel = opLabel + 100; // load/getElem with index vector } + else if (opLabel == Instruction::Xor && + BinaryOperator::isNot(I)) + { + opLabel = (I->getType() == Type::BoolTy)? NotOp // boolean Not operator + : BNotOp; // bitwise Not operator + } else if (opLabel == Instruction::And || opLabel == Instruction::Or || - opLabel == Instruction::Xor || - opLabel == Instruction::Not) + opLabel == Instruction::Xor) { // Distinguish bitwise operators from logical operators! if (I->getType() != Type::BoolTy) |