diff options
-rw-r--r-- | doc/changelog.md | 2 | ||||
-rw-r--r-- | doc/usage.md | 2 | ||||
-rw-r--r-- | readme.md | 40 |
3 files changed, 23 insertions, 21 deletions
diff --git a/doc/changelog.md b/doc/changelog.md index 1461f6e..e726488 100644 --- a/doc/changelog.md +++ b/doc/changelog.md @@ -1,6 +1,6 @@ # History -* 2024/Oct/15 ver 7.20 Fixed the specification of setDefaultEncoding, setDefaultEncodingAVX10./ +* 2024/Oct/15 ver 7.20 Fixed the specification of setDefaultEncoding, setDefaultEncodingAVX10. * 2024/Oct/15 ver 7.11 Added full support for AVX10.2 * 2024/Oct/13 ver 7.10 support AVX10 integer and fp16 vnni, media new instructions. setDefaultEncoding is extended. * 2024/Oct/10 ver 7.09.1 fix the names of vpcompressb and vpcompressw diff --git a/doc/usage.md b/doc/usage.md index dcb3e10..b8073ce 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -148,6 +148,8 @@ feature|AVX-VNNI-INT8, AVX512-FP16|AVX10.2 - Target functions: vmpsadbw, vpdpbssd, vpdpbssds, vpdpbsud, vpdpbsuds, vpdpbuud, vpdpbuuds, vpdpwsud vpdpwsuds vpdpwusd vpdpwusds vpdpwuud, vpdpwuuds, vmovd, vmovw - Remark: vmovd and vmovw several kinds of encoding such as AVX/AVX512F/AVX512-FP16/AVX10.2. +At first, I attempted to use EvexEncoding (resp. VexEncoding) instead of AVX10v2Encoding (resp. EvexEncoding) for `setDefaultEncodingAVX10`. +But I abandoned this idea when I found that `vmovd` and `vmovw` had different EVEX encodings in AVX512 and AVX10.2 ### Remark * `k1`, ..., `k7` are opmask registers. @@ -1,7 +1,7 @@ # Xbyak 7.20 [![Badge Build]][Build Status] -*A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)* +*A JIT assembler for x86/x64 architectures supporting advanced instruction sets up to AVX10.2* ## Menu @@ -11,15 +11,15 @@ ## Abstract -Xbyak is a C++ header library that enables dynamically to assemble x86(IA32), x64(AMD64, x86-64) mnemonic. +Xbyak is a C++ header-only library that enables dynamic assembly of x86/x64 instructions using mnemonics. -The pronunciation of Xbyak is `kəi-bja-k`. -It is named from a Japanese word [開闢](https://translate.google.com/?hl=ja&sl=ja&tl=en&text=%E9%96%8B%E9%97%A2&op=translate), which means the beginning of the world. +The pronunciation of Xbyak is `/kʌɪbjæk/` (kai-byak). -## Feature +The name is derived from the Japanese word [開闢](https://translate.google.com/?hl=ja&sl=ja&tl=en&text=%E9%96%8B%E9%97%A2&op=translate) (kaibyaku), which means "the beginning of the world" or "creation". -- header file only -- Intel/MASM like syntax +## Features +- Header-only library +- Intel/MASM-like syntax - Full support for AVX-512, APX, and AVX10.2 **Note**: @@ -32,22 +32,22 @@ If you want to use them, then specify `-fno-operator-names` option to gcc/clang. ### 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 +- 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. +- 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](#exception-less-mode) +- Support exception-less mode see. [Exception-less mode](#exception-less-mode) - `XBYAK_USE_MMAP_ALLOCATOR` will be defined on Linux/macOS unless `XBYAK_DONT_USE_MMAP_ALLOCATOR` is defined. ### Supported OS |