aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/vm.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-06-18 06:32:48 +0800
committerobscuren <geffobscura@gmail.com>2014-06-18 06:32:48 +0800
commit2565a79575c6a6b839a6585c9ad3ebbcf7db9115 (patch)
tree8c5467f5d42775e2b05d602f0e1103101897af7d /ethchain/vm.go
parent8a885c2606fbf675770cf40b31f9ceb5ef8acae9 (diff)
downloadgo-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar.gz
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar.bz2
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar.lz
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar.xz
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.tar.zst
go-tangerine-2565a79575c6a6b839a6585c9ad3ebbcf7db9115.zip
Swapped vars
Diffstat (limited to 'ethchain/vm.go')
-rw-r--r--ethchain/vm.go26
1 files changed, 9 insertions, 17 deletions
diff --git a/ethchain/vm.go b/ethchain/vm.go
index 9dbc13ead..f83258430 100644
--- a/ethchain/vm.go
+++ b/ethchain/vm.go
@@ -226,28 +226,28 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
require(2)
x, y := stack.Popn()
// (x + y) % 2 ** 256
- base.Add(x, y)
+ base.Add(y, x)
// Pop result back on the stack
stack.Push(base)
case SUB:
require(2)
x, y := stack.Popn()
// (x - y) % 2 ** 256
- base.Sub(x, y)
+ base.Sub(y, x)
// Pop result back on the stack
stack.Push(base)
case MUL:
require(2)
x, y := stack.Popn()
// (x * y) % 2 ** 256
- base.Mul(x, y)
+ base.Mul(y, x)
// Pop result back on the stack
stack.Push(base)
case DIV:
require(2)
x, y := stack.Popn()
// floor(x / y)
- base.Div(x, y)
+ base.Div(y, x)
// Pop result back on the stack
stack.Push(base)
case SDIV:
@@ -270,7 +270,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
case MOD:
require(2)
x, y := stack.Popn()
- base.Mod(x, y)
+ base.Mod(y, x)
stack.Push(base)
case SMOD:
require(2)
@@ -292,7 +292,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
case EXP:
require(2)
x, y := stack.Popn()
- base.Exp(x, y, Pow256)
+ base.Exp(y, x, Pow256)
stack.Push(base)
case NEG:
@@ -302,6 +302,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
case LT:
require(2)
y, x := stack.Popn()
+ vm.Printf(" %v < %v", x, y)
// x < y
if x.Cmp(y) < 0 {
stack.Push(ethutil.BigTrue)
@@ -342,20 +343,11 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
case AND:
require(2)
x, y := stack.Popn()
- if (x.Cmp(ethutil.BigTrue) >= 0) && (y.Cmp(ethutil.BigTrue) >= 0) {
- stack.Push(ethutil.BigTrue)
- } else {
- stack.Push(ethutil.BigFalse)
- }
-
+ stack.Push(base.And(y, x))
case OR:
require(2)
x, y := stack.Popn()
- if (x.Cmp(ethutil.BigInt0) >= 0) || (y.Cmp(ethutil.BigInt0) >= 0) {
- stack.Push(ethutil.BigTrue)
- } else {
- stack.Push(ethutil.BigFalse)
- }
+ stack.Push(base.Or(y, x))
case XOR:
require(2)
x, y := stack.Popn()