No description
Find a file
Merry 9af5f5908c Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8
913099fc8 v6.60.1
d3910abbe update doc
7ac6b37fd Merge branch 'dev'
72c4b8ad5 refactoring
e649372b6 modify definition of Type for Visual Studio with /O0
e9cec7582 Merge branch 'dev'
153b40ed1 update changelog
f0c522af8 v6.60
553246c16 the version format has changed from A.BC(D) to A.BC(.D)

git-subtree-dir: externals/xbyak
git-subtree-split: 913099fc80e80f01fc0877c6016b9dd8cf1f0322
2022-06-16 06:53:34 +01:00
.github Squashed 'externals/xbyak/' changes from 590c10e37..9357732aa 2022-06-05 13:31:49 +01:00
cmake Squashed 'externals/xbyak/' changes from 590c10e37..9357732aa 2022-06-05 13:31:49 +01:00
doc Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
gen Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
sample Squashed 'externals/xbyak/' changes from 590c10e37..9357732aa 2022-06-05 13:31:49 +01:00
test Squashed 'externals/xbyak/' changes from 590c10e37..9357732aa 2022-06-05 13:31:49 +01:00
xbyak Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
.gitignore Squashed 'externals/xbyak/' changes from 0140eeff1..590c10e37 2021-03-27 21:08:22 +00:00
CMakeLists.txt Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
COPYRIGHT Squashed 'externals/xbyak/' changes from 590c10e37..9357732aa 2022-06-05 13:31:49 +01:00
Makefile Squashed 'externals/xbyak/' changes from 73ac5866..0140eeff 2020-09-19 11:27:42 -04:00
meson.build Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
readme.md Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
readme.txt Squashed 'externals/xbyak/' changes from 9357732aa..913099fc8 2022-06-16 06:53:34 +01:00
xbyak.sln Squashed 'externals/xbyak/' changes from 73ac5866..0140eeff 2020-09-19 11:27:42 -04:00

Xbyak 6.60.1 Badge Build

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

Menu

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

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

License

BSD-3-Clause License

Author

光成滋生Mitsunari Shigeo

GitHub|Website (Japanese)|herumi@nifty.com

Sponsors welcome

GitHub Sponsor