Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
863785a5
Commit
863785a5
authored
Sep 18, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated opcodes
parent
f3a93b04
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
106 additions
and
138 deletions
+106
-138
types.go
ethchain/types.go
+106
-138
No files found.
ethchain/types.go
View file @
863785a5
...
@@ -27,10 +27,12 @@ const (
...
@@ -27,10 +27,12 @@ const (
NOT
=
0x0f
NOT
=
0x0f
// 0x10 range - bit ops
// 0x10 range - bit ops
AND
=
0x10
AND
=
0x10
OR
=
0x11
OR
=
0x11
XOR
=
0x12
XOR
=
0x12
BYTE
=
0x13
BYTE
=
0x13
ADDMOD
=
0x14
MULMOD
=
0x15
// 0x20 range - crypto
// 0x20 range - crypto
SHA3
=
0x20
SHA3
=
0x20
...
@@ -47,6 +49,8 @@ const (
...
@@ -47,6 +49,8 @@ const (
CODESIZE
=
0x38
CODESIZE
=
0x38
CODECOPY
=
0x39
CODECOPY
=
0x39
GASPRICE
=
0x3a
GASPRICE
=
0x3a
EXTCODECOPY
=
0x3b
EXTCODESIZE
=
0x3c
// 0x40 range - block operations
// 0x40 range - block operations
PREVHASH
=
0x40
PREVHASH
=
0x40
...
@@ -57,9 +61,9 @@ const (
...
@@ -57,9 +61,9 @@ const (
GASLIMIT
=
0x45
GASLIMIT
=
0x45
// 0x50 range - 'storage' and execution
// 0x50 range - 'storage' and execution
POP
=
0x50
POP
=
0x50
DUP
=
0x51
//
DUP = 0x51
SWAP
=
0x52
//
SWAP = 0x52
MLOAD
=
0x53
MLOAD
=
0x53
MSTORE
=
0x54
MSTORE
=
0x54
MSTORE8
=
0x55
MSTORE8
=
0x55
...
@@ -105,10 +109,46 @@ const (
...
@@ -105,10 +109,46 @@ const (
PUSH31
=
0x7e
PUSH31
=
0x7e
PUSH32
=
0x7f
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
// 0xf0 range - closures
CREATE
=
0xf0
CREATE
=
0xf0
CALL
=
0xf1
CALL
=
0xf1
RETURN
=
0xf2
RETURN
=
0xf2
POST
=
0xf3
CALLSTATELESS
=
0xf4
// 0x70 range - other
// 0x70 range - other
LOG
=
0xfe
// XXX Unofficial
LOG
=
0xfe
// XXX Unofficial
...
@@ -136,10 +176,12 @@ var opCodeToString = map[OpCode]string{
...
@@ -136,10 +176,12 @@ var opCodeToString = map[OpCode]string{
NOT
:
"NOT"
,
NOT
:
"NOT"
,
// 0x10 range - bit ops
// 0x10 range - bit ops
AND
:
"AND"
,
AND
:
"AND"
,
OR
:
"OR"
,
OR
:
"OR"
,
XOR
:
"XOR"
,
XOR
:
"XOR"
,
BYTE
:
"BYTE"
,
BYTE
:
"BYTE"
,
ADDMOD
:
"ADDMOD"
,
MULMOD
:
"MULMOD"
,
// 0x20 range - crypto
// 0x20 range - crypto
SHA3
:
"SHA3"
,
SHA3
:
"SHA3"
,
...
@@ -158,17 +200,19 @@ var opCodeToString = map[OpCode]string{
...
@@ -158,17 +200,19 @@ var opCodeToString = map[OpCode]string{
GASPRICE
:
"TXGASPRICE"
,
GASPRICE
:
"TXGASPRICE"
,
// 0x40 range - block operations
// 0x40 range - block operations
PREVHASH
:
"PREVHASH"
,
PREVHASH
:
"PREVHASH"
,
COINBASE
:
"COINBASE"
,
COINBASE
:
"COINBASE"
,
TIMESTAMP
:
"TIMESTAMP"
,
TIMESTAMP
:
"TIMESTAMP"
,
NUMBER
:
"NUMBER"
,
NUMBER
:
"NUMBER"
,
DIFFICULTY
:
"DIFFICULTY"
,
DIFFICULTY
:
"DIFFICULTY"
,
GASLIMIT
:
"GASLIMIT"
,
GASLIMIT
:
"GASLIMIT"
,
EXTCODESIZE
:
"EXTCODESIZE"
,
EXTCODECOPY
:
"EXTCODECOPY"
,
// 0x50 range - 'storage' and execution
// 0x50 range - 'storage' and execution
POP
:
"POP"
,
POP
:
"POP"
,
DUP
:
"DUP"
,
//
DUP: "DUP",
SWAP
:
"SWAP"
,
//
SWAP: "SWAP",
MLOAD
:
"MLOAD"
,
MLOAD
:
"MLOAD"
,
MSTORE
:
"MSTORE"
,
MSTORE
:
"MSTORE"
,
MSTORE8
:
"MSTORE8"
,
MSTORE8
:
"MSTORE8"
,
...
@@ -214,10 +258,46 @@ var opCodeToString = map[OpCode]string{
...
@@ -214,10 +258,46 @@ var opCodeToString = map[OpCode]string{
PUSH31
:
"PUSH31"
,
PUSH31
:
"PUSH31"
,
PUSH32
:
"PUSH32"
,
PUSH32
:
"PUSH32"
,
DUP1
:
"DUP1"
,
DUP2
:
"DUP2"
,
DUP3
:
"DUP3"
,
DUP4
:
"DUP4"
,
DUP5
:
"DUP5"
,
DUP6
:
"DUP6"
,
DUP7
:
"DUP7"
,
DUP8
:
"DUP8"
,
DUP9
:
"DUP9"
,
DUP10
:
"DUP10"
,
DUP11
:
"DUP11"
,
DUP12
:
"DUP12"
,
DUP13
:
"DUP13"
,
DUP14
:
"DUP14"
,
DUP15
:
"DUP15"
,
DUP16
:
"DUP16"
,
SWAP1
:
"SWAP1"
,
SWAP2
:
"SWAP2"
,
SWAP3
:
"SWAP3"
,
SWAP4
:
"SWAP4"
,
SWAP5
:
"SWAP5"
,
SWAP6
:
"SWAP6"
,
SWAP7
:
"SWAP7"
,
SWAP8
:
"SWAP8"
,
SWAP9
:
"SWAP9"
,
SWAP10
:
"SWAP10"
,
SWAP11
:
"SWAP11"
,
SWAP12
:
"SWAP12"
,
SWAP13
:
"SWAP13"
,
SWAP14
:
"SWAP14"
,
SWAP15
:
"SWAP15"
,
SWAP16
:
"SWAP16"
,
// 0xf0 range
// 0xf0 range
CREATE
:
"CREATE"
,
CREATE
:
"CREATE"
,
CALL
:
"CALL"
,
CALL
:
"CALL"
,
RETURN
:
"RETURN"
,
RETURN
:
"RETURN"
,
POST
:
"POST"
,
CALLSTATELESS
:
"CALLSTATELESS"
,
// 0x70 range - other
// 0x70 range - other
LOG
:
"LOG"
,
LOG
:
"LOG"
,
...
@@ -232,115 +312,3 @@ func (o OpCode) String() string {
...
@@ -232,115 +312,3 @@ func (o OpCode) String() string {
return
str
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
,
// 0x20 range - crypto
"SHA3"
:
0x20
,
// 0x30 range - closure state
"ADDRESS"
:
0x30
,
"BALANCE"
:
0x31
,
"ORIGIN"
:
0x32
,
"CALLER"
:
0x33
,
"CALLVALUE"
:
0x34
,
"CALLDATALOAD"
:
0x35
,
"CALLDATASIZE"
:
0x36
,
"GASPRICE"
:
0x38
,
// 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
,
// 0xf0 range - closures
"CREATE"
:
0xf0
,
"CALL"
:
0xf1
,
"RETURN"
:
0xf2
,
// 0x70 range - other
"LOG"
:
0xfe
,
"SUICIDE"
:
0x7f
,
}
func
IsOpCode
(
s
string
)
bool
{
for
key
,
_
:=
range
OpCodes
{
if
key
==
s
{
return
true
}
}
return
false
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment