Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
instruction.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  bb
 Entry point for Barretenberg command-line interface.
 
namespace  bb::avm2
 
namespace  bb::avm2::fuzzer
 

Functions

AddressingMode generate_addressing_mode (std::mt19937_64 &rng)
 
VariableRef generate_variable_ref (std::mt19937_64 &rng)
 
AddressRef generate_address_ref (std::mt19937_64 &rng, uint32_t max_operand_value)
 
std::vector< FuzzInstructiongenerate_ecadd_instruction (std::mt19937_64 &rng)
 
FuzzInstruction generate_set_for_tag (bb::avm2::MemoryTag tag, AddressRef addr, std::mt19937_64 &rng)
 
template<typename InstructionType >
std::vector< FuzzInstructiongenerate_alu_with_matching_tags (std::mt19937_64 &rng, uint32_t max_operand)
 
template<typename InstructionType >
std::vector< FuzzInstructiongenerate_alu_with_matching_tags_not_ff (std::mt19937_64 &rng, uint32_t max_operand)
 
std::vector< FuzzInstructiongenerate_fdiv_instruction (std::mt19937_64 &rng, uint32_t max_operand)
 
std::vector< FuzzInstructiongenerate_keccakf_instruction (std::mt19937_64 &rng)
 
std::vector< FuzzInstructiongenerate_sha256compression_instruction (std::mt19937_64 &rng)
 
std::vector< FuzzInstructiongenerate_toradixbe_instruction (std::mt19937_64 &rng)
 
std::vector< FuzzInstructiongenerate_sload_instruction (std::mt19937_64 &rng)
 
std::vector< FuzzInstructiongenerate_emitunencryptedlog_instruction (std::mt19937_64 &rng)
 
std::vector< FuzzInstructiongenerate_call_instruction (std::mt19937_64 &rng, const bb::avm2::fuzzer::FuzzerContext &context)
 
std::vector< FuzzInstructiongenerate_getcontractinstance_instruction (std::mt19937_64 &rng, const bb::avm2::fuzzer::FuzzerContext &context)
 
std::vector< FuzzInstructionbb::avm2::fuzzer::generate_instruction (std::mt19937_64 &rng, const FuzzerContext &context)
 Generate one instruction and optionally backfill.
 
void bb::avm2::fuzzer::mutate_variable_ref (VariableRef &variable, std::mt19937_64 &rng, std::optional< MemoryTag > default_tag)
 Most of the tags will be equal to the default tag.
 
void bb::avm2::fuzzer::mutate_address_ref (AddressRef &address, std::mt19937_64 &rng, uint32_t max_operand_value)
 
void bb::avm2::fuzzer::mutate_param_ref (ParamRef &param, std::mt19937_64 &rng, std::optional< MemoryTag > default_tag, uint32_t max_operand_value)
 
std::optional< MemoryTagbb::avm2::fuzzer::get_param_ref_tag (const ParamRef &param)
 
template<typename BinaryInstructionType >
void bb::avm2::fuzzer::mutate_binary_instruction_8 (BinaryInstructionType &instruction, std::mt19937_64 &rng)
 
