mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
* Implement the ewasm module and the EEI. * Add an ewasm standalone binary to test standalone files * use reflection to declare EEI module exports * check the module name when importing EEI functions * make eeiFuncs a function to avoid an init loop issue in call * Add a reference to the ewasm tests * wagon implementation of the Interpreter interface * update to wagon's PR #59 and uses the Process structure * Adapt to endianness change * All tests but 1 passing * CanRun only checks for the header * Add a "debug" module to support "printHex" in contracts Notes: * There are very little checks, e.g. of the call depths and so on.
21 lines
433 B
Go
21 lines
433 B
Go
// Copyright 2017 The go-interpreter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package exec
|
|
|
|
func (vm *VM) drop() {
|
|
vm.ctx.stack = vm.ctx.stack[:len(vm.ctx.stack)-1]
|
|
}
|
|
|
|
func (vm *VM) selectOp() {
|
|
c := vm.popUint32()
|
|
val2 := vm.popUint64()
|
|
val1 := vm.popUint64()
|
|
|
|
if c != 0 {
|
|
vm.pushUint64(val1)
|
|
} else {
|
|
vm.pushUint64(val2)
|
|
}
|
|
}
|