aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2016-08-15 11:04:22 +0900
committerMITSUNARI Shigeo <[email protected]>2016-08-15 11:04:22 +0900
commit4cc35dbec0e2eb4d66205f12ea3fab9d8622f99f (patch)
treee98ede8516e6b6152fcfe6a28e66dd65ee6612f5
parenteeee56fb26e77ee118e8044171e0f8a0fe09a0c3 (diff)
downloadxbyak-4cc35dbec0e2eb4d66205f12ea3fab9d8622f99f.tar.gz
xbyak-4cc35dbec0e2eb4d66205f12ea3fab9d8622f99f.zip
xbyak_bin2hex.h does not included by xbyak.h
-rw-r--r--readme.md10
-rw-r--r--readme.txt12
-rw-r--r--test/make_nm.cpp1
-rw-r--r--xbyak/xbyak.h22
-rw-r--r--xbyak/xbyak_mnemonic.h2
5 files changed, 20 insertions, 27 deletions
diff --git a/readme.md b/readme.md
index 6ae2e78..b470496 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,5 @@
-Xbyak 5.01 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+Xbyak 5.02 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
=============
Abstract
@@ -297,12 +297,6 @@ Sample
* calc.cpp ; assemble and estimate a given polynomial(x86, x64)
* bf.cpp ; JIT brainfuck(x86, x64)
-Remark
--------------
-
-The current version does not support 3D Now!, 80bit FPU load/store and some special mnemonics.
-Please mail to me if necessary.
-
License
-------------
@@ -315,6 +309,8 @@ The header files under xbyak/ are independent of cybozulib.
History
-------------
+* 2016/Aug/15 ver 5.02 xbyak does not include xbyak_bin2hex.h
+* 2016/Aug/15 ver 5.011 fix detection of version of gcc 5.4
* 2016/Aug/03 ver 5.01 disable omitted operand
* 2016/Jun/24 ver 5.00 support avx-512 instruction set
* 2016/Jun/13 avx-512 add mask instructions
diff --git a/readme.txt b/readme.txt
index 51394af..b4383a0 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
- C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.01
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.02
-----------------------------------------------------------------------------
◎概要
@@ -317,14 +317,6 @@ calc.cpp ; 与えられた多項式をアセンブルして実行(x86, x64)
bf.cpp ; JIT Brainfuck(x86, x64)
-----------------------------------------------------------------------------
-◎注意
-
-MMX/SSE命令はほぼ全て実装されていますが、3D Now!命令や、一部の特殊な
-命令は現時点では実装されていません。FPUの80bit浮動小数はサポートしていません。
-
-何かご要望があればご連絡ください。
-
------------------------------------------------------------------------------
◎ライセンス
修正された新しいBSDライセンスに従います。
@@ -341,6 +333,8 @@ cybozulibは単体テストでのみ利用されていて、xbyak/ディレク�
-----------------------------------------------------------------------------
◎履歴
+2016/08/15 ver 5.02 xbyak_bin2hex.hをincludeしない
+2016/08/15 ver 5.011 gcc 5.4のバージョン取得ミスの修正
2016/08/03 ver 5.01 AVXの省略表記非サポート
2016/07/24 ver 5.00 avx-512フルサポート
2016/06/13 avx-512 opmask命令サポート
diff --git a/test/make_nm.cpp b/test/make_nm.cpp
index bcc780e..477a77f 100644
--- a/test/make_nm.cpp
+++ b/test/make_nm.cpp
@@ -1,5 +1,6 @@
#include <stdio.h>
#include "xbyak/xbyak.h"
+#include "xbyak/xbyak_bin2hex.h"
#include <stdlib.h>
#include <string.h>
#include "cybozu/inttype.hpp"
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index a785e07..a04ae45 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -31,6 +31,12 @@
#undef XBYAK_USE_MMAP_ALLOCATOR
#endif
+#ifdef __GNUC__
+ #define XBYAK_GNUC_PREREQ(major, minor) ((__GNUC__) * 100 + (__GNUC_MINOR__) >= (major) * 100 + (minor))
+#else
+ #define XBYAK_GNUC_PREREQ(major, minor) 0
+#endif
+
// This covers -std=(gnu|c)++(0x|11|1y), -stdlib=libc++, and modern Microsoft.
#if ((defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(_LIBCPP_VERSION) ||\
((__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)))
@@ -38,13 +44,11 @@
#define XBYAK_STD_UNORDERED_MAP std::unordered_map
#define XBYAK_STD_UNORDERED_MULTIMAP std::unordered_multimap
-// Clang/llvm-gcc and ICC-EDG in 'GCC-mode' always claim to be GCC 4.2, using
-// libstdcxx 20070719 (from GCC 4.2.1, the last GPL 2 version).
-// These headers have been expanded/fixed in various forks.
-// In F.S.F. 'real' GCC, issues with the tr headers were resolved in GCC 4.5.
-#elif defined(__GNUC__) && (__GNUC__ >= 4) && ((__GNUC_MINOR__ >= 5) || \
- ((__GLIBCXX__ >= 20070719) && (__GNUC_MINOR__ >= 2) && \
- (defined(__INTEL_COMPILER) || defined(__llvm__))))
+/*
+ Clang/llvm-gcc and ICC-EDG in 'GCC-mode' always claim to be GCC 4.2, using
+ libstdcxx 20070719 (from GCC 4.2.1, the last GPL 2 version).
+*/
+#elif XBYAK_GNUC_PREREQ(4, 5) || (XBYAK_GNUC_PREREQ(4, 2) && __GLIBCXX__ >= 20070719) || defined(__INTEL_COMPILER) || defined(__llvm__)
#include <tr1/unordered_map>
#define XBYAK_STD_UNORDERED_MAP std::tr1::unordered_map
#define XBYAK_STD_UNORDERED_MULTIMAP std::tr1::unordered_multimap
@@ -99,11 +103,9 @@
namespace Xbyak {
-#include "xbyak_bin2hex.h"
-
enum {
DEFAULT_MAX_CODE_SIZE = 4096,
- VERSION = 0x5010 /* 0xABCD = A.BC(D) */
+ VERSION = 0x5020 /* 0xABCD = A.BC(D) */
};
#ifndef MIE_INTEGER_TYPE_DEFINED
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index dcc7f2c..ace6e60 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "5.00"; }
+const char *getVersionString() const { return "5.02"; }
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); }