
AsmJit
Low-Latency Machine Code Generation
►Nasmjit | Root namespace used by AsmJit |
►Na64 | AArch64 backend |
►NInstDB | Instruction database (AArch64) |
CInstInfo | Instruction information (AArch64) |
►NPredicate | |
►NSysReg | System register identifiers and utilities (MSR/MRS) |
CFields | System register fields |
CAssembler | AArch64 assembler implementation |
CBuilder | AArch64 builder implementation |
CCompiler | AArch64 compiler implementation |
CEmitter | Emitter (AArch64) |
CEmitterExplicitT | ARM emitter |
CGp | General purpose register (AArch64) |
CMem | Memory operand (AArch64) |
CVec | Vector register (AArch64) |
►Narm | API shared between AArch32 & AArch64 backends |
►NUtils | Public utilities and helpers for targeting AArch32 and AArch64 architectures |
CLogicalImm | Decomposed fields of a logical immediate value |
CShift | Represents ARM immediate shift operation type and value |
►NGlobals | Contains constants and variables used globally across AsmJit |
CInit_ | |
CNoInit_ | |
►NSupport | Contains support classes and functions that may be used by AsmJit source and header files |
►NInternal | |
CImmConv | |
CImmConv< T, true > | |
CArray | Array type, similar to std::array<T, N>, with the possibility to use enums in operator[] |
CArrayReverseIterator | Reverse iterator to avoid including <iterator> header for iteration over arrays, specialized for AsmJit use (noexcept by design) |
CBitVectorIterator | |
CBitVectorOpIterator | |
CBitWordIterator | Iterates over each bit in a number which is set to 1 |
CCompare | A helper class that provides comparison of any user-defined type that implements < and > operators (primitive types are supported as well) |
CConstCTZ | |
►CEnumValues | A helper class that can be used to iterate over enum values |
CIterator | |
CTemporary | Used to pass a temporary buffer to: |
►NType | Provides type identifiers that can be used in templates instead of native types |
CBool | Bool as C++ type-name |
CFloat32 | Float as C++ type-name |
CFloat64 | Double as C++ type-name |
CInt16 | Int16_t as C++ type-name |
CInt32 | Int32_t as C++ type-name |
CInt64 | Int64_t as C++ type-name |
CInt8 | Int8_t as C++ type-name |
CIntPtr | Intptr_t as C++ type-name |
CUInt16 | Uint16_t as C++ type-name |
CUInt32 | Uint32_t as C++ type-name |
CUInt64 | Uint64_t as C++ type-name |
CUInt8 | Uint8_t as C++ type-name |
CUIntPtr | Uintptr_t as C++ type-name |
CVec128 | 128-bit vector register as C++ type-name |
CVec256 | 256-bit vector register as C++ type-name |
CVec512 | 512-bit vector register as C++ type-name |
►NTypeUtils | Type identifier utilities |
CTypeData | |
CTypeIdOfT | TypeIdOfT<> template allows to get a TypeId from a C++ type T |
►NVirtMem | Virtual memory management |
CDualMapping | Dual memory mapping used to map an anonymous memory into two memory regions where one region is read-only, but executable, and the second region is read+write, but not executable |
CHardenedRuntimeInfo | Hardened runtime information |
CInfo | Virtual memory information |
CProtectJitReadWriteScope | JIT protection scope that prepares the given memory block to be written to in the current thread |
►Nx86 | X86/X64 API |
►NInstDB | Instruction database (X86|X86_64) |
CCommonInfo | Instruction common information |
CInstInfo | Instruction information |
CInstSignature | Instruction signature |
COpSignature | Operand signature |
CAssembler | X86/X64 assembler implementation |
CBnd | 128-bit BND register (BND+) |
CBuilder | X86/X64 builder implementation |
CCompiler | X86/X64 compiler implementation |
CCReg | 32-bit or 64-bit control register (X86) |
CDReg | 32-bit or 64-bit debug register (X86) |
CEmitter | Emitter (X86|X86_64) |
CEmitterExplicitT | Emitter (X86 - explicit) |
CEmitterImplicitT | Emitter (X86 - implicit) |
CGp | General purpose register (X86|X86_64) |
CKReg | 64-bit K register (AVX512+) |
CMem | Memory operand specific to X86 and X86_64 architecture |
CMm | 64-bit MMX register (MMX+) |
CRip | RIP register (X86) |
CSReg | Segment register (X86|X86_64) |
CSt | 80-bit FPU register (X86) |
CTmm | 8192-bit TMM register (AMX) |
CVec | Vector register (XMM|YMM|ZMM) (X86|X86_64) |
CAddressTableEntry | Entry in an address table |
CAlignNode | Align directive (BaseBuilder) |
CArchTraits | Architecture traits used by Function API and Compiler's register allocator |
CBaseAssembler | Base assembler |
CBaseBuilder | Builder interface |
CBaseCompiler | Code emitter that uses virtual registers and performs register allocation |
►CBaseEmitter | Provides a base foundation to emitting code - specialized by BaseAssembler and BaseBuilder |
CFuncs | Functions used by backend-specific emitter implementation |
CState | Emitter state that can be used to specify options and inline comment of a next node or instruction |
CBaseInst | Instruction id, options, and extraReg in a single structure |
CBaseMem | Base class for all memory operands |
►CBaseNode | Base node |
CAlignData | Data used by AlignNode |
CAnyData | Data shared between all types of nodes |
CEmbedData | Data used by EmbedDataNode |
CInstData | Data used by InstNode |
CSentinelData | Data used by SentinelNode |
CBaseRegList | List of physical registers (base) |
►CCallConv | Function calling convention |
CRegOrder | Passed registers' order |
CCodeBuffer | Code or data buffer |
►CCodeHolder | Holds assembled code and data (including sections, labels, and relocation information) |
CRelocationSummary | An informative data structure that is filled with some details that happened during relocateToBase() |
CCommentNode | Comment node |
CConstPool | Constant pool |
CConstPoolNode | A node that wraps ConstPool |
►CCpuFeatures | CPU features information |
CARM | ARM specific features data |
CData | CPU features data |
CX86 | X86 specific features data |
CCpuInfo | CPU information |
CEmbedDataNode | Embed data node |
CEmbedLabelDeltaNode | Label data node |
CEmbedLabelNode | Label data node |
CEnvironment | Represents an environment, which is usually related to a Target |
CErrorHandler | Error handler can be used to override the default behavior of error handling |
►CExpression | Expression node that can reference constants, labels, and another expressions |
CValue | Expression value |
CFileLogger | Logger that can log to a FILE* |
CFixedString | Fixed string - only useful for strings that would never exceed N - 1 characters; always null-terminated |
CFixup | Data structure used to mark where a fixup in code or data is necessary |
CFormatOptions | Formatting options used by Logger and Formatter |
CFuncArgsAssignment | A helper class that can be used to assign a physical register for each function argument |
CFuncDetail | Function detail - CallConv and expanded FuncSignature |
CFuncFrame | Function frame |
►CFuncNode | Function node represents a function used by BaseCompiler |
CArgPack | Arguments pack |
CFuncPass | Function pass extends Pass with FuncPass::runOnFunction() |
CFuncRetNode | Function return, used by BaseCompiler |
CFuncSignature | Function signature |
CFuncValue | Argument or return value (or its part) as defined by FuncSignature , but with register or stack address (and other metadata) assigned |
CFuncValuePack | Contains multiple FuncValue instances in an array so functions that use multiple registers for arguments or return values can represent all inputs and outputs |
CImm | Immediate operands are encoded with instruction data |
CInstNode | Instruction node |
CInstNodeWithOperands | Instruction node with embedded operands following InstNode layout |
CInstRWInfo | Read/Write information of an instruction |
►CInvokeNode | Function invocation, used by BaseCompiler |
COperandPack | Operand pack provides multiple operands that can be associated with a single return value of function argument |
►CJitAllocator | A simple implementation of memory manager that uses asmjit::VirtMem functions to manage virtual memory for JIT compiled code |
CCreateParams | Parameters that can be passed to JitAllocator constructor |
CImpl | Visible JitAllocator implementation data |
CSpan | A memory reference returned by JitAllocator::alloc() |
CStatistics | Statistics provided by JitAllocator |
CWriteScope | Write scope can be used to create a single scope that is optimized for writing multiple spans |
CJitRuntime | JIT execution runtime is a special Target that is designed to store and execute a generated code |
CJumpAnnotation | Jump annotation used to annotate jumps |
CJumpNode | Jump instruction with JumpAnnotation |
CLabel | Label (jump target or data location) |
►CLabelEntry | Label entry provides data stored by CodeHolder for each Label |
CExtraData | Contains extra data that is only created when the label is not anonymous or has a name |
CLabelNode | Label node |
CLogger | Logging interface |
CNodeList | Node list |
COffsetFormat | Provides information about formatting offsets, absolute addresses, or their parts |
COperand | Base class representing an operand in AsmJit (default constructed version) |
COperand_ | Base class representing an operand in AsmJit (non-default constructed version) |
COperandSignature | Operand signature is a 32-bit number describing Operand and some of its payload |
COpRWInfo | Read/Write information related to a single operand, used by InstRWInfo |
CPass | Pass can be used to implement code transformations, analysis, and lowering |
CReg | Unified physical or virtual register operand |
CRegListT | |
CRegOnly | RegOnly is 8-byte version of Reg that allows to store either register or nothing |
CRegTraits | Register traits |
CRelocEntry | Relocation entry |
CSection | Section entry |
CSectionNode | Section node |
CSectionOrLabelEntryExtraHeader | Base class for both Section and LabelEntry::ExtraData |
CSentinelNode | Sentinel node |
CString | A simple non-reference counted string that uses small string optimization (SSO) |
CStringLogger | Logger that stores everything in an internal string buffer |
CStringTmp | Temporary string builder, has statically allocated N bytes |
CTarget | Target is an abstract class that describes a machine code target |
CUniGp | Unified general purpose register (also acts as a base class for architecture specific GP registers) |
CUniVec | Unified vector register (also acts as a base class for architecture specific vector registers) |
CVirtReg | Public virtual register interface, managed by BaseCompiler |
CZone | Zone memory |
CZoneAllocator | Zone-based memory allocator that uses an existing Zone and provides a release() functionality on top of it |
►CZoneBitVector | Zone-allocated bit vector |
CForEachBitOp | |
CForEachBitSet | |
CZoneHash | Low-level hash table specialized for storing string keys and POD values |
CZoneHashBase | Base class used by ZoneHash template |
CZoneHashNode | Node used by ZoneHash template |
CZoneList | Zone allocated list container that uses nodes of NodeT type |
CZoneListNode | Node used by ZoneList template |
►CZonePool | Helper class for implementing pooling of arena-allocated objects |
CLink | |
CZoneStack | Zone allocated stack container |
►CZoneStackBase | Base class used by ZoneStack |
CBlock | |
CZoneString | A string template that can be zone allocated |
CZoneStringBase | A helper class used by ZoneString implementation |
►CZoneTmp | Zone with N bytes of a static storage, used for the initial block |
CStorage | Temporary storage, embedded after Zone |
CZoneTree | RB-Tree |
CZoneTreeNode | RB-Tree node |
CZoneTreeNodeT | RB-Tree node casted to NodeT |
CZoneVector | Template used to store and manage array of Zone allocated data |
CZoneVectorBase | Base class used by ZoneVector template |
© 2018-2024 AsmJit Authors | GitHub | Chat | Blog
AsmJit and AsmTK libraries are open source software released under the Zlib license and can be used safely in any open-source or commercial product, statically or dynamically linked, and without having to advertise the use of the libraries. Code snippets and examples are released into public domain, see Unlicense for more details.