(unofficial mirror fork of merryhime/dynarmic)
5b6e3d8b54
88f2f771f Merge branch 'dev' 8623616e0 v6.61 1b911598d mingw uses __thread instead of __declspec(thread) d224701f4 fix movzx eax, ah on 64bit and test it 1c35e34ab Merge branch 'dev' 4fb0e58aa test of cpuid 913c798ff update doc 8f6dee319 v6.60.2 21419721e Merge branch 'Wunkolo-standalone-cpuid' into dev 1b2e7c7da Fix detection of `GFNI`,`VAES`, and `VPCLMULQDQ` git-subtree-dir: externals/xbyak git-subtree-split: 88f2f771f179a3d856ecd0b07a20598bd06ba21d |
||
---|---|---|
.github | ||
cmake | ||
doc | ||
gen | ||
sample | ||
test | ||
xbyak | ||
.gitignore | ||
CMakeLists.txt | ||
COPYRIGHT | ||
Makefile | ||
meson.build | ||
readme.md | ||
readme.txt | ||
xbyak.sln |
Xbyak 6.61
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.
- define
- 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 castimm
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 unlessXBYAK_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
Author
光成滋生 Mitsunari Shigeo
GitHub | Website (Japanese) | herumi@nifty.com