github.com/arieschain/arieschain@v0.0.0-20191023063405-37c074544356/core/vm/memory_table.go (about) 1 package vm 2 3 import ( 4 "math/big" 5 6 "github.com/quickchainproject/quickchain/common/math" 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 memoryReturnDataCopy(stack *Stack) *big.Int { 18 return calcMemSize(stack.Back(0), stack.Back(2)) 19 } 20 21 func memoryCodeCopy(stack *Stack) *big.Int { 22 return calcMemSize(stack.Back(0), stack.Back(2)) 23 } 24 25 func memoryExtCodeCopy(stack *Stack) *big.Int { 26 return calcMemSize(stack.Back(1), stack.Back(3)) 27 } 28 29 func memoryMLoad(stack *Stack) *big.Int { 30 return calcMemSize(stack.Back(0), big.NewInt(32)) 31 } 32 33 func memoryMStore8(stack *Stack) *big.Int { 34 return calcMemSize(stack.Back(0), big.NewInt(1)) 35 } 36 37 func memoryMStore(stack *Stack) *big.Int { 38 return calcMemSize(stack.Back(0), big.NewInt(32)) 39 } 40 41 func memoryCreate(stack *Stack) *big.Int { 42 return calcMemSize(stack.Back(1), stack.Back(2)) 43 } 44 45 func memoryCall(stack *Stack) *big.Int { 46 x := calcMemSize(stack.Back(5), stack.Back(6)) 47 y := calcMemSize(stack.Back(3), stack.Back(4)) 48 49 return math.BigMax(x, y) 50 } 51 52 func memoryCallCode(stack *Stack) *big.Int { 53 x := calcMemSize(stack.Back(5), stack.Back(6)) 54 y := calcMemSize(stack.Back(3), stack.Back(4)) 55 56 return math.BigMax(x, y) 57 } 58 func memoryDelegateCall(stack *Stack) *big.Int { 59 x := calcMemSize(stack.Back(4), stack.Back(5)) 60 y := calcMemSize(stack.Back(2), stack.Back(3)) 61 62 return math.BigMax(x, y) 63 } 64 65 func memoryStaticCall(stack *Stack) *big.Int { 66 x := calcMemSize(stack.Back(4), stack.Back(5)) 67 y := calcMemSize(stack.Back(2), stack.Back(3)) 68 69 return math.BigMax(x, y) 70 } 71 72 func memoryReturn(stack *Stack) *big.Int { 73 return calcMemSize(stack.Back(0), stack.Back(1)) 74 } 75 76 func memoryRevert(stack *Stack) *big.Int { 77 return calcMemSize(stack.Back(0), stack.Back(1)) 78 } 79 80 func memoryLog(stack *Stack) *big.Int { 81 mSize, mStart := stack.Back(1), stack.Back(0) 82 return calcMemSize(mStart, mSize) 83 }