diff options
author | MITSUNARI Shigeo <[email protected]> | 2019-11-29 15:09:17 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2019-11-29 15:09:17 +0900 |
commit | ca0e83950bd2b113f328c4177c924787eaa88033 (patch) | |
tree | 6fdb4fa22b8499fda944d063d58cb273bb61147c | |
parent | f32836da6f64d87856c8706aea2b647ef198d8c6 (diff) | |
download | xbyak-ca0e83950bd2b113f328c4177c924787eaa88033.tar.gz xbyak-ca0e83950bd2b113f328c4177c924787eaa88033.zip |
[changed] XBYAK_NO_OP_NAMES is defined
-rw-r--r-- | readme.md | 17 | ||||
-rw-r--r-- | readme.txt | 3 | ||||
-rw-r--r-- | xbyak/xbyak.h | 5 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 2 |
4 files changed, 14 insertions, 13 deletions
@@ -1,5 +1,5 @@ -# Xbyak 5.83 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ +# Xbyak 5.84 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ ## Abstract @@ -10,13 +10,10 @@ This is a header file which enables dynamically to assemble x86(IA32), x64(AMD64 * Intel/MASM like syntax * fully support AVX-512 -**Note**: Xbyak uses and(), or(), xor(), not() functions, so `-fno-operator-names` option is necessary for gcc/clang. - -Or define `XBYAK_NO_OP_NAMES` before including `xbyak.h` and use and_(), or_(), xor_(), not_() instead of them. - -and_(), or_(), xor_(), not_() are always available. - -`XBYAK_NO_OP_NAMES` will be defined in the feature version. +**Note**: +The default setting has changed: `XBYAK_NO_OP_NAMES` is defined unless `XBYAK_USE_OP_NAMES` is defined. +Use `and_()`, `or_(), ... instead of `and()`, `or()`. +If you want to use `and()`, `or()`,... then specify `-DXBYAK_USE_OP_NAMES -fno-operator-names` option to gcc/clang. ### Supported OS @@ -47,7 +44,6 @@ These files are copied into `/usr/local/include/xbyak`. Inherit `Xbyak::CodeGenerator` class and make the class method. ``` -#define XBYAK_NO_OP_NAMES #include <xbyak/xbyak.h> struct Code : Xbyak::CodeGenerator { @@ -375,7 +371,7 @@ See [protect-re.cpp](sample/protect-re.cpp). * **XBYAK64** is defined on 64bit. * **XBYAK64_WIN** is defined on 64bit Windows(VC) * **XBYAK64_GCC** is defined on 64bit gcc, cygwin -* define **XBYAK_NO_OP_NAMES** on gcc without `-fno-operator-names` +* define **XBYAK_USE_OP_NAMES** on gcc with `-fno-operator-names` if you want to use `and()`, .... * define **XBYAK_ENABLE_OMITTED_OPERAND** if you use omitted destination such as `vaddps(xmm2, xmm3);`(deprecated in the future) * define **XBYAK_UNDEF_JNL** if Bessel function jnl is defined as macro @@ -392,6 +388,7 @@ modified new BSD License http://opensource.org/licenses/BSD-3-Clause ## History +* 2019/Nov/29 ver 5.84 [changed] XBYAK_NO_OP_NAMES is defined unless XBYAK_USE_OP_NAMES is defined * 2019/Oct/12 ver 5.83 exit(1) was removed * 2019/Sep/23 ver 5.82 support monitorx, mwaitx, clzero (thanks to @MagurosanTeam) * 2019/Sep/14 ver 5.81 support some generic mnemonics. @@ -1,5 +1,5 @@ - C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.83
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.84
-----------------------------------------------------------------------------
◎概要
@@ -373,6 +373,7 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から -----------------------------------------------------------------------------
◎履歴
+2019/12/29 ver 5.84 [変更] XBYAK_USE_OP_NAMESが定義されていない限りXBYAK_NO_OP_NAMESが定義されるように変更
2019/10/12 ver 5.83 exit(1)の除去
2019/09/23 ver 5.82 monitorx, mwaitx, clzero対応 (thanks to MagurosanTeam)
2019/09/14 ver 5.81 いくつかの一般命令をサポート
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h index 48f3efb..e4a47f4 100644 --- a/xbyak/xbyak.h +++ b/xbyak/xbyak.h @@ -9,6 +9,9 @@ @note modified new BSD license http://opensource.org/licenses/BSD-3-Clause */ +#if !defined(XBYAK_USE_OP_NAMES) && !defined(XBYAK_NO_OP_NAMES) + #define XBYAK_NO_OP_NAMES +#endif #ifndef XBYAK_NO_OP_NAMES #if not +0 // trick to detect whether 'not' is operator or not #error "use -fno-operator-names option if you want to use and(), or(), xor(), not() as function names, Or define XBYAK_NO_OP_NAMES and use and_(), or_(), xor_(), not_()." @@ -113,7 +116,7 @@ namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x5830 /* 0xABCD = A.BC(D) */ + VERSION = 0x5840 /* 0xABCD = A.BC(D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index 308dbf6..3ebb141 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -1,4 +1,4 @@ -const char *getVersionString() const { return "5.83"; } +const char *getVersionString() const { return "5.84"; } 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); } |