added swap1..16 methods

This commit is contained in:
lmittmann 2024-07-31 17:40:30 +02:00
parent 6e33dbf96a
commit 04395315b1
2 changed files with 58 additions and 0 deletions

View file

@ -68,6 +68,39 @@ func (st *Stack) swap(n int) {
st.data[st.len()-n], st.data[st.len()-1] = st.data[st.len()-1], st.data[st.len()-n]
}
func (s *Stack) swap1() { s.data[s.len()-2], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-2] }
func (s *Stack) swap2() { s.data[s.len()-3], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-3] }
func (s *Stack) swap3() { s.data[s.len()-4], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-4] }
func (s *Stack) swap4() { s.data[s.len()-5], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-5] }
func (s *Stack) swap5() { s.data[s.len()-6], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-6] }
func (s *Stack) swap6() { s.data[s.len()-7], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-7] }
func (s *Stack) swap7() { s.data[s.len()-8], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-8] }
func (s *Stack) swap8() { s.data[s.len()-9], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-9] }
func (s *Stack) swap9() {
s.data[s.len()-10], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-10]
}
func (s *Stack) swap10() {
s.data[s.len()-11], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-11]
}
func (s *Stack) swap11() {
s.data[s.len()-12], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-12]
}
func (s *Stack) swap12() {
s.data[s.len()-13], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-13]
}
func (s *Stack) swap13() {
s.data[s.len()-14], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-14]
}
func (s *Stack) swap14() {
s.data[s.len()-15], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-15]
}
func (s *Stack) swap15() {
s.data[s.len()-16], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-16]
}
func (s *Stack) swap16() {
s.data[s.len()-17], s.data[s.len()-1] = s.data[s.len()-1], s.data[s.len()-17]
}
func (st *Stack) dup(n int) {
st.push(&st.data[st.len()-n])
}

25
core/vm/stack_test.go Normal file
View file

@ -0,0 +1,25 @@
package vm
import (
"testing"
"github.com/holiman/uint256"
)
func BenchmarkStackSwap(b *testing.B) {
stack := newstack()
stack.push(new(uint256.Int))
stack.push(new(uint256.Int))
b.Run("swap(1)", func(b *testing.B) {
for i := 0; i < b.N; i++ {
stack.swap(1)
}
})
b.Run("swap1()", func(b *testing.B) {
for i := 0; i < b.N; i++ {
stack.swap1()
}
})
}