Tests for FunctionSpecializer

This commit is contained in:
hrkrshnn
2021-03-29 11:02:18 +02:00
parent 45a3747701
commit 09998ceb0c
23 changed files with 3923 additions and 424 deletions
+30 -8
View File
@@ -45,14 +45,14 @@ object "C_59" {
for { } lt(i, _4) { i := add(i, 1) }
{
if slt(sub(calldatasize(), src), _2) { revert(_1, _1) }
let value := allocate_memory(_2)
let value := allocate_memory_1246()
mstore(value, calldataload(src))
mstore(dst, value)
dst := add(dst, _2)
src := add(src, _2)
}
let ret, ret_1 := fun_sumArray(dst_1)
let memPos := allocate_memory(_1)
let memPos := allocate_memory_1247()
return(memPos, sub(abi_encode_uint256_string(memPos, ret, ret_1), memPos))
}
}
@@ -76,6 +76,19 @@ object "C_59" {
}
tail := add(add(headStart, and(add(length, 31), not(31))), 96)
}
function allocate_memory_1246() -> memPtr
{
memPtr := mload(64)
let newFreePtr := add(memPtr, 32)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
}
function allocate_memory_1247() -> memPtr
{
memPtr := mload(64)
if gt(memPtr, 0xffffffffffffffff) { panic_error_0x41() }
mstore(64, memPtr)
}
function allocate_memory(size) -> memPtr
{
memPtr := mload(64)
@@ -85,7 +98,10 @@ object "C_59" {
}
function copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927() -> memPtr
{
let memPtr_1 := allocate_memory(160)
let memPtr_1 := mload(64)
let newFreePtr := add(memPtr_1, 160)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr_1)) { panic_error_0x41() }
mstore(64, newFreePtr)
mstore(memPtr_1, 100)
memPtr := memPtr_1
mstore(add(memPtr_1, 0x20), "longstringlongstringlongstringlo")
@@ -101,7 +117,7 @@ object "C_59" {
{
if iszero(lt(var_mpos, mload(var_s_mpos))) { panic_error_0x32() }
let _1 := mload(mload(add(add(var_s_mpos, shl(5, var_mpos)), 32)))
let _2, _3 := storage_array_index_access_struct_S(var_mpos, var_mpos)
let _2, _3 := storage_array_index_access_struct_S_1254()
sstore(_2, _1)
if iszero(lt(0x01, mload(var_s_mpos))) { panic_error_0x32() }
let _4 := mload(mload(add(var_s_mpos, 64)))
@@ -111,7 +127,7 @@ object "C_59" {
let shiftBits := shl(3, var_mpos)
let mask := shl(shiftBits, not(0))
sstore(slot, or(and(_5, not(mask)), and(shl(shiftBits, _4), mask)))
let _6, _7 := storage_array_index_access_struct_S(0x02, var_mpos)
let _6, _7 := storage_array_index_access_struct_S()
var := extract_from_storage_value_dynamict_uint256(sload(_6), _7)
var_mpos := copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927()
}
@@ -127,10 +143,16 @@ object "C_59" {
mstore(4, 0x41)
revert(0, 0x24)
}
function storage_array_index_access_struct_S(array, index) -> slot, offset
function storage_array_index_access_struct_S_1254() -> slot, offset
{
if iszero(lt(index, 0x02)) { panic_error_0x32() }
slot := add(array, index)
if iszero(lt(slot, 0x02)) { panic_error_0x32() }
slot := add(slot, slot)
offset := offset
}
function storage_array_index_access_struct_S() -> slot, offset
{
if iszero(lt(slot, 0x02)) { panic_error_0x32() }
slot := add(0x02, slot)
offset := offset
}
}