19 static_assert(AVM_MAX_OPERANDS * (AVM_ADDRESSING_INDIRECT_L2_GAS + AVM_ADDRESSING_RELATIVE_L2_GAS) +
20 AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS <=
22 "Addressing gas cost must fit in 16 bits");
24 uint16_t indirect_operand_count = 0;
25 uint16_t relative_operand_count = 0;
27 for (
size_t i = 0; i < AVM_MAX_OPERANDS; i++) {
29 indirect_operand_count++;
32 relative_operand_count++;
36 return static_cast<uint16_t
>((relative_operand_count != 0 ? AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS : 0) +
37 (indirect_operand_count * AVM_ADDRESSING_INDIRECT_L2_GAS) +
38 (relative_operand_count * AVM_ADDRESSING_RELATIVE_L2_GAS));