template<typename BinaryInstructionType >
void bb::avm2::fuzzer::mutate_binary_instruction_16 (BinaryInstructionType &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_not_8_instruction (NOT_8_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_8_instruction (SET_8_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_16_instruction (SET_16_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_32_instruction (SET_32_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_64_instruction (SET_64_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_128_instruction (SET_128_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_set_ff_instruction (SET_FF_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_mov_8_instruction (MOV_8_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_mov_16_instruction (MOV_16_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_not_16_instruction (NOT_16_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_cast_8_instruction (CAST_8_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_cast_16_instruction (CAST_16_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_sstore_instruction (SSTORE_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_sload_instruction (SLOAD_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_getenvvar_instruction (GETENVVAR_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_emit_nullifier_instruction (EMITNULLIFIER_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_nullifier_exists_instruction (NULLIFIEREXISTS_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_l1tol2msgexists_instruction (L1TOL2MSGEXISTS_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_emit_note_hash_instruction (EMITNOTEHASH_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_note_hash_exists_instruction (NOTEHASHEXISTS_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_calldatacopy_instruction (CALLDATACOPY_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_sendl2tol1msg_instruction (SENDL2TOL1MSG_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_emitunencryptedlog_instruction (EMITUNENCRYPTEDLOG_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_call_instruction (CALL_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_returndatasize_with_returndatacopy_instruction (RETURNDATASIZE_WITH_RETURNDATACOPY_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_getcontractinstance_instruction (GETCONTRACTINSTANCE_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_successcopy_instruction (SUCCESSCOPY_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_ecadd_instruction (ECADD_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_poseidon2perm_instruction (POSEIDON2PERM_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_keccakf1600_instruction (KECCAKF1600_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_sha256compression_instruction (SHA256COMPRESSION_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_toradixbe_instruction (TORADIXBE_Instruction &instruction, std::mt19937_64 &rng)
 
void bb::avm2::fuzzer::mutate_instruction (FuzzInstruction &instruction, std::mt19937_64 &rng, const FuzzerContext &context)
 

Variables

constexpr uint32_t MAX_8BIT_OPERAND = 255
 
constexpr uint32_t MAX_16BIT_OPERAND = 65535
 

Function Documentation

◆ generate_address_ref()

AddressRef generate_address_ref ( std::mt19937_64 rng,
uint32_t  max_operand_value 
)

Definition at line 38 of file instruction.cpp.

◆ generate_addressing_mode()

AddressingMode generate_addressing_mode ( std::mt19937_64 rng)

Definition at line 15 of file instruction.cpp.

◆ generate_alu_with_matching_tags()

template<typename InstructionType >
std::vector< FuzzInstruction > generate_alu_with_matching_tags ( std::mt19937_64 rng,
uint32_t  max_operand 
)

Definition at line 147 of file instruction.cpp.

◆ generate_alu_with_matching_tags_not_ff()

template<typename InstructionType >
std::vector< FuzzInstruction > generate_alu_with_matching_tags_not_ff ( std::mt19937_64 rng,
uint32_t  max_operand 
)

Definition at line 173 of file instruction.cpp.

◆ generate_call_instruction()

std::vector< FuzzInstruction > generate_call_instruction ( std::mt19937_64 rng,
const bb::avm2::fuzzer::FuzzerContext context 
)

Definition at line 451 of file instruction.cpp.

◆ generate_ecadd_instruction()

std::vector< FuzzInstruction > generate_ecadd_instruction ( std::mt19937_64 rng)

Definition at line 53 of file instruction.cpp.

◆ generate_emitunencryptedlog_instruction()

std::vector< FuzzInstruction > generate_emitunencryptedlog_instruction ( std::mt19937_64 rng)

Definition at line 420 of file instruction.cpp.

◆ generate_fdiv_instruction()

std::vector< FuzzInstruction > generate_fdiv_instruction ( std::mt19937_64 rng,
uint32_t  max_operand 
)

Definition at line 202 of file instruction.cpp.

◆ generate_getcontractinstance_instruction()

std::vector< FuzzInstruction > generate_getcontractinstance_instruction ( std::mt19937_64 rng,
const bb::avm2::fuzzer::FuzzerContext context 
)

Definition at line 506 of file instruction.cpp.

◆ generate_keccakf_instruction()

std::vector< FuzzInstruction > generate_keccakf_instruction ( std::mt19937_64 rng)

Definition at line 245 of file instruction.cpp.

◆ generate_set_for_tag()

FuzzInstruction generate_set_for_tag ( bb::avm2::MemoryTag  tag,
AddressRef  addr,
std::mt19937_64 rng 
)

Definition at line 120 of file instruction.cpp.

◆ generate_sha256compression_instruction()

std::vector< FuzzInstruction > generate_sha256compression_instruction ( std::mt19937_64 rng)

Definition at line 271 of file instruction.cpp.

◆ generate_sload_instruction()

std::vector< FuzzInstruction > generate_sload_instruction ( std::mt19937_64 rng)

Definition at line 384 of file instruction.cpp.

◆ generate_toradixbe_instruction()

std::vector< FuzzInstruction > generate_toradixbe_instruction ( std::mt19937_64 rng)

Definition at line 315 of file instruction.cpp.

◆ generate_variable_ref()

VariableRef generate_variable_ref ( std::mt19937_64 rng)

Definition at line 20 of file instruction.cpp.

Variable Documentation

◆ MAX_16BIT_OPERAND

constexpr uint32_t MAX_16BIT_OPERAND = 65535
constexpr

Definition at line 36 of file instruction.cpp.

◆ MAX_8BIT_OPERAND

constexpr uint32_t MAX_8BIT_OPERAND = 255
constexpr

Definition at line 35 of file instruction.cpp.