Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookups_execution.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
4#include <cstddef>
5#include <string_view>
6#include <tuple>
7
8#include "../columns.hpp"
11
12namespace bb::avm2 {
13
15
17 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_BYTECODE_RETRIEVAL_RESULT";
18 static constexpr std::string_view RELATION_NAME = "execution";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 9;
20 static constexpr Column SRC_SELECTOR = Column::execution_sel_first_row_in_context;
21 static constexpr Column DST_SELECTOR = Column::bc_retrieval_sel;
22 static constexpr Column COUNTS = Column::lookup_execution_bytecode_retrieval_result_counts;
23 static constexpr Column INVERSES = Column::lookup_execution_bytecode_retrieval_result_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
25 ColumnAndShifts::execution_bytecode_id,
26 ColumnAndShifts::execution_contract_address,
27 ColumnAndShifts::execution_prev_nullifier_tree_root,
28 ColumnAndShifts::execution_prev_public_data_tree_root,
29 ColumnAndShifts::execution_prev_retrieved_bytecodes_tree_root,
30 ColumnAndShifts::execution_prev_retrieved_bytecodes_tree_size,
31 ColumnAndShifts::execution_retrieved_bytecodes_tree_root,
32 ColumnAndShifts::execution_retrieved_bytecodes_tree_size,
33 ColumnAndShifts::execution_sel_bytecode_retrieval_failure
34 };
35 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
36 ColumnAndShifts::bc_retrieval_bytecode_id,
37 ColumnAndShifts::bc_retrieval_address,
38 ColumnAndShifts::bc_retrieval_nullifier_tree_root,
39 ColumnAndShifts::bc_retrieval_public_data_tree_root,
40 ColumnAndShifts::bc_retrieval_prev_retrieved_bytecodes_tree_root,
41 ColumnAndShifts::bc_retrieval_prev_retrieved_bytecodes_tree_size,
42 ColumnAndShifts::bc_retrieval_next_retrieved_bytecodes_tree_root,
43 ColumnAndShifts::bc_retrieval_next_retrieved_bytecodes_tree_size,
44 ColumnAndShifts::bc_retrieval_error
45 };
46};
47
50template <typename FF_>
53
55
57 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_INSTRUCTION_FETCHING_RESULT";
58 static constexpr std::string_view RELATION_NAME = "execution";
59 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
60 static constexpr Column SRC_SELECTOR = Column::execution_sel_bytecode_retrieval_success;
61 static constexpr Column DST_SELECTOR = Column::instr_fetching_sel;
62 static constexpr Column COUNTS = Column::lookup_execution_instruction_fetching_result_counts;
63 static constexpr Column INVERSES = Column::lookup_execution_instruction_fetching_result_inv;
64 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
65 ColumnAndShifts::execution_pc,
66 ColumnAndShifts::execution_bytecode_id,
67 ColumnAndShifts::execution_sel_instruction_fetching_failure
68 };
69 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
70 ColumnAndShifts::instr_fetching_pc,
71 ColumnAndShifts::instr_fetching_bytecode_id,
72 ColumnAndShifts::instr_fetching_sel_parsing_err
73 };
74};
75
78template <typename FF_>
81
83
85 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_INSTRUCTION_FETCHING_BODY";
86 static constexpr std::string_view RELATION_NAME = "execution";
87 static constexpr size_t LOOKUP_TUPLE_SIZE = 12;
88 static constexpr Column SRC_SELECTOR = Column::execution_sel_instruction_fetching_success;
89 static constexpr Column DST_SELECTOR = Column::instr_fetching_sel;
90 static constexpr Column COUNTS = Column::lookup_execution_instruction_fetching_body_counts;
91 static constexpr Column INVERSES = Column::lookup_execution_instruction_fetching_body_inv;
92 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
93 ColumnAndShifts::execution_pc, ColumnAndShifts::execution_bytecode_id,
94 ColumnAndShifts::execution_ex_opcode, ColumnAndShifts::execution_instr_length,
95 ColumnAndShifts::execution_indirect, ColumnAndShifts::execution_op_0_,
96 ColumnAndShifts::execution_op_1_, ColumnAndShifts::execution_op_2_,
97 ColumnAndShifts::execution_op_3_, ColumnAndShifts::execution_op_4_,
98 ColumnAndShifts::execution_op_5_, ColumnAndShifts::execution_op_6_
99 };
100 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
101 ColumnAndShifts::instr_fetching_pc, ColumnAndShifts::instr_fetching_bytecode_id,
102 ColumnAndShifts::instr_fetching_exec_opcode, ColumnAndShifts::instr_fetching_instr_size,
103 ColumnAndShifts::instr_fetching_indirect, ColumnAndShifts::instr_fetching_op1,
104 ColumnAndShifts::instr_fetching_op2, ColumnAndShifts::instr_fetching_op3,
105 ColumnAndShifts::instr_fetching_op4, ColumnAndShifts::instr_fetching_op5,
106 ColumnAndShifts::instr_fetching_op6, ColumnAndShifts::instr_fetching_op7
107 };
108};
109
112template <typename FF_>
115
117
119 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_EXEC_SPEC_READ";
120 static constexpr std::string_view RELATION_NAME = "execution";
121 static constexpr size_t LOOKUP_TUPLE_SIZE = 39;
122 static constexpr Column SRC_SELECTOR = Column::execution_sel_instruction_fetching_success;
123 static constexpr Column DST_SELECTOR = Column::precomputed_sel_exec_spec;
124 static constexpr Column COUNTS = Column::lookup_execution_exec_spec_read_counts;
125 static constexpr Column INVERSES = Column::lookup_execution_exec_spec_read_inv;
126 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
127 ColumnAndShifts::execution_ex_opcode,
128 ColumnAndShifts::execution_opcode_gas,
129 ColumnAndShifts::execution_base_da_gas,
130 ColumnAndShifts::execution_dynamic_l2_gas,
131 ColumnAndShifts::execution_dynamic_da_gas,
132 ColumnAndShifts::execution_sel_op_is_address_0_,
133 ColumnAndShifts::execution_sel_op_is_address_1_,
134 ColumnAndShifts::execution_sel_op_is_address_2_,
135 ColumnAndShifts::execution_sel_op_is_address_3_,
136 ColumnAndShifts::execution_sel_op_is_address_4_,
137 ColumnAndShifts::execution_sel_op_is_address_5_,
138 ColumnAndShifts::execution_sel_op_is_address_6_,
139 ColumnAndShifts::execution_subtrace_id,
140 ColumnAndShifts::execution_subtrace_operation_id,
141 ColumnAndShifts::execution_dyn_gas_id,
142 ColumnAndShifts::execution_sel_mem_op_reg_0_,
143 ColumnAndShifts::execution_sel_mem_op_reg_1_,
144 ColumnAndShifts::execution_sel_mem_op_reg_2_,
145 ColumnAndShifts::execution_sel_mem_op_reg_3_,
146 ColumnAndShifts::execution_sel_mem_op_reg_4_,
147 ColumnAndShifts::execution_sel_mem_op_reg_5_,
148 ColumnAndShifts::execution_rw_reg_0_,
149 ColumnAndShifts::execution_rw_reg_1_,
150 ColumnAndShifts::execution_rw_reg_2_,
151 ColumnAndShifts::execution_rw_reg_3_,
152 ColumnAndShifts::execution_rw_reg_4_,
153 ColumnAndShifts::execution_rw_reg_5_,
154 ColumnAndShifts::execution_sel_tag_check_reg_0_,
155 ColumnAndShifts::execution_sel_tag_check_reg_1_,
156 ColumnAndShifts::execution_sel_tag_check_reg_2_,
157 ColumnAndShifts::execution_sel_tag_check_reg_3_,
158 ColumnAndShifts::execution_sel_tag_check_reg_4_,
159 ColumnAndShifts::execution_sel_tag_check_reg_5_,
160 ColumnAndShifts::execution_expected_tag_reg_0_,
161 ColumnAndShifts::execution_expected_tag_reg_1_,
162 ColumnAndShifts::execution_expected_tag_reg_2_,
163 ColumnAndShifts::execution_expected_tag_reg_3_,
164 ColumnAndShifts::execution_expected_tag_reg_4_,
165 ColumnAndShifts::execution_expected_tag_reg_5_
166 };
167 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
168 ColumnAndShifts::precomputed_clk,
169 ColumnAndShifts::precomputed_exec_opcode_opcode_gas,
170 ColumnAndShifts::precomputed_exec_opcode_base_da_gas,
171 ColumnAndShifts::precomputed_exec_opcode_dynamic_l2_gas,
172 ColumnAndShifts::precomputed_exec_opcode_dynamic_da_gas,
173 ColumnAndShifts::precomputed_sel_op_is_address_0_,
174 ColumnAndShifts::precomputed_sel_op_is_address_1_,
175 ColumnAndShifts::precomputed_sel_op_is_address_2_,
176 ColumnAndShifts::precomputed_sel_op_is_address_3_,
177 ColumnAndShifts::precomputed_sel_op_is_address_4_,
178 ColumnAndShifts::precomputed_sel_op_is_address_5_,
179 ColumnAndShifts::precomputed_sel_op_is_address_6_,
180 ColumnAndShifts::precomputed_subtrace_id,
181 ColumnAndShifts::precomputed_subtrace_operation_id,
182 ColumnAndShifts::precomputed_dyn_gas_id,
183 ColumnAndShifts::precomputed_sel_mem_op_reg_0_,
184 ColumnAndShifts::precomputed_sel_mem_op_reg_1_,
185 ColumnAndShifts::precomputed_sel_mem_op_reg_2_,
186 ColumnAndShifts::precomputed_sel_mem_op_reg_3_,
187 ColumnAndShifts::precomputed_sel_mem_op_reg_4_,
188 ColumnAndShifts::precomputed_sel_mem_op_reg_5_,
189 ColumnAndShifts::precomputed_rw_reg_0_,
190 ColumnAndShifts::precomputed_rw_reg_1_,
191 ColumnAndShifts::precomputed_rw_reg_2_,
192 ColumnAndShifts::precomputed_rw_reg_3_,
193 ColumnAndShifts::precomputed_rw_reg_4_,
194 ColumnAndShifts::precomputed_rw_reg_5_,
195 ColumnAndShifts::precomputed_sel_tag_check_reg_0_,
196 ColumnAndShifts::precomputed_sel_tag_check_reg_1_,
197 ColumnAndShifts::precomputed_sel_tag_check_reg_2_,
198 ColumnAndShifts::precomputed_sel_tag_check_reg_3_,
199 ColumnAndShifts::precomputed_sel_tag_check_reg_4_,
200 ColumnAndShifts::precomputed_sel_tag_check_reg_5_,
201 ColumnAndShifts::precomputed_expected_tag_reg_0_,
202 ColumnAndShifts::precomputed_expected_tag_reg_1_,
203 ColumnAndShifts::precomputed_expected_tag_reg_2_,
204 ColumnAndShifts::precomputed_expected_tag_reg_3_,
205 ColumnAndShifts::precomputed_expected_tag_reg_4_,
206 ColumnAndShifts::precomputed_expected_tag_reg_5_
207 };
208};
209
211template <typename FF_>
213
215
217 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DYN_L2_FACTOR_BITWISE";
218 static constexpr std::string_view RELATION_NAME = "execution";
219 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
220 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_bitwise;
221 static constexpr Column DST_SELECTOR = Column::precomputed_sel_tag_parameters;
222 static constexpr Column COUNTS = Column::lookup_execution_dyn_l2_factor_bitwise_counts;
223 static constexpr Column INVERSES = Column::lookup_execution_dyn_l2_factor_bitwise_inv;
224 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
225 ColumnAndShifts::execution_mem_tag_reg_0_, ColumnAndShifts::execution_dynamic_l2_gas_factor
226 };
227 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
228 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_tag_byte_length
229 };
230};
231
234template <typename FF_>
237
239
241 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_CHECK_RADIX_GT_256";
242 static constexpr std::string_view RELATION_NAME = "execution";
243 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
244 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_to_radix;
245 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
246 static constexpr Column COUNTS = Column::lookup_execution_check_radix_gt_256_counts;
247 static constexpr Column INVERSES = Column::lookup_execution_check_radix_gt_256_inv;
248 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
249 ColumnAndShifts::execution_register_1_,
250 ColumnAndShifts::execution_two_five_six,
251 ColumnAndShifts::execution_sel_radix_gt_256
252 };
253 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
254 ColumnAndShifts::gt_input_b,
255 ColumnAndShifts::gt_res };
256};
257
259template <typename FF_>
262
264
266 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_GET_P_LIMBS";
267 static constexpr std::string_view RELATION_NAME = "execution";
268 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
269 static constexpr Column SRC_SELECTOR = Column::execution_sel_lookup_num_p_limbs;
270 static constexpr Column DST_SELECTOR = Column::precomputed_sel_to_radix_p_limb_counts;
271 static constexpr Column COUNTS = Column::lookup_execution_get_p_limbs_counts;
272 static constexpr Column INVERSES = Column::lookup_execution_get_p_limbs_inv;
273 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
274 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_num_p_limbs
275 };
276 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
277 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_to_radix_num_limbs_for_p
278 };
279};
280
282template <typename FF_>
284
286
288 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_GET_MAX_LIMBS";
289 static constexpr std::string_view RELATION_NAME = "execution";
290 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
291 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_to_radix;
292 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
293 static constexpr Column COUNTS = Column::lookup_execution_get_max_limbs_counts;
294 static constexpr Column INVERSES = Column::lookup_execution_get_max_limbs_inv;
295 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
296 ColumnAndShifts::execution_register_2_,
297 ColumnAndShifts::execution_num_p_limbs,
298 ColumnAndShifts::execution_sel_use_num_limbs
299 };
300 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
301 ColumnAndShifts::gt_input_b,
302 ColumnAndShifts::gt_res };
303};
304
306template <typename FF_>
308
310
312 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_CHECK_WRITTEN_STORAGE_SLOT";
313 static constexpr std::string_view RELATION_NAME = "execution";
314 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
315 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_sstore;
316 static constexpr Column DST_SELECTOR = Column::written_public_data_slots_tree_check_sel;
317 static constexpr Column COUNTS = Column::lookup_execution_check_written_storage_slot_counts;
318 static constexpr Column INVERSES = Column::lookup_execution_check_written_storage_slot_inv;
319 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
320 ColumnAndShifts::execution_contract_address,
321 ColumnAndShifts::execution_register_1_,
322 ColumnAndShifts::execution_dynamic_da_gas_factor,
323 ColumnAndShifts::execution_prev_written_public_data_slots_tree_root
324 };
325 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
326 ColumnAndShifts::written_public_data_slots_tree_check_address,
327 ColumnAndShifts::written_public_data_slots_tree_check_slot,
328 ColumnAndShifts::written_public_data_slots_tree_check_leaf_not_exists,
329 ColumnAndShifts::written_public_data_slots_tree_check_root
330 };
331};
332
335template <typename FF_>
338
340
342 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_ALU";
343 static constexpr std::string_view RELATION_NAME = "execution";
344 static constexpr size_t LOOKUP_TUPLE_SIZE = 8;
345 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_alu;
346 static constexpr Column DST_SELECTOR = Column::alu_sel;
347 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_alu_counts;
348 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_alu_inv;
349 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
350 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
351 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
352 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_,
353 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error
354 };
355 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
356 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ib, ColumnAndShifts::alu_ib_tag,
357 ColumnAndShifts::alu_ic, ColumnAndShifts::alu_ic_tag, ColumnAndShifts::alu_op_id, ColumnAndShifts::alu_sel_err
358 };
359};
360
362template <typename FF_>
364
366
368 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_BITWISE";
369 static constexpr std::string_view RELATION_NAME = "execution";
370 static constexpr size_t LOOKUP_TUPLE_SIZE = 8;
371 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_bitwise;
372 static constexpr Column DST_SELECTOR = Column::bitwise_sel;
373 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_bitwise_counts;
374 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_bitwise_inv;
375 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
376 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error,
377 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
378 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
379 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_
380 };
381 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
382 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_err, ColumnAndShifts::bitwise_acc_ia,
383 ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_acc_ib, ColumnAndShifts::bitwise_tag_b,
384 ColumnAndShifts::bitwise_acc_ic, ColumnAndShifts::bitwise_tag_c
385 };
386};
387
389template <typename FF_>
392
394
396 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_CAST";
397 static constexpr std::string_view RELATION_NAME = "execution";
398 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
399 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_cast;
400 static constexpr Column DST_SELECTOR = Column::alu_sel_op_truncate;
401 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_cast_counts;
402 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_cast_inv;
403 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
404 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_rop_2_,
405 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_register_1_,
406 ColumnAndShifts::execution_mem_tag_reg_1_, ColumnAndShifts::execution_sel_opcode_error
407 };
408 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
409 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_op_id,
410 ColumnAndShifts::alu_ic, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::precomputed_zero
411 };
412};
413
415template <typename FF_>
418
420
422 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_SET";
423 static constexpr std::string_view RELATION_NAME = "execution";
424 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
425 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_set;
426 static constexpr Column DST_SELECTOR = Column::alu_sel_op_truncate;
427 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_set_counts;
428 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_set_inv;
429 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
430 ColumnAndShifts::execution_rop_2_,
431 ColumnAndShifts::execution_rop_1_,
432 ColumnAndShifts::execution_subtrace_operation_id,
433 ColumnAndShifts::execution_register_0_,
434 ColumnAndShifts::execution_mem_tag_reg_0_,
435 ColumnAndShifts::execution_sel_opcode_error
436 };
437 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
438 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_op_id,
439 ColumnAndShifts::alu_ic, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::precomputed_zero
440 };
441};
442
444template <typename FF_>
446
448
450 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_EMIT_UNENCRYPTED_LOG";
451 static constexpr std::string_view RELATION_NAME = "execution";
452 static constexpr size_t LOOKUP_TUPLE_SIZE = 10;
453 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_emit_unencrypted_log;
454 static constexpr Column DST_SELECTOR = Column::emit_unencrypted_log_start;
455 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_emit_unencrypted_log_counts;
456 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_emit_unencrypted_log_inv;
457 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
458 ColumnAndShifts::precomputed_clk,
459 ColumnAndShifts::execution_context_id,
460 ColumnAndShifts::execution_rop_1_,
461 ColumnAndShifts::execution_register_0_,
462 ColumnAndShifts::execution_contract_address,
463 ColumnAndShifts::execution_prev_num_unencrypted_log_fields,
464 ColumnAndShifts::execution_num_unencrypted_log_fields,
465 ColumnAndShifts::execution_is_static,
466 ColumnAndShifts::execution_sel_opcode_error,
467 ColumnAndShifts::execution_discard
468 };
469 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
470 ColumnAndShifts::emit_unencrypted_log_execution_clk,
471 ColumnAndShifts::emit_unencrypted_log_space_id,
472 ColumnAndShifts::emit_unencrypted_log_log_address,
473 ColumnAndShifts::emit_unencrypted_log_log_size,
474 ColumnAndShifts::emit_unencrypted_log_contract_address,
475 ColumnAndShifts::emit_unencrypted_log_prev_num_unencrypted_log_fields,
476 ColumnAndShifts::emit_unencrypted_log_next_num_unencrypted_log_fields,
477 ColumnAndShifts::emit_unencrypted_log_is_static,
478 ColumnAndShifts::emit_unencrypted_log_error,
479 ColumnAndShifts::emit_unencrypted_log_discard
480 };
481};
482
485template <typename FF_>
488
489} // namespace bb::avm2
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS