github.com/digdeepmining/go-atheios@v1.5.13-0.20180902133602-d5687a2e6f43/core/vm/memory_table.go (about) 1 package vm 2 3 import ( 4 "math/big" 5 6 "github.com/atheioschain/go-atheios/common" 7 ) 8 9 func memorySha3(stack *Stack) *big.Int { 10 return calcMemSize(stack.Back(0), stack.Back(1)) 11 } 12 13 func memoryCalldataCopy(stack *Stack) *big.Int { 14 return calcMemSize(stack.Back(0), stack.Back(2)) 15 } 16 17 func memoryCodeCopy(stack *Stack) *big.Int { 18 return calcMemSize(stack.Back(0), stack.Back(2)) 19 } 20 21 func memoryExtCodeCopy(stack *Stack) *big.Int { 22 return calcMemSize(stack.Back(1), stack.Back(3)) 23 } 24 25 func memoryMLoad(stack *Stack) *big.Int { 26 return calcMemSize(stack.Back(0), big.NewInt(32)) 27 } 28 29 func memoryMStore8(stack *Stack) *big.Int { 30 return calcMemSize(stack.Back(0), big.NewInt(1)) 31 } 32 33 func memoryMStore(stack *Stack) *big.Int { 34 return calcMemSize(stack.Back(0), big.NewInt(32)) 35 } 36 37 func memoryCreate(stack *Stack) *big.Int { 38 return calcMemSize(stack.Back(1), stack.Back(2)) 39 } 40 41 func memoryCall(stack *Stack) *big.Int { 42 x := calcMemSize(stack.Back(5), stack.Back(6)) 43 y := calcMemSize(stack.Back(3), stack.Back(4)) 44 45 return common.BigMax(x, y) 46 } 47 48 func memoryCallCode(stack *Stack) *big.Int { 49 x := calcMemSize(stack.Back(5), stack.Back(6)) 50 y := calcMemSize(stack.Back(3), stack.Back(4)) 51 52 return common.BigMax(x, y) 53 } 54 func memoryDelegateCall(stack *Stack) *big.Int { 55 x := calcMemSize(stack.Back(4), stack.Back(5)) 56 y := calcMemSize(stack.Back(2), stack.Back(3)) 57 58 return common.BigMax(x, y) 59 } 60 61 func memoryReturn(stack *Stack) *big.Int { 62 return calcMemSize(stack.Back(0), stack.Back(1)) 63 } 64 65 func memoryLog(stack *Stack) *big.Int { 66 mSize, mStart := stack.Back(1), stack.Back(0) 67 return calcMemSize(mStart, mSize) 68 }