aboutsummaryrefslogtreecommitdiffstats
path: root/ethvm/vm.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethvm/vm.go')
-rw-r--r--ethvm/vm.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/ethvm/vm.go b/ethvm/vm.go
index b27417586..29dc2515c 100644
--- a/ethvm/vm.go
+++ b/ethvm/vm.go
@@ -439,6 +439,36 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
} else {
stack.Push(ethutil.BigFalse)
}
+ case ADDMOD:
+ require(3)
+
+ x := stack.Pop()
+ y := stack.Pop()
+ z := stack.Pop()
+
+ base.Add(x, y)
+ base.Mod(base, z)
+
+ ensure256(base)
+
+ self.Printf(" = %v", base)
+
+ stack.Push(base)
+ case MULMOD:
+ require(3)
+
+ x := stack.Pop()
+ y := stack.Pop()
+ z := stack.Pop()
+
+ base.Mul(x, y)
+ base.Mod(base, z)
+
+ ensure256(base)
+
+ self.Printf(" = %v", base)
+
+ stack.Push(base)
// 0x20 range
case SHA3: