Reworked Authors Section
1 file changed
tree: 2cdf26c2de650d45589b903fddfee1c04e161868
  1. .github/
  2. cmake/
  3. Documentation/
  4. gen/
  5. sample/
  6. test/
  7. xbyak/
  8. .gitignore
  9. CMakeLists.txt
  10. COPYRIGHT
  11. Makefile
  12. meson.build
  13. readme.md
  14. readme.txt
  15. xbyak.sln
readme.md

Xbyak Badge Version Badge License Badge Build

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


⸢ Install ⸥   ⸢ Usage ⸥   ⸢ Changelog ⸥


Abstract

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.

Feature

  • header file only
  • Intel/MASM like syntax
  • fully support AVX-512

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

News

  • 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, Windows 7, Windows 10(32bit, 64bit)
  • Linux(32bit, 64bit)
  • Intel macOS

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.

Author

光成滋生 Mitsunari Shigeo

Github | Website | herumi@nifty.com