commit | c7c1eac070851068d7adc3a67ad2efd196145687 | [log] [tgz] |
---|---|---|
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | Wed Mar 06 17:48:12 2024 +0100 |
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | Wed Mar 06 17:48:12 2024 +0100 |
tree | 8310c286d8fa6992ab6571f8b5c37181663f8097 | |
parent | 9c0f5d3ecb06d2c93c2b59becb9b3b763213e74e [diff] |
Make xbyak.py installation location arch-independent I was investigating an issue with the Fedora package build: builds on i686 would yield a package with /usr/lib/pkgconfig/xbyak.pc, while builds on amd64 would yield a package with /usr/lib64/pkgconfig/xbyak.pc. xbyak is arch-indepdent, in the sense of the installed payload being identical on all architectures and located in a non-arch-specific directory (/usr/inlude). The .pc file should be arch-independent too. Right now, if we install the package from a different architecture, we would find the files in /usr/include, but not the .pc file. (E.g. on amd64 the pkg-config search path is /usr/lib64/pkgconfig:/usr/share/pkgconfig, so /usr/lib/pkgconfig/xbyak.pc will not be found.) So install the file to $prefix/pkgconfig (usually /usr/share/pkgconfig) so it will be found properly. We need to specify 'includedir' in the variable list for pkgconfig.generate(), because by default meson does not include this variable when dataonly:true is used. The $prefix/include pattern is evaluated in meson, to handle the case where the user specified an include_dir as absolute path.
A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)
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.
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