forked from cerc-io/plugeth
core/vm: remove stack.pushN (#24040)
This commit is contained in:
parent
5e78fc034b
commit
a0f7771962
@ -525,12 +525,14 @@ func TestOpMstore(t *testing.T) {
|
|||||||
mem.Resize(64)
|
mem.Resize(64)
|
||||||
pc := uint64(0)
|
pc := uint64(0)
|
||||||
v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700"
|
v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700"
|
||||||
stack.pushN(*new(uint256.Int).SetBytes(common.Hex2Bytes(v)), *new(uint256.Int))
|
stack.push(new(uint256.Int).SetBytes(common.Hex2Bytes(v)))
|
||||||
|
stack.push(new(uint256.Int))
|
||||||
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
if got := common.Bytes2Hex(mem.GetCopy(0, 32)); got != v {
|
if got := common.Bytes2Hex(mem.GetCopy(0, 32)); got != v {
|
||||||
t.Fatalf("Mstore fail, got %v, expected %v", got, v)
|
t.Fatalf("Mstore fail, got %v, expected %v", got, v)
|
||||||
}
|
}
|
||||||
stack.pushN(*new(uint256.Int).SetUint64(0x1), *new(uint256.Int))
|
stack.push(new(uint256.Int).SetUint64(0x1))
|
||||||
|
stack.push(new(uint256.Int))
|
||||||
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
if common.Bytes2Hex(mem.GetCopy(0, 32)) != "0000000000000000000000000000000000000000000000000000000000000001" {
|
if common.Bytes2Hex(mem.GetCopy(0, 32)) != "0000000000000000000000000000000000000000000000000000000000000001" {
|
||||||
t.Fatalf("Mstore failed to overwrite previous value")
|
t.Fatalf("Mstore failed to overwrite previous value")
|
||||||
@ -553,7 +555,8 @@ func BenchmarkOpMstore(bench *testing.B) {
|
|||||||
|
|
||||||
bench.ResetTimer()
|
bench.ResetTimer()
|
||||||
for i := 0; i < bench.N; i++ {
|
for i := 0; i < bench.N; i++ {
|
||||||
stack.pushN(*value, *memStart)
|
stack.push(value)
|
||||||
|
stack.push(memStart)
|
||||||
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -572,7 +575,8 @@ func BenchmarkOpKeccak256(bench *testing.B) {
|
|||||||
|
|
||||||
bench.ResetTimer()
|
bench.ResetTimer()
|
||||||
for i := 0; i < bench.N; i++ {
|
for i := 0; i < bench.N; i++ {
|
||||||
stack.pushN(*uint256.NewInt(32), *start)
|
stack.push(uint256.NewInt(32))
|
||||||
|
stack.push(start)
|
||||||
opKeccak256(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opKeccak256(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,10 +54,6 @@ func (st *Stack) push(d *uint256.Int) {
|
|||||||
// NOTE push limit (1024) is checked in baseCheck
|
// NOTE push limit (1024) is checked in baseCheck
|
||||||
st.data = append(st.data, *d)
|
st.data = append(st.data, *d)
|
||||||
}
|
}
|
||||||
func (st *Stack) pushN(ds ...uint256.Int) {
|
|
||||||
// FIXME: Is there a way to pass args by pointers.
|
|
||||||
st.data = append(st.data, ds...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (st *Stack) pop() (ret uint256.Int) {
|
func (st *Stack) pop() (ret uint256.Int) {
|
||||||
ret = st.data[len(st.data)-1]
|
ret = st.data[len(st.data)-1]
|
||||||
|
Loading…
Reference in New Issue
Block a user