mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
Unary Not (boolean and bitwise) is no longer a separate LLVM instruction
but is instead implemented with XOR. Note that the InstrForest opLabels for Not and BNot remain the same, i.e., the XOR is recognized and represented as a (boolean or bitwise) Not when building the instruction trees. But these tree nodes are now binary, not unary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3343 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ce08e1dd3e
commit
85af131d9e
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user