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  }