Merge pull request #7362 from ethereum/develop

Merge develop into develop_060
This commit is contained in:
chriseth
2019-09-05 16:50:44 +02:00
committed by GitHub
5 changed files with 54 additions and 74 deletions
@@ -0,0 +1,14 @@
{
mstore(0, 7)
sstore(0, mload(0))
mstore(sub(0, 1), sub(0, 1))
sstore(1, mload(sub(0, 1)))
}
// ----
// Trace:
// Memory dump:
// 0: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07
// FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0: 00000000000000000000000000000000000000000000000000000000000000ff
// Storage dump:
// 0000000000000000000000000000000000000000000000000000000000000000: 0000000000000000000000000000000000000000000000000000000000000007
// 0000000000000000000000000000000000000000000000000000000000000001: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+1 -1
View File
@@ -741,7 +741,7 @@ void ProtoConverter::visit(LowLevelCall const& _x)
m_output << ", ";
visit(_x.addr());
m_output << ", ";
if (type == LowLevelCall::CALL || LowLevelCall::CALLCODE)
if (type == LowLevelCall::CALL || type == LowLevelCall::CALLCODE)
{
visit(_x.wei());
m_output << ", ";
@@ -248,16 +248,15 @@ u256 EVMInstructionInterpreter::eval(
return m_state.gaslimit;
// --------------- memory / storage / logs ---------------
case Instruction::MLOAD:
if (accessMemory(arg[0], 0x20))
return readMemoryWord(arg[0]);
return 0;
accessMemory(arg[0], 0x20);
return readMemoryWord(arg[0]);
case Instruction::MSTORE:
if (accessMemory(arg[0], 0x20))
writeMemoryWord(arg[0], arg[1]);
accessMemory(arg[0], 0x20);
writeMemoryWord(arg[0], arg[1]);
return 0;
case Instruction::MSTORE8:
if (accessMemory(arg[0], 1))
m_state.memory[arg[0]] = uint8_t(arg[1] & 0xff);
accessMemory(arg[0], 1);
m_state.memory[arg[0]] = uint8_t(arg[1] & 0xff);
return 0;
case Instruction::SLOAD:
return m_state.storage[h256(arg[0])];