VectorVM

Classes

Name

Description

Public struct

FDataSetMeta

TODO: All of this stuff can be handled by the VM compiler rather than dirtying the VM code.

Public struct

FDataSetThreadLocalTempData

Data the VM will keep on each dataset locally per thread which is then thread safely pushed to it's destination at the end of execution.

Public struct

FExternalFuncConstHandler

Public struct

FExternalFuncInputHandler

A flexible handler that can deal with either constant or register inputs.

Public struct

FExternalFuncRegisterHandler

Public struct

FUserPtrHandler

Public struct

FVectorVMContext

Context information passed around during VM execution.

Typedefs

Name

Description

FVMExternalFunction

Enums

Functions

Name Description

Public function

uint8

 

VectorVM::CreateSrcOperandMask

(
    EVectorVMOperandLocation Type0,
    EVectorVMOperandLocation Type1,
    EVectorVMOperandLocation Type2
)

Public function

EVectorVMOp

 

VectorVM::DecodeOp

(
    FVectorVMContext & Context
)

Decode the next operation contained in the bytecode.

Public function

uint8

 

VectorVM::DecodeSrcOperandTypes

(
    FVectorVMContext & Context
)

Public function

uint16

 

VectorVM::DecodeU16

(
    FVectorVMContext & Context
)

Public function

uint32

 

VectorVM::DecodeU32

(
    FVectorVMContext & Context
)

Public function

uint8

 

VectorVM::DecodeU8

(
    FVectorVMContext & Context
)

Public function

void

 

VectorVM::Exec

(
    uint8 const* Code,
    uint8 ** InputRegisters,
    int32 NumInputRegisters,
    uint8 ** OutputRegisters,
    int32 NumOutputRegisters,
    uint8 const* ConstantTable,
    TArray < FDataSetMeta >& DataSetMet...,
    FVMExternalFunction * ExternalF...,
    void** UserPtrTable,
    int32 NumInstances
)

Execute VectorVM bytecode.

Public function

uint8

 

VectorVM::GetNumOpCodes()

Get total number of op-codes

Public function

FString

 

VectorVM::GetOperandLocationName

(
    EVectorVMOperandLocation Location
)

Public function

FString

 

VectorVM::GetOpName

(
    EVectorVMOp Op
)

Public function

void

 

VectorVM::Init()