Skip to content
/ xbyak Public
forked from herumi/xbyak

a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header

License

Notifications You must be signed in to change notification settings

RPCSX/xbyak

This branch is 416 commits behind herumi/xbyak:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ce083a0 · Jul 5, 2023
Dec 2, 2022
Oct 10, 2021
Jul 5, 2023
Jul 5, 2023
Jun 27, 2023
Jul 5, 2023
Jul 5, 2023
Nov 20, 2020
Sep 9, 2022
Jul 5, 2023
Oct 7, 2021
Apr 8, 2020
Jul 5, 2023
Jul 5, 2023
Jul 5, 2023
Sep 16, 2019

Repository files navigation

Xbyak 6.70 Badge Build

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 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.

License

BSD-3-Clause License

Author

光成滋生 Mitsunari Shigeo

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

Sponsors welcome

GitHub Sponsor

About

a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.6%
  • Batchfile 0.7%
  • C 0.5%
  • Makefile 0.5%
  • Shell 0.4%
  • CMake 0.2%
  • Meson 0.1%