Browse Source

Removed POST & moved CALLCODE

obscuren 11 years ago
parent
commit
9b60cf267a
1 changed files with 30 additions and 185 deletions
  1. 30 185
      ethvm/types.go

+ 30 - 185
ethvm/types.go

@@ -64,16 +64,17 @@ const (
 	POP = 0x50
 	//DUP     = 0x51
 	//SWAP    = 0x52
-	MLOAD   = 0x53
-	MSTORE  = 0x54
-	MSTORE8 = 0x55
-	SLOAD   = 0x56
-	SSTORE  = 0x57
-	JUMP    = 0x58
-	JUMPI   = 0x59
-	PC      = 0x5a
-	MSIZE   = 0x5b
-	GAS     = 0x5c
+	MLOAD    = 0x53
+	MSTORE   = 0x54
+	MSTORE8  = 0x55
+	SLOAD    = 0x56
+	SSTORE   = 0x57
+	JUMP     = 0x58
+	JUMPI    = 0x59
+	PC       = 0x5a
+	MSIZE    = 0x5b
+	GAS      = 0x5c
+	JUMPDEST = 0x5d
 
 	// 0x60 range
 	PUSH1  = 0x60
@@ -144,11 +145,10 @@ const (
 	SWAP16 = 0x9f
 
 	// 0xf0 range - closures
-	CREATE        = 0xf0
-	CALL          = 0xf1
-	RETURN        = 0xf2
-	POST          = 0xf3
-	CALLSTATELESS = 0xf4
+	CREATE   = 0xf0
+	CALL     = 0xf1
+	RETURN   = 0xf2
+	CALLCODE = 0xf3
 
 	// 0x70 range - other
 	LOG     = 0xfe // XXX Unofficial
@@ -213,16 +213,17 @@ var opCodeToString = map[OpCode]string{
 	POP: "POP",
 	//DUP:     "DUP",
 	//SWAP:    "SWAP",
-	MLOAD:   "MLOAD",
-	MSTORE:  "MSTORE",
-	MSTORE8: "MSTORE8",
-	SLOAD:   "SLOAD",
-	SSTORE:  "SSTORE",
-	JUMP:    "JUMP",
-	JUMPI:   "JUMPI",
-	PC:      "PC",
-	MSIZE:   "MSIZE",
-	GAS:     "GAS",
+	MLOAD:    "MLOAD",
+	MSTORE:   "MSTORE",
+	MSTORE8:  "MSTORE8",
+	SLOAD:    "SLOAD",
+	SSTORE:   "SSTORE",
+	JUMP:     "JUMP",
+	JUMPI:    "JUMPI",
+	PC:       "PC",
+	MSIZE:    "MSIZE",
+	GAS:      "GAS",
+	JUMPDEST: "JUMPDEST",
 
 	// 0x60 range - push
 	PUSH1:  "PUSH1",
@@ -293,11 +294,10 @@ var opCodeToString = map[OpCode]string{
 	SWAP16: "SWAP16",
 
 	// 0xf0 range
-	CREATE:        "CREATE",
-	CALL:          "CALL",
-	RETURN:        "RETURN",
-	POST:          "POST",
-	CALLSTATELESS: "CALLSTATELESS",
+	CREATE:   "CREATE",
+	CALL:     "CALL",
+	RETURN:   "RETURN",
+	CALLCODE: "CALLCODE",
 
 	// 0x70 range - other
 	LOG:     "LOG",
@@ -312,158 +312,3 @@ func (o OpCode) String() string {
 
 	return str
 }
-
-// Op codes for assembling
-var OpCodes = map[string]byte{
-	// 0x0 range - arithmetic ops
-	"STOP": 0x00,
-	"ADD":  0x01,
-	"MUL":  0x02,
-	"SUB":  0x03,
-	"DIV":  0x04,
-	"SDIV": 0x05,
-	"MOD":  0x06,
-	"SMOD": 0x07,
-	"EXP":  0x08,
-	"NEG":  0x09,
-	"LT":   0x0a,
-	"GT":   0x0b,
-	"EQ":   0x0c,
-	"NOT":  0x0d,
-
-	// 0x10 range - bit ops
-	"AND":    0x10,
-	"OR":     0x11,
-	"XOR":    0x12,
-	"BYTE":   0x13,
-	"ADDMOD": 0x14,
-	"MULMOD": 0x15,
-
-	// 0x20 range - crypto
-	"SHA3": 0x20,
-
-	// 0x30 range - closure state
-	"ADDRESS":      0x30,
-	"BALANCE":      0x31,
-	"ORIGIN":       0x32,
-	"CALLER":       0x33,
-	"CALLVALUE":    0x34,
-	"CALLDATALOAD": 0x35,
-	"CALLDATASIZE": 0x36,
-	"CALLDATACOPY": 0x37,
-	"CODESIZE":     0x38,
-	"CODECOPY":     0x39,
-	"GASPRICE":     0x3a,
-	"EXTCODECOPY":  0x3b,
-	"EXTCODESIZE":  0x3c,
-
-	// 0x40 range - block operations
-	"PREVHASH":   0x40,
-	"COINBASE":   0x41,
-	"TIMESTAMP":  0x42,
-	"NUMBER":     0x43,
-	"DIFFICULTY": 0x44,
-	"GASLIMIT":   0x45,
-
-	// 0x50 range - 'storage' and execution
-	"POP":     0x51,
-	"DUP":     0x52,
-	"SWAP":    0x53,
-	"MLOAD":   0x54,
-	"MSTORE":  0x55,
-	"MSTORE8": 0x56,
-	"SLOAD":   0x57,
-	"SSTORE":  0x58,
-	"JUMP":    0x59,
-	"JUMPI":   0x5a,
-	"PC":      0x5b,
-	"MSIZE":   0x5c,
-
-	// 0x70 range - 'push'
-	"PUSH1":  0x60,
-	"PUSH2":  0x61,
-	"PUSH3":  0x62,
-	"PUSH4":  0x63,
-	"PUSH5":  0x64,
-	"PUSH6":  0x65,
-	"PUSH7":  0x66,
-	"PUSH8":  0x67,
-	"PUSH9":  0x68,
-	"PUSH10": 0x69,
-	"PUSH11": 0x6a,
-	"PUSH12": 0x6b,
-	"PUSH13": 0x6c,
-	"PUSH14": 0x6d,
-	"PUSH15": 0x6e,
-	"PUSH16": 0x6f,
-	"PUSH17": 0x70,
-	"PUSH18": 0x71,
-	"PUSH19": 0x72,
-	"PUSH20": 0x73,
-	"PUSH21": 0x74,
-	"PUSH22": 0x75,
-	"PUSH23": 0x76,
-	"PUSH24": 0x77,
-	"PUSH25": 0x78,
-	"PUSH26": 0x70,
-	"PUSH27": 0x7a,
-	"PUSH28": 0x7b,
-	"PUSH29": 0x7c,
-	"PUSH30": 0x7d,
-	"PUSH31": 0x7e,
-	"PUSH32": 0x7f,
-
-	"DUP1":  0x80,
-	"DUP2":  0x81,
-	"DUP3":  0x82,
-	"DUP4":  0x83,
-	"DUP5":  0x84,
-	"DUP6":  0x85,
-	"DUP7":  0x86,
-	"DUP8":  0x87,
-	"DUP9":  0x88,
-	"DUP10": 0x89,
-	"DUP11": 0x8a,
-	"DUP12": 0x8b,
-	"DUP13": 0x8c,
-	"DUP14": 0x8d,
-	"DUP15": 0x8e,
-	"DUP16": 0x8f,
-
-	"SWAP1":  0x90,
-	"SWAP2":  0x91,
-	"SWAP3":  0x92,
-	"SWAP4":  0x93,
-	"SWAP5":  0x94,
-	"SWAP6":  0x95,
-	"SWAP7":  0x96,
-	"SWAP8":  0x97,
-	"SWAP9":  0x98,
-	"SWAP10": 0x99,
-	"SWAP11": 0x9a,
-	"SWAP12": 0x9b,
-	"SWAP13": 0x9c,
-	"SWAP14": 0x9d,
-	"SWAP15": 0x9e,
-	"SWAP16": 0x9f,
-
-	// 0xf0 range - closures
-	"CREATE":        0xf0,
-	"CALL":          0xf1,
-	"RETURN":        0xf2,
-	"POST":          0xf3,
-	"CALLSTATELESS": 0xf4,
-
-	// 0x70 range - other
-	"LOG":     0xfe,
-	"SUICIDE": 0x7f,
-}
-
-func IsOpCode(s string) bool {
-	for key, _ := range OpCodes {
-		if key == s {
-			return true
-		}
-	}
-	return false
-}