Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
opcodes.cpp
Go to the documentation of this file.
2
3#include <ostream>
4#include <string>
5
6namespace bb::avm2 {
7
8std::ostream& operator<<(std::ostream& os, const WireOpCode& op)
9{
10 switch (op) {
12 os << "ADD_8";
13 break;
15 os << "ADD_16";
16 break;
18 os << "SUB_8";
19 break;
21 os << "SUB_16";
22 break;
24 os << "MUL_8";
25 break;
27 os << "MUL_16";
28 break;
30 os << "DIV_8";
31 break;
33 os << "DIV_16";
34 break;
36 os << "FDIV_8";
37 break;
39 os << "FDIV_16";
40 break;
42 os << "EQ_8";
43 break;
45 os << "EQ_16";
46 break;
48 os << "LT_8";
49 break;
51 os << "LT_16";
52 break;
54 os << "LTE_8";
55 break;
57 os << "LTE_16";
58 break;
60 os << "AND_8";
61 break;
63 os << "AND_16";
64 break;
66 os << "OR_8";
67 break;
69 os << "OR_16";
70 break;
72 os << "XOR_8";
73 break;
75 os << "XOR_16";
76 break;
78 os << "NOT_8";
79 break;
81 os << "NOT_16";
82 break;
84 os << "SHL_8";
85 break;
87 os << "SHL_16";
88 break;
90 os << "SHR_8";
91 break;
93 os << "SHR_16";
94 break;
96 os << "CAST_8";
97 break;
99 os << "CAST_16";
100 break;
102 os << "GETENVVAR_16";
103 break;
105 os << "CALLDATACOPY";
106 break;
108 os << "SUCCESSCOPY";
109 break;
111 os << "RETURNDATASIZE";
112 break;
114 os << "RETURNDATACOPY";
115 break;
117 os << "JUMP_32";
118 break;
120 os << "JUMPI_32";
121 break;
123 os << "INTERNALCALL";
124 break;
126 os << "INTERNALRETURN";
127 break;
129 os << "SET_8";
130 break;
132 os << "SET_16";
133 break;
135 os << "SET_32";
136 break;
138 os << "SET_64";
139 break;
141 os << "SET_128";
142 break;
144 os << "SET_FF";
145 break;
147 os << "MOV_8";
148 break;
150 os << "MOV_16";
151 break;
153 os << "SLOAD";
154 break;
156 os << "SSTORE";
157 break;
159 os << "NOTEHASHEXISTS";
160 break;
162 os << "EMITNOTEHASH";
163 break;
165 os << "NULLIFIEREXISTS";
166 break;
168 os << "EMITNULLIFIER";
169 break;
171 os << "L1TOL2MSGEXISTS";
172 break;
174 os << "GETCONTRACTINSTANCE";
175 break;
177 os << "EMITUNENCRYPTEDLOG";
178 break;
180 os << "SENDL2TOL1MSG";
181 break;
182 case WireOpCode::CALL:
183 os << "CALL";
184 break;
186 os << "STATICCALL";
187 break;
189 os << "RETURN";
190 break;
192 os << "REVERT_8";
193 break;
195 os << "REVERT_16";
196 break;
198 os << "DEBUGLOG";
199 break;
201 os << "POSEIDON2PERM";
202 break;
204 os << "SHA256COMPRESSION";
205 break;
207 os << "KECCAKF1600";
208 break;
210 os << "ECADD";
211 break;
213 os << "TORADIXBE";
214 break;
216 os << "LAST_OPCODE_SENTINEL";
217 break;
218 }
219 return os;
220}
221
222std::ostream& operator<<(std::ostream& os, const ExecutionOpCode& op)
223{
224 switch (op) {
226 os << "ADD";
227 break;
229 os << "SUB";
230 break;
232 os << "MUL";
233 break;
235 os << "DIV";
236 break;
238 os << "FDIV";
239 break;
241 os << "EQ";
242 break;
244 os << "LT";
245 break;
247 os << "LTE";
248 break;
250 os << "AND";
251 break;
253 os << "OR";
254 break;
256 os << "XOR";
257 break;
259 os << "NOT";
260 break;
262 os << "SHL";
263 break;
265 os << "SHR";
266 break;
268 os << "CAST";
269 break;
271 os << "GETENVVAR";
272 break;
274 os << "CALLDATACOPY";
275 break;
277 os << "SUCCESSCOPY";
278 break;
280 os << "RETURNDATASIZE";
281 break;
283 os << "RETURNDATACOPY";
284 break;
286 os << "JUMP";
287 break;
289 os << "JUMPI";
290 break;
292 os << "INTERNALCALL";
293 break;
295 os << "INTERNALRETURN";
296 break;
298 os << "SET";
299 break;
301 os << "MOV";
302 break;
304 os << "SLOAD";
305 break;
307 os << "SSTORE";
308 break;
310 os << "NOTEHASHEXISTS";
311 break;
313 os << "EMITNOTEHASH";
314 break;
316 os << "NULLIFIEREXISTS";
317 break;
319 os << "EMITNULLIFIER";
320 break;
322 os << "L1TOL2MSGEXISTS";
323 break;
325 os << "GETCONTRACTINSTANCE";
326 break;
328 os << "EMITUNENCRYPTEDLOG";
329 break;
331 os << "SENDL2TOL1MSG";
332 break;
334 os << "CALL";
335 break;
337 os << "STATICCALL";
338 break;
340 os << "RETURN";
341 break;
343 os << "REVERT";
344 break;
346 os << "DEBUGLOG";
347 break;
349 os << "POSEIDON2PERM";
350 break;
352 os << "SHA256COMPRESSION";
353 break;
355 os << "KECCAKF1600";
356 break;
358 os << "ECADD";
359 break;
361 os << "TORADIXBE";
362 break;
363 }
364 return os;
365}
366
367} // namespace bb::avm2
std::ostream & operator<<(std::ostream &os, const WireOpCode &op)
Definition opcodes.cpp:8