move the common cases of get() to getCommon() in test/make.h

The cases of get() that are identical in make_nm.cpp and make_512.cpp
(register name tables etc.) are moved to getCommon() in make.h. get()
of each file handles its file specific cases first and falls back to
getCommon(). idx is passed as an argument so that get() calls rand()
exactly once as before and the generated files are byte-identical.
3 files changed
tree: 24257276dbe24635684790f0c2050d23ca512add
  1. .github/
  2. cmake/
  3. doc/
  4. gen/
  5. sample/
  6. test/
  7. xbyak/
  8. .gitignore
  9. Android.bp
  10. CMakeLists.txt
  11. COPYRIGHT
  12. Makefile
  13. meson.build
  14. readme.md
  15. readme.txt
readme.md

Xbyak 7.37.6 Badge Build

A JIT assembler for x86/x64 architectures supporting advanced instruction sets up to AVX10.2

Menu

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, APX, and AVX10.2

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

News

  • 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

License

BSD-3-Clause License

Author

光成滋生 Mitsunari Shigeo

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

Sponsors welcome

GitHub Sponsor