Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
December 2, 2022 15:10
December 1, 2023 15:03
December 1, 2023 13:37
August 7, 2023 10:12
December 1, 2023 13:37
December 1, 2023 15:06
December 1, 2023 15:06
December 1, 2023 15:06
December 1, 2023 15:07
December 1, 2023 15:06
September 16, 2019 21:47

Xbyak 7.00 Badge Build

A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)



Xbyak is a C++ header library that enables dynamically to assemble x86(IA32), x64(AMD64, x86-64) mnemonic.

The pronunciation of Xbyak is kəi-bja-k. It is named from a Japanese word 開闢, which means the beginning of the world.


  • header file only

  • Intel/MASM like syntax

  • fully support AVX-512

  • support APX

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


  • 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.


BSD-3-Clause License


光成滋生 Mitsunari Shigeo

GitHub | Website (Japanese) |

Sponsors welcome

GitHub Sponsor