Versions in this module Expand all Collapse all v1 v1.0.0 Apr 11, 2024 Changes in this version + const ArgonBlockSize + const ArgonSaltSize + const CONDITIONMASK + const CONDITIONOFFSET + const CYCLE_MAP_SIZE + const CacheLineAlignMask + const CacheLineSize + const CacheSize + const DATASETEXTRAITEMS + const HIGH + const LOOK_FORWARD_CYCLES + const LOW + const MAX_THROWAWAY_COUNT + const Mask + const Null + const P0 + const P01 + const P015 + const P05 + const P1 + const P5 + const RANDOMX_ARGON_ITERATIONS + const RANDOMX_ARGON_LANES + const RANDOMX_ARGON_MEMORY + const RANDOMX_ARGON_SALT + const RANDOMX_CACHE_ACCESSES + const RANDOMX_DATASET_BASE_SIZE + const RANDOMX_DATASET_EXTRA_SIZE + const RANDOMX_DATASET_ITEM_SIZE + const RANDOMX_FLAG_DEFAULT + const RANDOMX_FLAG_JIT + const RANDOMX_FLAG_LARGE_PAGES + const RANDOMX_JUMP_BITS + const RANDOMX_JUMP_OFFSET + const RANDOMX_PROGRAM_COUNT + const RANDOMX_PROGRAM_ITERATIONS + const RANDOMX_PROGRAM_SIZE + const RANDOMX_SCRATCHPAD_L1 + const RANDOMX_SCRATCHPAD_L2 + const RANDOMX_SCRATCHPAD_L3 + const RANDOMX_SUPERSCALAR_LATENCY + const REGISTERCOUNTFLT + const REGISTERSCOUNT + const RegisterNeedsDisplacement + const RegisterNeedsSib + const STOREL3CONDITION + const S_IADD_C7 + const S_IADD_C8 + const S_IADD_C9 + const S_IADD_RS + const S_IMULH_R + const S_IMUL_R + const S_IMUL_RCP + const S_INVALID + const S_IROR_C + const S_ISMULH_R + const S_ISUB_R + const S_IXOR_C7 + const S_IXOR_C8 + const S_IXOR_C9 + const S_IXOR_R + const ScratchpadL1 + const ScratchpadL1Mask + const ScratchpadL1Mask16 + const ScratchpadL2 + const ScratchpadL2Mask + const ScratchpadL2Mask16 + const ScratchpadL3 + const ScratchpadL3Mask + const ScratchpadL3Mask64 + const ScratchpadSize + const SuperscalarMaxSize + var AES_GEN_1R_KEY0 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_1R_KEY1 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_1R_KEY2 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_1R_KEY3 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY0 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY1 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY2 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY3 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY4 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY5 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY6 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_GEN_4R_KEY7 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_STATE0 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_STATE1 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_STATE2 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_STATE3 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_XKEY0 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var AES_HASH_1R_XKEY1 = ARRAY_TO_BIGENDIAN([4]uint32{ ... }) + var Decoder_To_Instruction_Length = [][]int + var IADD_C7 = Instruction + var IADD_C8 = Instruction + var IADD_C9 = Instruction + var IADD_RS = Instruction + var IMULH_R = Instruction + var IMUL_R = Instruction + var IMUL_RCP = Instruction + var INOP = Instruction + var IROR_C = Instruction + var ISMULH_R = Instruction + var ISUB_R = Instruction + var IXOR_C7 = Instruction + var IXOR_C8 = Instruction + var IXOR_C9 = Instruction + var IXOR_R = Instruction + var M_Add_ri = MacroOP + var M_Add_rr = MacroOP + var M_Imul_r = MacroOP + var M_Imul_r_dependent = MacroOP + var M_Imul_rr = MacroOP + var M_Lea_SIB = MacroOP + var M_Mov_ri64 = MacroOP + var M_Mov_rr = MacroOP + var M_Mul_r = MacroOP + var M_NOP = MacroOP + var M_Ror_ri = MacroOP + var M_Sub_rr = MacroOP + var M_Xor_ri = MacroOP + var M_Xor_rr = MacroOP + var Names = map[VM_Instruction_Type]string + var Opcode_To_String = map[int]string + var Zero uint64 = 0 + func AES_DEC_ROUND(state []uint32, key []uint32) + func AES_ENC_ROUND(state []uint32, key []uint32) + func ARRAY_TO_BIGENDIAN(input [4]uint32) (output [4]uint32) + func CreateSuperScalarInstruction(sins *SuperScalarInstruction, gen *Blake2Generator, instruction_len int, ...) + func MaskRegisterExponentMantissa(f float64, mode uint64) float64 + func Max(x, y int) int + func ScheduleMop(mop *MacroOP, portbusy [][]int, cycle int, depcycle int, commit bool) int + func ScheduleUop(uop ExecutionPort, portbusy [][]int, cycle int, commit bool) int + type Blake2Generator struct + func Init_Blake2Generator(key []byte, nonce uint32) *Blake2Generator + func (b *Blake2Generator) GetByte() byte + func (b *Blake2Generator) GetUint32() uint32 + type Config struct + type DecoderType int + const Decoder3310 + const Decoder3733 + const Decoder4444 + const Decoder484 + const Decoder493 + const Decoder7333 + func FetchNextDecoder(ins *Instruction, cycle int, mulcount int, gen *Blake2Generator) DecoderType + func (d DecoderType) GetSize() int + func (d DecoderType) String() string + type ExecutionPort byte + type Instruction struct + DstOP int + Name string + Opcode byte + ResultOP int + SrcOP int + UOP MacroOP + UOP_Array []MacroOP + func (ins *Instruction) GetLatency() int + func (ins *Instruction) GetSize() int + func (ins *Instruction) GetUOPCount() int + func (ins *Instruction) IsSimple() bool + type InstructionByteCode struct + Opcode VM_Instruction_Type + type MacroOP struct + Dependent bool + Latency int + Name string + Size int + UOP1 ExecutionPort + UOP2 ExecutionPort + func (m *MacroOP) GetLatency() int + func (m *MacroOP) GetSize() int + func (m *MacroOP) GetUOP1() ExecutionPort + func (m *MacroOP) GetUOP2() ExecutionPort + func (m *MacroOP) IsDependent() bool + func (m *MacroOP) IsEliminated() bool + func (m *MacroOP) IsSimple() bool + type MemoryRegisters struct + type REG struct + Hi uint64 + Lo uint64 + type REGISTER_FILE struct + type Randomx_Cache struct + Blocks []block + Programs [RANDOMX_PROGRAM_COUNT]*SuperScalarProgram + func Randomx_alloc_cache(flags uint64) *Randomx_Cache + func (cache *Randomx_Cache) GetBlock(addr uint64, out []uint64) + func (cache *Randomx_Cache) InitDatasetItem(out []uint64, itemnumber uint64) + func (cache *Randomx_Cache) Randomx_init_cache(key []byte) + func (cache *Randomx_Cache) VM_Initialize() *VM + type Register struct + LastOpGroup int + LastOpPar int + Latency int + Status int + Value uint64 + type SuperScalarInstruction struct + CanReuse bool + Dst_Reg int + GroupParIsSource int + Imm32 uint32 + Mod byte + Name string + OpGroup int + OpGroupPar int + Opcode byte + Src_Reg int + Type int + func (sins *SuperScalarInstruction) FixSrcReg() + func (sins *SuperScalarInstruction) Reset() + func (sins *SuperScalarInstruction) SelectDestination(preAllocatedAvailableRegisters []int, cycle int, allowChainedMul bool, ...) bool + func (sins *SuperScalarInstruction) SelectSource(preAllocatedAvailableRegisters []int, cycle int, Registers []Register, ...) bool + func (sins SuperScalarInstruction) String() string + type SuperScalarProgram struct + AddressReg int + Ins []SuperScalarInstruction + func Build_SuperScalar_Program(gen *Blake2Generator) *SuperScalarProgram + type VM struct + ByteCode [RANDOMX_PROGRAM_SIZE]InstructionByteCode + Cache *Randomx_Cache + Prog []byte + ScratchPad []byte + State_start [64]byte + func (vm *VM) CalculateHash(input []byte, output []byte) + func (vm *VM) Compile_TO_Bytecode() + func (vm *VM) InterpretByteCode() + func (vm *VM) Load32(addr uint64) uint32 + func (vm *VM) Load32F(addr uint64) float64 + func (vm *VM) Load64(addr uint64) uint64 + func (vm *VM) Run(input_hash []byte) + type VM_Instruction []byte + func (ins VM_Instruction) Dst() byte + func (ins VM_Instruction) IMM() uint32 + func (ins VM_Instruction) Mod() byte + func (ins VM_Instruction) Opcode() byte + func (ins VM_Instruction) Src() byte + type VM_Instruction_Type int + const VM_CBRANCH + const VM_CFROUND + const VM_FADD_M + const VM_FADD_R + const VM_FDIV_M + const VM_FMUL_R + const VM_FSCAL_R + const VM_FSQRT_R + const VM_FSUB_M + const VM_FSUB_R + const VM_FSWAP_R + const VM_IADD_M + const VM_IADD_RS + const VM_IMULH_M + const VM_IMULH_R + const VM_IMUL_M + const VM_IMUL_R + const VM_IMUL_RCP + const VM_INEG_R + const VM_IROL_R + const VM_IROR_R + const VM_ISMULH_M + const VM_ISMULH_R + const VM_ISTORE + const VM_ISUB_M + const VM_ISUB_R + const VM_ISWAP_R + const VM_IXOR_M + const VM_IXOR_R + const VM_NOP Other modules containing this package git.gammaspectra.live/P2Pool/go-randomx/v2 git.gammaspectra.live/P2Pool/go-randomx/v3