2018-10-28 11:57:13 +00:00
|
|
|
{
|
|
|
|
function allocate(size) -> p
|
|
|
|
{
|
|
|
|
let _1 := 0x40
|
|
|
|
p := mload(_1)
|
|
|
|
let _2 := add(p, size)
|
|
|
|
let _3 := 0x40
|
|
|
|
mstore(_3, _2)
|
|
|
|
}
|
|
|
|
function array_index_access(array, index) -> p_1
|
|
|
|
{
|
|
|
|
let _4 := 0x20
|
|
|
|
let _5 := mul(index, _4)
|
|
|
|
p_1 := add(array, _5)
|
|
|
|
}
|
|
|
|
let _6 := 0x20
|
|
|
|
let _7 := allocate(_6)
|
|
|
|
pop(_7)
|
|
|
|
let _8 := 0x40
|
|
|
|
let x := allocate(_8)
|
|
|
|
let _9 := 2
|
|
|
|
let _10 := 3
|
|
|
|
let _11 := array_index_access(x, _10)
|
|
|
|
mstore(_11, _9)
|
|
|
|
}
|
2019-04-01 14:33:46 +00:00
|
|
|
// ====
|
|
|
|
// step: commonSubexpressionEliminator
|
2018-10-28 11:57:13 +00:00
|
|
|
// ----
|
|
|
|
// {
|
|
|
|
// function allocate(size) -> p
|
|
|
|
// {
|
|
|
|
// let _1 := 0x40
|
|
|
|
// p := mload(_1)
|
|
|
|
// let _2 := add(p, size)
|
|
|
|
// let _3 := _1
|
|
|
|
// mstore(_1, _2)
|
|
|
|
// }
|
|
|
|
// function array_index_access(array, index) -> p_1
|
|
|
|
// {
|
|
|
|
// let _4 := 0x20
|
|
|
|
// let _5 := mul(index, _4)
|
|
|
|
// p_1 := add(array, _5)
|
|
|
|
// }
|
|
|
|
// let _6 := 0x20
|
|
|
|
// let _7 := allocate(_6)
|
|
|
|
// pop(_7)
|
|
|
|
// let _8 := 0x40
|
|
|
|
// let x := allocate(_8)
|
|
|
|
// let _9 := 2
|
|
|
|
// let _10 := 3
|
|
|
|
// let _11 := array_index_access(x, _10)
|
|
|
|
// mstore(_11, _9)
|
|
|
|
// }
|