Update SimpleStore.yul
This commit is contained in:
parent
a70729779c
commit
457253a46d
|
@ -5,7 +5,49 @@ object "SimpleStore" {
|
||||||
}
|
}
|
||||||
object "Runtime" {
|
object "Runtime" {
|
||||||
code {
|
code {
|
||||||
|
function mslice(position, length) -> result {
|
||||||
|
result := div(mload(position), exp(2, sub(256, mul(length, 8))))
|
||||||
|
}
|
||||||
|
function StoreCalldata.sig(pos) -> res {
|
||||||
|
res := mslice(StoreCalldata.sig.position(pos), 4)
|
||||||
|
}
|
||||||
|
function StoreCalldata.sig.position(_pos) -> _offset {
|
||||||
|
function StoreCalldata.sig.position._chunk0(pos) -> __r {
|
||||||
|
__r := 0x00
|
||||||
|
}
|
||||||
|
function StoreCalldata.sig.position._chunk1(pos) -> __r {
|
||||||
|
__r := pos
|
||||||
|
}
|
||||||
|
_offset := add(StoreCalldata.sig.position._chunk0(_pos), add(StoreCalldata.sig.position._chunk1(_pos), 0))
|
||||||
|
|
||||||
|
}
|
||||||
|
function StoreCalldata.val(pos) -> res {
|
||||||
|
res := mslice(StoreCalldata.val.position(pos), 32)
|
||||||
|
}
|
||||||
|
function StoreCalldata.val.position(_pos) -> _offset {
|
||||||
|
function StoreCalldata.val.position._chunk0(pos) -> __r {
|
||||||
|
__r := 0x04
|
||||||
|
}
|
||||||
|
|
||||||
|
function StoreCalldata.val.position._chunk1(pos) -> __r {
|
||||||
|
__r := pos
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_offset := add(StoreCalldata.val.position._chunk0(_pos), add(StoreCalldata.val.position._chunk1(_pos), 0))
|
||||||
|
}
|
||||||
calldatacopy(0, 0, 36) // write calldata to memory
|
calldatacopy(0, 0, 36) // write calldata to memory
|
||||||
|
switch StoreCalldata.sig(0) // select signature from memory (at position 0)
|
||||||
|
|
||||||
|
case 0x6057361d { // new signature method
|
||||||
|
sstore(0, StoreCalldata.val(0)) // sstore calldata value
|
||||||
|
log2(0, 0, 0x69404ebde4a368ae324ed310becfefc3edfe9e5ebca74464e37ffffd8309a3c1, StoreCalldata.val(0))
|
||||||
|
}
|
||||||
|
|
||||||
|
case 0x6d4ce63c {
|
||||||
|
mstore(100, sload(0))
|
||||||
|
return (100, 32)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue