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.
A JIT assembler for x86/x64 architectures supporting advanced instruction sets up to AVX10.2
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”.
Note: Use and_(), or_(), ... instead of and(), or(). If you want to use them, then specify -fno-operator-names option to gcc/clang.
ptr[(void*)0xffffffff] causes an error.XBYAK_OLD_DISP_CHECK if you need an old check, but the option will be remoevd.jmp(mem, T_FAR), call(mem, T_FAR) retf() for far absolute indirect jump.push(byte, imm) (resp. push(word, imm)) forces to cast imm to 8(resp. 16) bit.#include <winsock2.h> has been removed from xbyak.h, so add it explicitly if you need it.XBYAK_USE_MMAP_ALLOCATOR will be defined on Linux/macOS unless XBYAK_DONT_USE_MMAP_ALLOCATOR is defined.Almost C++03 or later compilers for x86/x64 such as Visual Studio, g++, clang++, Intel C++ compiler and g++ on mingw/cygwin.
GitHub | Website (Japanese) | herumi@nifty.com