diff options
author | MITSUNARI Shigeo <[email protected]> | 2020-05-10 14:21:18 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2020-05-10 14:43:41 +0900 |
commit | 82b70e665918efc2ee348091742fd0237b3b68c5 (patch) | |
tree | 27222af74bb0c7876aabf6849ee152c3f00741b7 | |
parent | 2f6d9e3450fa5cc7fdf560dab9ed984c04997886 (diff) | |
download | xbyak-82b70e665918efc2ee348091742fd0237b3b68c5.tar.gz xbyak-82b70e665918efc2ee348091742fd0237b3b68c5.zip |
v5.911 ; XBYAK_USE_MMAP_ALLOCATOR is definedv5.911
-rw-r--r-- | readme.md | 6 | ||||
-rw-r--r-- | readme.txt | 5 | ||||
-rw-r--r-- | xbyak/xbyak.h | 6 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 2 |
4 files changed, 13 insertions, 6 deletions
@@ -1,6 +1,6 @@ [![Build Status](https://travis-ci.org/herumi/xbyak.png)](https://travis-ci.org/herumi/xbyak) -# Xbyak 5.91 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ +# Xbyak 5.911 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ ## Abstract @@ -15,6 +15,9 @@ Xbyak is a C++ header library that enables dynamically to assemble x86(IA32), x6 Use `and_()`, `or_()`, ... instead of `and()`, `or()`. If you want to use them, then specify `-fno-operator-names` option to gcc/clang. +### News +- `XBYAK_USE_MMAP_ALLOCATOR` will be defined on Linux/macOS unless `XBYAK_DONT_USE_MMAP_ALLOCATOR` is defined. + ### Supported OS * Windows Xp, Vista, Windows 7, Windows 10(32bit, 64bit) @@ -425,6 +428,7 @@ modified new BSD License http://opensource.org/licenses/BSD-3-Clause ## History +* 2020/May/10 ver 5.911 XBYAK_USE_MMAP_ALLOCATOR is defined unless XBYAK_DONT_USE_MMAP_ALLOCATOR is defined. * 2020/Apr/20 ver 5.91 accept mask register k0 (it means no mask) * 2020/Apr/09 ver 5.90 kmov{b,d,w,q} throws exception for an unsupported register * 2020/Feb/26 ver 5.891 fix typo of type @@ -1,5 +1,5 @@ - C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.91
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.911
-----------------------------------------------------------------------------
◎概要
@@ -35,6 +35,7 @@ xbyak_mnemonic.h Linuxではmake installで/usr/local/include/xbyakにコピーされます。
-----------------------------------------------------------------------------
◎下位互換性の破れ
+* XBYAK_USE_MMAP_ALLOCATORがデフォルトで有効になりました。従来の方式にする場合はXBYAK_DONT_USE_MMAP_ALLOCATORを定義してください。
* Xbyak::Errorの型をenumからclassに変更
** 従来のenumの値をとるにはintにキャストしてください。
* (古い)Reg32eクラスを(新しい)Reg32eとRegExpに分ける。
@@ -52,7 +53,6 @@ map countの最大値は/proc/sys/vm/max_map_countに書かれています。 デフォルトでは3万個ほどのXbyak::CodeGeneratorインスタンスを生成するとエラーになります。
test/mprotect_test.cppで確認できます。
これを避けるためにはmmapを使うMmapAllocatorを使ってください。
-将来この挙動がデフォルトになるかもしれません。
AutoGrowモード追加
@@ -371,6 +371,7 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から -----------------------------------------------------------------------------
◎履歴
+2020/05/10 ver 5.911 Linux/macOSでXBYAK_USE_MMAP_ALLOCATORがデフォルト有効になる
2020/04/20 ver 5.91 マスクレジスタk0を受け入れる(マスクをしない)
2020/04/09 ver 5.90 kmov{b,w,d,q}がサポートされないレジスタを受けると例外を投げる
2020/02/26 ver 5.891 zm0のtype修正
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h index 41409ec..57ab5ca 100644 --- a/xbyak/xbyak.h +++ b/xbyak/xbyak.h @@ -24,7 +24,9 @@ // #define XBYAK_DISABLE_AVX512 -//#define XBYAK_USE_MMAP_ALLOCATOR +#if !defined(XBYAK_USE_MMAP_ALLOCATOR) && !defined(XBYAK_DONT_USE_MMAP_ALLOCATOR) + #define XBYAK_USE_MMAP_ALLOCATOR +#endif #if !defined(__GNUC__) || defined(__MINGW32__) #undef XBYAK_USE_MMAP_ALLOCATOR #endif @@ -115,7 +117,7 @@ namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x5910 /* 0xABCD = A.BC(D) */ + VERSION = 0x5911 /* 0xABCD = A.BC(D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index f0ecb14..124bd49 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -1,4 +1,4 @@ -const char *getVersionString() const { return "5.91"; } +const char *getVersionString() const { return "5.911"; } void adc(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x10, 2); } void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); } void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); } |