Use shift helper in LValue

This commit is contained in:
Alex Beregszaszi 2017-06-15 13:02:05 +01:00
parent 68b0ac4fdd
commit d261265595

View File

@ -186,7 +186,7 @@ void StorageItem::retrieveValue(SourceLocation const&, bool _remove) const
solUnimplemented("Not yet implemented - FixedPointType."); solUnimplemented("Not yet implemented - FixedPointType.");
if (m_dataType->category() == Type::Category::FixedBytes) if (m_dataType->category() == Type::Category::FixedBytes)
{ {
m_context << (u256(0x1) << (256 - 8 * m_dataType->storageBytes())) << Instruction::MUL; CompilerUtils(m_context).leftShiftNumberOnStack(256 - 8 * m_dataType->storageBytes());
cleaned = true; cleaned = true;
} }
else if ( else if (
@ -267,9 +267,7 @@ void StorageItem::storeValue(Type const& _sourceType, SourceLocation const& _loc
else if (m_dataType->category() == Type::Category::FixedBytes) else if (m_dataType->category() == Type::Category::FixedBytes)
{ {
solAssert(_sourceType.category() == Type::Category::FixedBytes, "source not fixed bytes"); solAssert(_sourceType.category() == Type::Category::FixedBytes, "source not fixed bytes");
m_context CompilerUtils(m_context).rightShiftNumberOnStack(256 - 8 * dynamic_cast<FixedBytesType const&>(*m_dataType).numBytes(), false);
<< (u256(0x1) << (256 - 8 * dynamic_cast<FixedBytesType const&>(*m_dataType).numBytes()))
<< Instruction::SWAP1 << Instruction::DIV;
} }
else else
{ {