You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
case Instruction::And: (this->* funcAnd[llvm::cryptoutils->get_range(2)])(cast<BinaryOperator>(inst)); ++And; break; case Instruction::Or: (this->* funcOr[llvm::cryptoutils->get_range(2)])(cast<BinaryOperator>(inst)); ++Or; break;
We know that this is used to handle the "and" instruction. I want to know whether the "and" here refers to the bitwise operator "&"or the logical operator "&&"。 // Implementation of a = b & c => a = (b^~c)& b void Substitution::andSubstitution(BinaryOperator *bo) // Implementation of a = a && b <=> !(!a | !b) && (r | !r) void Substitution::andSubstitutionRand(BinaryOperator *bo) funcAnd[0] = &Substitution::andSubstitution; funcAnd[1] = &Substitution::andSubstitutionRand;
These two functions are "&"and "&&"processed separately. Why can you call them in "case AND"? Why don't you process "&"and&&"separately
The text was updated successfully, but these errors were encountered:
In Substitution.cpp have a code block like this:
case Instruction::And: (this->* funcAnd[llvm::cryptoutils->get_range(2)])(cast<BinaryOperator>(inst)); ++And; break; case Instruction::Or: (this->* funcOr[llvm::cryptoutils->get_range(2)])(cast<BinaryOperator>(inst)); ++Or; break;
We know that this is used to handle the "and" instruction. I want to know whether the "and" here refers to the bitwise operator "&"or the logical operator "&&"。
// Implementation of a = b & c => a = (b^~c)& b void Substitution::andSubstitution(BinaryOperator *bo)
// Implementation of a = a && b <=> !(!a | !b) && (r | !r) void Substitution::andSubstitutionRand(BinaryOperator *bo)
funcAnd[0] = &Substitution::andSubstitution; funcAnd[1] = &Substitution::andSubstitutionRand;
These two functions are "&"and "&&"processed separately. Why can you call them in "case AND"? Why don't you process "&"and&&"separately
The text was updated successfully, but these errors were encountered: