Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ xbyak Public
forked from herumi/xbyak

A JIT assembler for x86/x64 architectures supporting FPU, MMX, SSE (1-4), AVX (1-2, 512), APX, and AVX10.2

License

Notifications You must be signed in to change notification settings

ifquant/xbyak

Repository files navigation

Xbyak 7.30 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

About

A JIT assembler for x86/x64 architectures supporting FPU, MMX, SSE (1-4), AVX (1-2, 512), APX, and AVX10.2

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.2%
  • Python 1.3%
  • C 0.7%
  • Batchfile 0.6%
  • Makefile 0.5%
  • Shell 0.4%
  • Other 0.3%

AltStyle によって変換されたページ (->オリジナル) /