mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 06:36:43 +00:00
core/vm: speed up push1, push2
This commit is contained in:
parent
1e101b39fd
commit
8125479ad8
1 changed files with 7 additions and 7 deletions
|
|
@ -955,13 +955,13 @@ func makeLog(size int) executionFunc {
|
||||||
func opPush1(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
|
func opPush1(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
|
||||||
var (
|
var (
|
||||||
codeLen = uint64(len(scope.Contract.Code))
|
codeLen = uint64(len(scope.Contract.Code))
|
||||||
integer = new(uint256.Int)
|
elem = scope.Stack.get()
|
||||||
)
|
)
|
||||||
*pc += 1
|
*pc += 1
|
||||||
if *pc < codeLen {
|
if *pc < codeLen {
|
||||||
scope.Stack.push(integer.SetUint64(uint64(scope.Contract.Code[*pc])))
|
elem.SetUint64(uint64(scope.Contract.Code[*pc]))
|
||||||
} else {
|
} else {
|
||||||
scope.Stack.push(integer.Clear())
|
elem.Clear()
|
||||||
}
|
}
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
@ -970,14 +970,14 @@ func opPush1(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]by
|
||||||
func opPush2(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
|
func opPush2(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
|
||||||
var (
|
var (
|
||||||
codeLen = uint64(len(scope.Contract.Code))
|
codeLen = uint64(len(scope.Contract.Code))
|
||||||
integer = new(uint256.Int)
|
elem = scope.Stack.get()
|
||||||
)
|
)
|
||||||
if *pc+2 < codeLen {
|
if *pc+2 < codeLen {
|
||||||
scope.Stack.push(integer.SetBytes2(scope.Contract.Code[*pc+1 : *pc+3]))
|
elem.SetBytes2(scope.Contract.Code[*pc+1 : *pc+3])
|
||||||
} else if *pc+1 < codeLen {
|
} else if *pc+1 < codeLen {
|
||||||
scope.Stack.push(integer.SetUint64(uint64(scope.Contract.Code[*pc+1]) << 8))
|
elem.SetUint64(uint64(scope.Contract.Code[*pc+1]) << 8)
|
||||||
} else {
|
} else {
|
||||||
scope.Stack.push(integer.Clear())
|
elem.Clear()
|
||||||
}
|
}
|
||||||
*pc += 2
|
*pc += 2
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue