Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
X

xbyak

> 编程语言
Open source

A JIT assembler for x86/x64 architectures supporting FPU, MMX, SSE (1-4), AVX (1-2, 512), APX, and AVX10.2

2.3K stars0 likes2 views
WebsiteGitHub

About

A JIT assembler for x86/x64 architectures supporting FPU, MMX, SSE (1-4), AVX (1-2, 512), APX, and AVX10.2

Xbyak 7.42 Badge Build

A JIT assembler for x86/x64 architectures supporting the latest instruction set extensions such as AVX10.2 and ACE

Menu

  • Install
  • Usage
  • Changelog

Abstract

Xbyak is a C++ header-only library that enables dynamic assembly of x86/x64 instructions using mnemonics.

The pronunciation of Xbyak is /kʌɪbjæk/ (kai-byak).

The name is derived from the Japanese word 開闢 (kaibyaku), which means "the beginning of the world" or "creation".

Features

  • Header-only library
  • Intel/MASM-like syntax
  • Full support for AVX-512, AVX10.2, APX, AMX, and ACE

Note: Use and_(), or_(), ... instead of and(), or(). If you want to use them, then specify -fno-operator-names option to gcc/clang.

Derived Projects

  • Xbyak_aarch64 : for AArch64
  • Xbyak_riscv : for RISC-V

News

  • Support ACE 1.15
  • Support AVX10.2
  • Support xresldtrk/xsusldtrk
  • Support RAO-INT for APX
  • Support AVX10 detection, AESKLE, WIDE_KL, KEYLOCKER, KEYLOCKER_WIDE
  • Support APX except for a few instructions
  • Add amx_fp16/avx_vnni_int8/avx_ne_convert/avx-ifma
  • Add movdiri, movdir64b, clwb, cldemote
  • WAITPKG instructions (tpause, umonitor, umwait) are supported.
  • MmapAllocator supports memfd with user-defined strings. see sample/memfd.cpp
  • Strictly check address offset disp32 in a signed 32-bit integer. e.g., ptr[(void*)0xffffffff] causes an error.
    • Define XBYAK_OLD_DISP_CHECK if you need an old check, but the option will be remoevd.
  • Add jmp(mem, T_FAR), call(mem, T_FAR) retf() for far absolute indirect jump.
  • VNNI instructions such as vpdpbusd supports vex encoding.
  • (Break backward compatibility) push(byte, imm) (resp. push(word, imm)) forces to cast imm to 8(resp. 16) bit.
  • (Windows) #include <winsock2.h> has been removed from xbyak.h, so add it explicitly if you need it.
  • Support exception-less mode see. Exception-less mode
  • XBYAK_USE_MMAP_ALLOCATOR will be defined on Linux/macOS unless XBYAK_DONT_USE_MMAP_ALLOCATOR is defined.

Supported OS

  • Windows (Xp, Vista, 7, 10, 11) (32 / 64 bit)
  • Linux (32 / 64 bit)
  • macOS (Intel CPU)

Supported Compilers

Almost C++03 or later compilers for x86/x64 such as Visual Studio, g++, clang++, Intel C++ compiler and g++ on mingw/cygwin.

References

  • AI Compute Extensions (ACE) Specification
  • Intel 64 and IA-32 Architectures Software Developer Manuals
  • Intel Advanced Performance Extensions (Intel APX) Architecture Specification
  • Intel Advanced Vector Extensions 10.2 (Intel AVX10.2) Architecture Specification
  • Intel Architecture Instruction Set Extensions Programming Reference
  • Intel Software Development Emulator

License

BSD-3-Clause License

Author

光成滋生 Mitsunari Shigeo

 GitHub | Website (Japanese) | [email protected]

Sponsors welcome

GitHub Sponsor

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Cassemblerjitx86-64

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言