Merge pull request #9362 from ethereum/swappedTagConjunctions

Remove unneccessary masking of tags.
This commit is contained in:
chriseth
2020-07-13 17:35:06 +02:00
committed by GitHub
2 changed files with 13 additions and 1 deletions
+12 -1
View File
@@ -290,9 +290,10 @@ struct TagConjunctions: SimplePeepholeOptimizerMethod<TagConjunctions, 3>
std::back_insert_iterator<AssemblyItems> _out
)
{
if (_and != Instruction::AND)
return false;
if (
_pushTag.type() == PushTag &&
_and == Instruction::AND &&
_pushConstant.type() == Push &&
(_pushConstant.data() & u256(0xFFFFFFFF)) == u256(0xFFFFFFFF)
)
@@ -300,6 +301,16 @@ struct TagConjunctions: SimplePeepholeOptimizerMethod<TagConjunctions, 3>
*_out = _pushTag;
return true;
}
else if (
// tag and constant are swapped
_pushConstant.type() == PushTag &&
_pushTag.type() == Push &&
(_pushTag.data() & u256(0xFFFFFFFF)) == u256(0xFFFFFFFF)
)
{
*_out = _pushConstant;
return true;
}
else
return false;
}