Rematerialize zero literals

This commit is contained in:
Nikola Matic
2023-08-07 17:33:16 +02:00
parent 511712570b
commit 96e7b4f46b
195 changed files with 665 additions and 744 deletions
@@ -457,26 +457,25 @@
}
}
// ====
// EVMVersion: >=constantinople
// EVMVersion: >=shanghai
// ----
// step: fullSuite
//
// {
// {
// let _1 := 0
// let _2 := mload(_1)
// let _1 := mload(0)
// let pos := 0x20
// let length := mload(_2)
// let length := mload(_1)
// mstore(pos, length)
// pos := 64
// let srcPtr := add(_2, 0x20)
// let i := _1
// let srcPtr := add(_1, 0x20)
// let i := 0
// for { } lt(i, length) { i := add(i, 1) }
// {
// let _3 := mload(srcPtr)
// let _2 := mload(srcPtr)
// let pos_1 := pos
// let srcPtr_1 := _3
// let i_1 := _1
// let srcPtr_1 := _2
// let i_1 := 0
// for { } lt(i_1, 0x3) { i_1 := add(i_1, 1) }
// {
// mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))
@@ -489,7 +488,7 @@
// let a, b, c, d := abi_decode_uint256t_uint256t_array_uint256_dynt_array_array_uint256_memory_dyn(mload(0x20), mload(64))
// sstore(a, b)
// sstore(c, d)
// sstore(_1, pos)
// sstore(0, pos)
// }
// function abi_decode_array_array_uint256_memory_dyn(offset, end) -> array
// {
@@ -6,6 +6,8 @@
}
if y { revert(0, 0) }
}
// ====
// EVMVersion: >=shanghai
// ----
// step: fullSuite
//
@@ -13,15 +15,7 @@
// {
// let y := mload(0x20)
// let _1 := iszero(and(y, 8))
// for { }
// iszero(_1)
// {
// if y
// {
// let _2 := 0
// revert(_2, _2)
// }
// }
// for { } iszero(_1) { if y { revert(0, 0) } }
// {
// if y { continue }
// sstore(1, 0)
@@ -7,15 +7,14 @@
sstore(a, b)
}
// ====
// EVMVersion: >=constantinople
// EVMVersion: >=shanghai
// ----
// step: fullSuite
//
// {
// {
// let _1 := sub(shl(160, 1), 1)
// let _2 := 0
// let a := and(create2(_2, _2, 0x20, _2), _1)
// sstore(a, and(_1, create2(_2, _2, 0x20, _2)))
// let a := and(create2(0, 0, 0x20, 0), _1)
// sstore(a, and(_1, create2(0, 0, 0x20, 0)))
// }
// }
@@ -22,22 +22,21 @@
}
}
// ====
// EVMVersion: >=constantinople
// EVMVersion: >=shanghai
// ----
// step: fullSuite
//
// {
// {
// let _1 := 0
// if eq(0x26121ff0, shr(224, calldataload(_1)))
// if eq(0x26121ff0, shr(224, calldataload(0)))
// {
// if callvalue() { revert(_1, _1) }
// if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
// if iszero(lt(0x0a, sload(_1)))
// if callvalue() { revert(0, 0) }
// if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
// if iszero(lt(0x0a, sload(0)))
// {
// mstore(_1, shl(224, 0x4e487b71))
// mstore(0, shl(224, 0x4e487b71))
// mstore(4, 0x32)
// revert(_1, 0x24)
// revert(0, 0x24)
// }
// sstore(0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56d, 0x05)
// }
@@ -12,6 +12,8 @@
}
}
}
// ====
// EVMVersion: >=shanghai
// ----
// step: fullSuite
//
@@ -25,13 +27,12 @@
// function f()
// {
// let b := 10
// let _1 := 0
// let a := calldataload(_1)
// let _2 := iszero(a)
// let a := calldataload(0)
// let _1 := iszero(a)
// for { } iszero(b) { b := add(b, not(0)) }
// {
// mstore(a, _1)
// if _2 { leave }
// mstore(a, 0)
// if _1 { leave }
// }
// }
// }