Lines Matching refs:Instruction

12 static const std::map<Instruction,  InstructionInfo> c_instructionInfo =
14 { Instruction::STOP, { "STOP", 0, 0, Tier::Zero } },
15 { Instruction::ADD, { "ADD", 2, 1, Tier::VeryLow } },
16 { Instruction::SUB, { "SUB", 2, 1, Tier::VeryLow } },
17 { Instruction::MUL, { "MUL", 2, 1, Tier::Low } },
18 { Instruction::DIV, { "DIV", 2, 1, Tier::Low } },
19 { Instruction::SDIV, { "SDIV", 2, 1, Tier::Low } },
20 { Instruction::MOD, { "MOD", 2, 1, Tier::Low } },
21 { Instruction::SMOD, { "SMOD", 2, 1, Tier::Low } },
22 { Instruction::EXP, { "EXP", 2, 1, Tier::Special } },
23 { Instruction::NOT, { "NOT", 1, 1, Tier::VeryLow } },
24 { Instruction::LT, { "LT", 2, 1, Tier::VeryLow } },
25 { Instruction::GT, { "GT", 2, 1, Tier::VeryLow } },
26 { Instruction::SLT, { "SLT", 2, 1, Tier::VeryLow } },
27 { Instruction::SGT, { "SGT", 2, 1, Tier::VeryLow } },
28 { Instruction::EQ, { "EQ", 2, 1, Tier::VeryLow } },
29 { Instruction::ISZERO, { "ISZERO", 1, 1, Tier::VeryLow } },
30 { Instruction::AND, { "AND", 2, 1, Tier::VeryLow } },
31 { Instruction::OR, { "OR", 2, 1, Tier::VeryLow } },
32 { Instruction::XOR, { "XOR", 2, 1, Tier::VeryLow } },
33 { Instruction::BYTE, { "BYTE", 2, 1, Tier::VeryLow } },
34 { Instruction::SHL, { "SHL", 2, 1, Tier::VeryLow } },
35 { Instruction::SHR, { "SHR", 2, 1, Tier::VeryLow } },
36 { Instruction::SAR, { "SAR", 2, 1, Tier::VeryLow } },
37 { Instruction::ADDMOD, { "ADDMOD", 3, 1, Tier::Mid } },
38 { Instruction::MULMOD, { "MULMOD", 3, 1, Tier::Mid } },
39 { Instruction::SIGNEXTEND, { "SIGNEXTEND", 2, 1, Tier::Low } },
40 { Instruction::SHA3, { "SHA3", 2, 1, Tier::Special } },
41 { Instruction::ADDRESS, { "ADDRESS", 0, 1, Tier::Base } },
42 { Instruction::BALANCE, { "BALANCE", 1, 1, Tier::Special } },
43 { Instruction::ORIGIN, { "ORIGIN", 0, 1, Tier::Base } },
44 { Instruction::CALLER, { "CALLER", 0, 1, Tier::Base } },
45 { Instruction::CALLVALUE, { "CALLVALUE", 0, 1, Tier::Base } },
46 { Instruction::CALLDATALOAD, { "CALLDATALOAD", 1, 1, Tier::VeryLow } },
47 { Instruction::CALLDATASIZE, { "CALLDATASIZE", 0, 1, Tier::Base } },
48 { Instruction::CALLDATACOPY, { "CALLDATACOPY", 3, 0, Tier::VeryLow } },
49 { Instruction::CODESIZE, { "CODESIZE", 0, 1, Tier::Base } },
50 { Instruction::CODECOPY, { "CODECOPY", 3, 0, Tier::VeryLow } },
51 { Instruction::GASPRICE, { "GASPRICE", 0, 1, Tier::Base } },
52 { Instruction::EXTCODESIZE, { "EXTCODESIZE", 1, 1, Tier::Special } },
53 { Instruction::EXTCODECOPY, { "EXTCODECOPY", 4, 0, Tier::Special } },
54 { Instruction::RETURNDATASIZE,{"RETURNDATASIZE", 0, 1, Tier::Base } },
55 { Instruction::RETURNDATACOPY,{"RETURNDATACOPY", 3, 0, Tier::VeryLow } },
56 { Instruction::EXTCODEHASH, { "EXTCODEHASH", 1, 1, Tier::Special }},
57 { Instruction::BLOCKHASH, { "BLOCKHASH", 1, 1, Tier::Special } },
58 { Instruction::COINBASE, { "COINBASE", 0, 1, Tier::Base } },
59 { Instruction::TIMESTAMP, { "TIMESTAMP", 0, 1, Tier::Base } },
60 { Instruction::NUMBER, { "NUMBER", 0, 1, Tier::Base } },
61 { Instruction::DIFFICULTY, { "DIFFICULTY", 0, 1, Tier::Base } },
62 { Instruction::GASLIMIT, { "GASLIMIT", 0, 1, Tier::Base } },
63 { Instruction::CHAINID, { "CHAINID", 0, 1, Tier::Base } },
64 { Instruction::SELFBALANCE, { "SELFBALANCE", 0, 1, Tier::Low } },
65 { Instruction::POP, { "POP", 1, 0, Tier::Base } },
66 { Instruction::MLOAD, { "MLOAD", 1, 1, Tier::VeryLow } },
67 { Instruction::MSTORE, { "MSTORE", 2, 0, Tier::VeryLow } },
68 { Instruction::MSTORE8, { "MSTORE8", 2, 0, Tier::VeryLow } },
69 { Instruction::SLOAD, { "SLOAD", 1, 1, Tier::Special } },
70 { Instruction::SSTORE, { "SSTORE", 2, 0, Tier::Special } },
71 { Instruction::JUMP, { "JUMP", 1, 0, Tier::Mid } },
72 { Instruction::JUMPI, { "JUMPI", 2, 0, Tier::High } },
73 { Instruction::PC, { "PC", 0, 1, Tier::Base } },
74 { Instruction::MSIZE, { "MSIZE", 0, 1, Tier::Base } },
75 { Instruction::GAS, { "GAS", 0, 1, Tier::Base } },
76 { Instruction::JUMPDEST, { "JUMPDEST", 0, 0, Tier::Special } },
77 { Instruction::PUSH1, { "PUSH1", 0, 1, Tier::VeryLow } },
78 { Instruction::PUSH2, { "PUSH2", 0, 1, Tier::VeryLow } },
79 { Instruction::PUSH3, { "PUSH3", 0, 1, Tier::VeryLow } },
80 { Instruction::PUSH4, { "PUSH4", 0, 1, Tier::VeryLow } },
81 { Instruction::PUSH5, { "PUSH5", 0, 1, Tier::VeryLow } },
82 { Instruction::PUSH6, { "PUSH6", 0, 1, Tier::VeryLow } },
83 { Instruction::PUSH7, { "PUSH7", 0, 1, Tier::VeryLow } },
84 { Instruction::PUSH8, { "PUSH8", 0, 1, Tier::VeryLow } },
85 { Instruction::PUSH9, { "PUSH9", 0, 1, Tier::VeryLow } },
86 { Instruction::PUSH10, { "PUSH10", 0, 1, Tier::VeryLow } },
87 { Instruction::PUSH11, { "PUSH11", 0, 1, Tier::VeryLow } },
88 { Instruction::PUSH12, { "PUSH12", 0, 1, Tier::VeryLow } },
89 { Instruction::PUSH13, { "PUSH13", 0, 1, Tier::VeryLow } },
90 { Instruction::PUSH14, { "PUSH14", 0, 1, Tier::VeryLow } },
91 { Instruction::PUSH15, { "PUSH15", 0, 1, Tier::VeryLow } },
92 { Instruction::PUSH16, { "PUSH16", 0, 1, Tier::VeryLow } },
93 { Instruction::PUSH17, { "PUSH17", 0, 1, Tier::VeryLow } },
94 { Instruction::PUSH18, { "PUSH18", 0, 1, Tier::VeryLow } },
95 { Instruction::PUSH19, { "PUSH19", 0, 1, Tier::VeryLow } },
96 { Instruction::PUSH20, { "PUSH20", 0, 1, Tier::VeryLow } },
97 { Instruction::PUSH21, { "PUSH21", 0, 1, Tier::VeryLow } },
98 { Instruction::PUSH22, { "PUSH22", 0, 1, Tier::VeryLow } },
99 { Instruction::PUSH23, { "PUSH23", 0, 1, Tier::VeryLow } },
100 { Instruction::PUSH24, { "PUSH24", 0, 1, Tier::VeryLow } },
101 { Instruction::PUSH25, { "PUSH25", 0, 1, Tier::VeryLow } },
102 { Instruction::PUSH26, { "PUSH26", 0, 1, Tier::VeryLow } },
103 { Instruction::PUSH27, { "PUSH27", 0, 1, Tier::VeryLow } },
104 { Instruction::PUSH28, { "PUSH28", 0, 1, Tier::VeryLow } },
105 { Instruction::PUSH29, { "PUSH29", 0, 1, Tier::VeryLow } },
106 { Instruction::PUSH30, { "PUSH30", 0, 1, Tier::VeryLow } },
107 { Instruction::PUSH31, { "PUSH31", 0, 1, Tier::VeryLow } },
108 { Instruction::PUSH32, { "PUSH32", 0, 1, Tier::VeryLow } },
109 { Instruction::DUP1, { "DUP1", 1, 2, Tier::VeryLow } },
110 { Instruction::DUP2, { "DUP2", 2, 3, Tier::VeryLow } },
111 { Instruction::DUP3, { "DUP3", 3, 4, Tier::VeryLow } },
112 { Instruction::DUP4, { "DUP4", 4, 5, Tier::VeryLow } },
113 { Instruction::DUP5, { "DUP5", 5, 6, Tier::VeryLow } },
114 { Instruction::DUP6, { "DUP6", 6, 7, Tier::VeryLow } },
115 { Instruction::DUP7, { "DUP7", 7, 8, Tier::VeryLow } },
116 { Instruction::DUP8, { "DUP8", 8, 9, Tier::VeryLow } },
117 { Instruction::DUP9, { "DUP9", 9, 10, Tier::VeryLow } },
118 { Instruction::DUP10, { "DUP10", 10, 11, Tier::VeryLow } },
119 { Instruction::DUP11, { "DUP11", 11, 12, Tier::VeryLow } },
120 { Instruction::DUP12, { "DUP12", 12, 13, Tier::VeryLow } },
121 { Instruction::DUP13, { "DUP13", 13, 14, Tier::VeryLow } },
122 { Instruction::DUP14, { "DUP14", 14, 15, Tier::VeryLow } },
123 { Instruction::DUP15, { "DUP15", 15, 16, Tier::VeryLow } },
124 { Instruction::DUP16, { "DUP16", 16, 17, Tier::VeryLow } },
125 { Instruction::SWAP1, { "SWAP1", 2, 2, Tier::VeryLow } },
126 { Instruction::SWAP2, { "SWAP2", 3, 3, Tier::VeryLow } },
127 { Instruction::SWAP3, { "SWAP3", 4, 4, Tier::VeryLow } },
128 { Instruction::SWAP4, { "SWAP4", 5, 5, Tier::VeryLow } },
129 { Instruction::SWAP5, { "SWAP5", 6, 6, Tier::VeryLow } },
130 { Instruction::SWAP6, { "SWAP6", 7, 7, Tier::VeryLow } },
131 { Instruction::SWAP7, { "SWAP7", 8, 8, Tier::VeryLow } },
132 { Instruction::SWAP8, { "SWAP8", 9, 9, Tier::VeryLow } },
133 { Instruction::SWAP9, { "SWAP9", 10, 10, Tier::VeryLow } },
134 { Instruction::SWAP10, { "SWAP10", 11, 11, Tier::VeryLow } },
135 { Instruction::SWAP11, { "SWAP11", 12, 12, Tier::VeryLow } },
136 { Instruction::SWAP12, { "SWAP12", 13, 13, Tier::VeryLow } },
137 { Instruction::SWAP13, { "SWAP13", 14, 14, Tier::VeryLow } },
138 { Instruction::SWAP14, { "SWAP14", 15, 15, Tier::VeryLow } },
139 { Instruction::SWAP15, { "SWAP15", 16, 16, Tier::VeryLow } },
140 { Instruction::SWAP16, { "SWAP16", 17, 17, Tier::VeryLow } },
141 { Instruction::LOG0, { "LOG0", 2, 0, Tier::Special } },
142 { Instruction::LOG1, { "LOG1", 3, 0, Tier::Special } },
143 { Instruction::LOG2, { "LOG2", 4, 0, Tier::Special } },
144 { Instruction::LOG3, { "LOG3", 5, 0, Tier::Special } },
145 { Instruction::LOG4, { "LOG4", 6, 0, Tier::Special } },
147 { Instruction::JUMPTO, { "JUMPTO", 1, 0, Tier::VeryLow } },
148 { Instruction::JUMPIF, { "JUMPIF", 2, 0, Tier::Low } },
149 { Instruction::JUMPV, { "JUMPV", 1, 0, Tier::Mid } },
150 { Instruction::JUMPSUB, { "JUMPSUB", 1, 0, Tier::Low } },
151 { Instruction::JUMPSUBV, { "JUMPSUBV", 1, 0, Tier::Mid } },
152 { Instruction::BEGINSUB, { "BEGINSUB", 0, 0, Tier::Special } },
153 { Instruction::BEGINDATA, { "BEGINDATA", 0, 0, Tier::Special } },
154 { Instruction::RETURNSUB, { "RETURNSUB", 1, 0, Tier::Mid } },
155 { Instruction::PUTLOCAL, { "PUTLOCAL", 1, 0, Tier::VeryLow } },
156 { Instruction::GETLOCAL, { "GETLOCAL", 0, 1, Tier::VeryLow } },
158 { Instruction::XADD, { "XADD", 0, 0, Tier::Special } },
159 { Instruction::XMUL, { "XMUL", 2, 1, Tier::Special } },
160 { Instruction::XSUB, { "XSUB", 2, 1, Tier::Special } },
161 { Instruction::XDIV, { "XDIV", 2, 1, Tier::Special } },
162 { Instruction::XSDIV, { "XSDIV", 2, 1, Tier::Special } },
163 { Instruction::XMOD, { "XMOD", 2, 1, Tier::Special } },
164 { Instruction::XSMOD, { "XSMOD", 2, 1, Tier::Special } },
165 { Instruction::XLT, { "XLT", 2, 1, Tier::Special } },
166 { Instruction::XGT, { "XGT", 2, 1, Tier::Special } },
167 { Instruction::XSLT, { "XSLT", 2, 1, Tier::Special } },
168 { Instruction::XSGT, { "XSGT", 2, 1, Tier::Special } },
169 { Instruction::XEQ, { "XEQ", 2, 1, Tier::Special } },
170 { Instruction::XISZERO, { "XISZERO", 2, 1, Tier::Special } },
171 { Instruction::XAND, { "XAND", 1, 1, Tier::Special } },
172 { Instruction::XOOR, { "XOOR", 2, 1, Tier::Special } },
173 { Instruction::XXOR, { "XXOR", 2, 1, Tier::Special } },
174 { Instruction::XNOT, { "XNOT", 2, 1, Tier::Special } },
175 { Instruction::XSHL, { "XSHL", 2, 1, Tier::Special } },
176 { Instruction::XSHR, { "XSHR", 2, 1, Tier::Special } },
177 { Instruction::XSAR, { "XSAR", 2, 1, Tier::Special } },
178 { Instruction::XROL, { "XROL", 2, 1, Tier::Special } },
179 { Instruction::XROR, { "XROR", 2, 1, Tier::Special } },
180 { Instruction::XPUSH, { "XPUSH", 1, 1, Tier::VeryLow } },
181 { Instruction::XMLOAD, { "XMLOAD", 1, 1, Tier::VeryLow } },
182 { Instruction::XMSTORE, { "XMSTORE", 2, 0, Tier::VeryLow } },
183 { Instruction::XSLOAD, { "XSLOAD", 1, 1, Tier::Special } },
184 { Instruction::XSSTORE, { "XSSTORE", 2, 0, Tier::Special } },
185 { Instruction::XVTOWIDE, { "XVTOWIDE", 1, 1, Tier::VeryLow } },
186 { Instruction::XWIDETOV, { "XWIDETOV", 1, 1, Tier::VeryLow } },
187 { Instruction::XPUT, { "XPUT", 3, 1, Tier::Special } },
188 { Instruction::XGET, { "XGET", 2, 1, Tier::Special } },
189 { Instruction::XSWIZZLE, { "XSWIZZLE", 2, 1, Tier::Special } },
190 { Instruction::XSHUFFLE, { "XSHUFFLE", 3, 1, Tier::Special } },
191 { Instruction::CREATE, { "CREATE", 3, 1, Tier::Special } },
192 { Instruction::CREATE2, { "CREATE2", 4, 1, Tier::Special } },
193 { Instruction::CALL, { "CALL", 7, 1, Tier::Special } },
194 { Instruction::CALLCODE, { "CALLCODE", 7, 1, Tier::Special } },
195 { Instruction::RETURN, { "RETURN", 2, 0, Tier::Zero } },
196 { Instruction::STATICCALL, { "STATICCALL", 6, 1, Tier::Special } },
197 { Instruction::DELEGATECALL, { "DELEGATECALL", 6, 1, Tier::Special } },
198 { Instruction::REVERT, { "REVERT", 2, 0, Tier::Special } },
199 { Instruction::INVALID, { "INVALID", 0, 0, Tier::Zero } },
200 { Instruction::SELFDESTRUCT, { "SELFDESTRUCT", 1, 0, Tier::Special } },
203 { Instruction::PUSHC, { "PUSHC", 0, 1, Tier::VeryLow } },
204 { Instruction::JUMPC, { "JUMPC", 1, 0, Tier::Mid } },
205 { Instruction::JUMPCI, { "JUMPCI", 2, 0, Tier::High } },
209 InstructionInfo instructionInfo(Instruction _inst) in instructionInfo()