aboutsummaryrefslogtreecommitdiffstats
path: root/ethvm
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-08-08 21:36:59 +0800
committerobscuren <geffobscura@gmail.com>2014-08-08 21:36:59 +0800
commitc51db4c940a5ea679aee580a673a4ccdd2421b9a (patch)
tree5429928dab1acbbc153e756464614bbfc6dbd9c0 /ethvm
parent3fc24013ef200f20eaa9deed6647270924126976 (diff)
downloadgo-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar.gz
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar.bz2
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar.lz
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar.xz
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.tar.zst
go-tangerine-c51db4c940a5ea679aee580a673a4ccdd2421b9a.zip
Fixed stack issue
Diffstat (limited to 'ethvm')
-rw-r--r--ethvm/stack.go2
-rw-r--r--ethvm/vm.go24
2 files changed, 13 insertions, 13 deletions
diff --git a/ethvm/stack.go b/ethvm/stack.go
index c06d63652..f4b0be393 100644
--- a/ethvm/stack.go
+++ b/ethvm/stack.go
@@ -59,7 +59,7 @@ func (st *Stack) Peek() *big.Int {
}
func (st *Stack) Peekn() (*big.Int, *big.Int) {
- ints := st.data[:2]
+ ints := st.data[len(st.data)-2:]
return ints[0], ints[1]
}
diff --git a/ethvm/vm.go b/ethvm/vm.go
index 995fd897b..a3c273f62 100644
--- a/ethvm/vm.go
+++ b/ethvm/vm.go
@@ -129,14 +129,14 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
fmt.Printf("%x %x\n", new(big.Int).SetBytes([]byte(key)).Bytes(), value.Bytes())
})
}
+ */
- b := pc.Bytes()
- if len(b) == 0 {
- b = []byte{0}
- }
+ b := pc.Bytes()
+ if len(b) == 0 {
+ b = []byte{0}
+ }
- fmt.Printf("%x %x %x %x\n", closure.Address(), b, []byte{byte(op)}, closure.Gas.Bytes())
- */
+ fmt.Printf("%x %x %x %x\n", closure.Address(), b, []byte{byte(op)}, closure.Gas.Bytes())
}
gas := new(big.Int)
@@ -856,12 +856,12 @@ func (self *Vm) Endl() *Vm {
}
func ensure256(x *big.Int) {
- maxInt, _ := new(big.Int).SetString("115792089237316195423570985008687907853269984665640564039457584007913129639935", 0)
- if x.Cmp(maxInt) >= 0 {
- x.SetInt64(0)
-
- return
- }
+ //max, _ := big.NewInt(0).SetString("115792089237316195423570985008687907853269984665640564039457584007913129639936", 0)
+ //if x.Cmp(max) >= 0 {
+ d := big.NewInt(1)
+ d.Lsh(d, 256).Sub(d, big.NewInt(1))
+ x.And(x, d)
+ //}
// Could have done this with an OR, but big ints are costly.