AsmJit is complete x86/x64 JIT Assembler for C++ language. It supports FPU, MMX, 3dNow, SSE, SSE2, SSE3 and SSE4 intrinsics, powerful compiler that helps to write portable functions for 32-bit (x86) and 64-bit (x64) architectures. AsmJit can be used to create functions at runtime that can be called from existing (but also generated) C/C++ code.
AsmJit is crossplatform library that supports various compilers and operating systems. Currently only limitation is x86 (32-bit) or x64 (64-bit) processor. Currently tested operating systems are Windows (32 bit and 64 bit), Linux (32 bit and 64 bit) and MacOSX (32 bit).
Assembler / Compiler
AsmJit library contains two main classes for code generation with different goals. First main code generation class is called Assembler and contains low level API that can be used to generate JIT binary code. It directly emits binary stream that represents encoded x86/x64 assembler opcodes. Together with operands and labels it can be used to generate complete code.
There is also class named Compiler that allows to develop crossplatform assembler code without worring about function calling conventions and registers allocation. It can be also used to write 32 bit and 64 bit portable code. Compiler is recommended class to use for code generation.