diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-26 18:50:27 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-26 18:50:27 +0800 |
commit | 5044eb4b26616adbf2d263d5ff46ecc3e4dddc26 (patch) | |
tree | b70ed5a5d3cff61adfbdb7d70896c896587aee8f | |
parent | cc318ff8db20528cb567227c42c5d37dc892cc49 (diff) | |
parent | b419e2631a9ad8da589ab9358ff4c768f9439fd0 (diff) | |
download | dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar.gz dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar.bz2 dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar.lz dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar.xz dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.tar.zst dexon-5044eb4b26616adbf2d263d5ff46ecc3e4dddc26.zip |
Merge pull request #1101 from obscuren/issue-1096
core/vm: Cleanups & SUB output fix. Closes #1096
-rw-r--r-- | core/vm/vm.go | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/core/vm/vm.go b/core/vm/vm.go index 35fa19d03..6db99bdcc 100644 --- a/core/vm/vm.go +++ b/core/vm/vm.go @@ -128,7 +128,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { mem.Resize(newMemSize.Uint64()) switch op { - // 0x20 range case ADD: x, y := stack.pop(), stack.pop() self.Printf(" %v + %v", y, x) @@ -142,7 +141,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(base) case SUB: x, y := stack.pop(), stack.pop() - self.Printf(" %v - %v", y, x) + self.Printf(" %v - %v", x, y) base.Sub(x, y) @@ -268,9 +267,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { } case NOT: stack.push(U256(new(big.Int).Not(stack.pop()))) - //base.Sub(Pow256, stack.pop()).Sub(base, common.Big1) - //base = U256(base) - //stack.push(base) case LT: x, y := stack.pop(), stack.pop() self.Printf(" %v < %v", x, y) @@ -329,7 +325,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(common.BigTrue) } - // 0x10 range case AND: x, y := stack.pop(), stack.pop() self.Printf(" %v & %v", y, x) @@ -390,7 +385,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(base) - // 0x20 range case SHA3: offset, size := stack.pop(), stack.pop() data := crypto.Sha3(mem.Get(offset.Int64(), size.Int64())) @@ -398,7 +392,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(common.BigD(data)) self.Printf(" => (%v) %x", size, data) - // 0x30 range case ADDRESS: stack.push(common.Bytes2Big(context.Address().Bytes())) @@ -486,7 +479,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { self.Printf(" => %x", context.Price) - // 0x40 range case BLOCKHASH: num := stack.pop() @@ -527,7 +519,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(self.env.GasLimit()) - // 0x50 range case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32: a := big.NewInt(int64(op - PUSH1 + 1)) byts := getData(code, new(big.Int).Add(pc, big.NewInt(1)), a) @@ -553,12 +544,11 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { topics := make([]common.Hash, n) mStart, mSize := stack.pop(), stack.pop() for i := 0; i < n; i++ { - topics[i] = common.BigToHash(stack.pop()) //common.LeftPadBytes(stack.pop().Bytes(), 32) + topics[i] = common.BigToHash(stack.pop()) } data := mem.Get(mStart.Int64(), mSize.Int64()) log := state.NewLog(context.Address(), topics, data, self.env.BlockNumber().Uint64()) - //log := &Log{context.Address(), topics, data, self.env.BlockNumber().Uint64()} self.env.AddLog(log) self.Printf(" => %v", log) @@ -568,7 +558,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(val) self.Printf(" => 0x%x", val.Bytes()) - case MSTORE: // Store the value at stack top-1 in to memory at location stack top + case MSTORE: // pop value of the stack mStart, val := stack.pop(), stack.pop() mem.Set(mStart.Uint64(), 32, common.BigToBytes(val, 256)) @@ -614,7 +604,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { case JUMPDEST: case PC: - //stack.push(big.NewInt(int64(pc))) stack.push(pc) case MSIZE: stack.push(big.NewInt(int64(mem.Len()))) @@ -622,7 +611,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { stack.push(context.Gas) self.Printf(" => %x", context.Gas) - // 0x60 range case CREATE: var ( |