Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | List of all members
libsnark::tinyram_instruction Class Reference

#include <tinyram_aux.hpp>

Public Member Functions

 tinyram_instruction (const tinyram_opcode &opcode, const bool arg2_is_imm, const size_t &desidx, const size_t &arg1idx, const size_t &arg2idx_or_imm)
 
size_t as_dword (const tinyram_architecture_params &ap) const
 

Public Attributes

tinyram_opcode opcode
 
bool arg2_is_imm
 
size_t desidx
 
size_t arg1idx
 
size_t arg2idx_or_imm
 

Detailed Description

Definition at line 174 of file tinyram_aux.hpp.

Constructor & Destructor Documentation

◆ tinyram_instruction()

libsnark::tinyram_instruction::tinyram_instruction ( const tinyram_opcode opcode,
const bool  arg2_is_imm,
const size_t &  desidx,
const size_t &  arg1idx,
const size_t &  arg2idx_or_imm 
)

Definition at line 259 of file tinyram_aux.cpp.

265  : opcode(opcode)
267  , desidx(desidx)
268  , arg1idx(arg1idx)
270 {
271 }

Member Function Documentation

◆ as_dword()

size_t libsnark::tinyram_instruction::as_dword ( const tinyram_architecture_params ap) const

Definition at line 273 of file tinyram_aux.cpp.

275 {
276  size_t result = static_cast<size_t>(opcode);
277  result = (result << 1) | (arg2_is_imm ? 1 : 0);
278  result = (result << libff::log2(ap.k)) | desidx;
279  result = (result << libff::log2(ap.k)) | arg1idx;
280  result =
281  (result << (2 * ap.w - ap.opcode_width() - 1 - 2 * libff::log2(ap.k))) |
283 
284  return result;
285 }
Here is the call graph for this function:

Member Data Documentation

◆ arg1idx

size_t libsnark::tinyram_instruction::arg1idx

Definition at line 180 of file tinyram_aux.hpp.

◆ arg2_is_imm

bool libsnark::tinyram_instruction::arg2_is_imm

Definition at line 178 of file tinyram_aux.hpp.

◆ arg2idx_or_imm

size_t libsnark::tinyram_instruction::arg2idx_or_imm

Definition at line 181 of file tinyram_aux.hpp.

◆ desidx

size_t libsnark::tinyram_instruction::desidx

Definition at line 179 of file tinyram_aux.hpp.

◆ opcode

tinyram_opcode libsnark::tinyram_instruction::opcode

Definition at line 177 of file tinyram_aux.hpp.


The documentation for this class was generated from the following files:
libsnark::tinyram_instruction::arg2_is_imm
bool arg2_is_imm
Definition: tinyram_aux.hpp:178
libsnark::tinyram_instruction::opcode
tinyram_opcode opcode
Definition: tinyram_aux.hpp:177
libsnark::tinyram_instruction::arg2idx_or_imm
size_t arg2idx_or_imm
Definition: tinyram_aux.hpp:181
libsnark::tinyram_instruction::desidx
size_t desidx
Definition: tinyram_aux.hpp:179
libsnark::tinyram_instruction::arg1idx
size_t arg1idx
Definition: tinyram_aux.hpp:180