* [2SF] Used more up-to-date asmjit, despite the ugly looking code.
| ... | ... |
@@ -1,60 +1,48 @@ |
| 1 | 1 |
// [AsmJit] |
| 2 |
-// Complete JIT Assembler for C++ Language. |
|
| 2 |
+// Complete x86/x64 JIT and Remote Assembler for C++. |
|
| 3 | 3 |
// |
| 4 | 4 |
// [License] |
| 5 |
-// Zlib - See COPYING file in this package. |
|
| 5 |
+// Zlib - See LICENSE.md file in the package. |
|
| 6 | 6 |
|
| 7 | 7 |
#pragma once |
| 8 | 8 |
|
| 9 |
-// This file is designed to be modifyable. Platform specific changes should |
|
| 10 |
-// be applied to this file so it's guaranteed that never versions of AsmJit |
|
| 11 |
-// library will never overwrite generated config files. |
|
| 9 |
+// This file can be used to modify built-in features of AsmJit. AsmJit is by |
|
| 10 |
+// default compiled only for host processor to enable JIT compilation. Both |
|
| 11 |
+// Assembler and Compiler code generators are compiled by default. |
|
| 12 | 12 |
// |
| 13 |
-// So modify this file by your build system or by hand. |
|
| 14 |
- |
|
| 15 |
-// ============================================================================ |
|
| 16 |
-// [AsmJit - OS] |
|
| 17 |
-// ============================================================================ |
|
| 18 |
- |
|
| 19 |
-// Provides definitions about your operating system. It's detected by default, |
|
| 20 |
-// so override it if you have problems with automatic detection. |
|
| 13 |
+// ASMJIT_BUILD_... flags can be defined to build additional backends that can |
|
| 14 |
+// be used for remote code generation. |
|
| 21 | 15 |
// |
| 22 |
-// #define ASMJIT_WINDOWS |
|
| 23 |
-// #define ASMJIT_POSIX |
|
| 24 |
- |
|
| 25 |
-// ============================================================================ |
|
| 26 |
-// [AsmJit - Architecture] |
|
| 27 |
-// ============================================================================ |
|
| 28 |
- |
|
| 29 |
-// Provides definitions about your cpu architecture. It's detected by default, |
|
| 30 |
-// so override it if you have problems with automatic detection. |
|
| 31 |
- |
|
| 32 |
-// #define ASMJIT_X86 |
|
| 33 |
-// #define ASMJIT_X64 |
|
| 16 |
+// ASMJIT_DISABLE_... flags can be defined to disable standard features. These |
|
| 17 |
+// are handy especially when building asmjit statically and some features are |
|
| 18 |
+// not needed or unwanted (like Compiler). |
|
| 34 | 19 |
|
| 35 | 20 |
// ============================================================================ |
| 36 |
-// [AsmJit - API] |
|
| 21 |
+// [AsmJit - Build-Type] |
|
| 37 | 22 |
// ============================================================================ |
| 38 | 23 |
|
| 39 |
-// If you are embedding AsmJit library into your project (statically), undef |
|
| 40 |
-// ASMJIT_API macro. |
|
| 41 |
-#define ASMJIT_API |
|
| 24 |
+#define ASMJIT_EMBED // Asmjit is embedded (implies ASMJIT_STATIC). |
|
| 25 |
+// #define ASMJIT_STATIC // Define to enable static-library build. |
|
| 42 | 26 |
|
| 43 | 27 |
// ============================================================================ |
| 44 |
-// [AsmJit - Memory Management] |
|
| 28 |
+// [AsmJit - Build-Mode] |
|
| 45 | 29 |
// ============================================================================ |
| 46 | 30 |
|
| 47 |
-// #define ASMJIT_MALLOC ::malloc |
|
| 48 |
-// #define ASMJIT_REALLOC ::realloc |
|
| 49 |
-// #define ASMJIT_FREE ::free |
|
| 31 |
+// #define ASMJIT_DEBUG // Define to enable debug-mode. |
|
| 32 |
+// #define ASMJIT_RELEASE // Define to enable release-mode. |
|
| 33 |
+// #define ASMJIT_TRACE // Define to enable tracing. |
|
| 50 | 34 |
|
| 51 | 35 |
// ============================================================================ |
| 52 |
-// [AsmJit - Debug] |
|
| 36 |
+// [AsmJit - Features] |
|
| 53 | 37 |
// ============================================================================ |
| 54 | 38 |
|
| 55 |
-// Turn debug on/off (to bypass autodetection) |
|
| 56 |
-// #define ASMJIT_DEBUG |
|
| 57 |
-// #define ASMJIT_NO_DEBUG |
|
| 39 |
+// If none of these is defined AsmJit will select host architecture by default. |
|
| 40 |
+// #define ASMJIT_BUILD_X86 // Define to enable x86 instruction set (32-bit). |
|
| 41 |
+// #define ASMJIT_BUILD_X64 // Define to enable x64 instruction set (64-bit). |
|
| 42 |
+// #define ASMJIT_BUILD_HOST // Define to enable host instruction set. |
|
| 58 | 43 |
|
| 59 |
-// Setup custom assertion code. |
|
| 60 |
-// #define ASMJIT_ASSERT(exp) do { if (!(exp)) ::AsmJit::assertionFailure(__FILE__, __LINE__, #exp); } while(0)
|
|
| 44 |
+// AsmJit features are enabled by default. |
|
| 45 |
+// #define ASMJIT_DISABLE_COMPILER // Disable Compiler (completely). |
|
| 46 |
+// #define ASMJIT_DISABLE_LOGGER // Disable Logger (completely). |
|
| 47 |
+// #define ASMJIT_DISABLE_NAMES // Disable everything that uses strings |
|
| 48 |
+ // (instruction names, error names, ...). |
| ... | ... |
@@ -4,9 +4,7 @@ |
| 4 | 4 |
// [License] |
| 5 | 5 |
// Zlib - See COPYING file in this package. |
| 6 | 6 |
|
| 7 |
-// [Guard] |
|
| 8 |
-#ifndef _ASMJIT_CONFIG_H |
|
| 9 |
-#define _ASMJIT_CONFIG_H |
|
| 7 |
+#pragma once |
|
| 10 | 8 |
|
| 11 | 9 |
// This file is designed to be modifyable. Platform specific changes should |
| 12 | 10 |
// be applied to this file so it's guaranteed that never versions of AsmJit |
| ... | ... |
@@ -60,6 +58,3 @@ |
| 60 | 58 |
|
| 61 | 59 |
// Setup custom assertion code. |
| 62 | 60 |
// #define ASMJIT_ASSERT(exp) do { if (!(exp)) ::AsmJit::assertionFailure(__FILE__, __LINE__, #exp); } while(0)
|
| 63 |
- |
|
| 64 |
-// [Guard] |
|
| 65 |
-#endif // _ASMJIT_CONFIG_H |
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,65 @@ |
| 1 |
+// [AsmJit] |
|
| 2 |
+// Complete JIT Assembler for C++ Language. |
|
| 3 |
+// |
|
| 4 |
+// [License] |
|
| 5 |
+// Zlib - See COPYING file in this package. |
|
| 6 |
+ |
|
| 7 |
+// [Guard] |
|
| 8 |
+#ifndef _ASMJIT_CONFIG_H |
|
| 9 |
+#define _ASMJIT_CONFIG_H |
|
| 10 |
+ |
|
| 11 |
+// This file is designed to be modifyable. Platform specific changes should |
|
| 12 |
+// be applied to this file so it's guaranteed that never versions of AsmJit |
|
| 13 |
+// library will never overwrite generated config files. |
|
| 14 |
+// |
|
| 15 |
+// So modify this file by your build system or by hand. |
|
| 16 |
+ |
|
| 17 |
+// ============================================================================ |
|
| 18 |
+// [AsmJit - OS] |
|
| 19 |
+// ============================================================================ |
|
| 20 |
+ |
|
| 21 |
+// Provides definitions about your operating system. It's detected by default, |
|
| 22 |
+// so override it if you have problems with automatic detection. |
|
| 23 |
+// |
|
| 24 |
+// #define ASMJIT_WINDOWS |
|
| 25 |
+// #define ASMJIT_POSIX |
|
| 26 |
+ |
|
| 27 |
+// ============================================================================ |
|
| 28 |
+// [AsmJit - Architecture] |
|
| 29 |
+// ============================================================================ |
|
| 30 |
+ |
|
| 31 |
+// Provides definitions about your cpu architecture. It's detected by default, |
|
| 32 |
+// so override it if you have problems with automatic detection. |
|
| 33 |
+ |
|
| 34 |
+// #define ASMJIT_X86 |
|
| 35 |
+// #define ASMJIT_X64 |
|
| 36 |
+ |
|
| 37 |
+// ============================================================================ |
|
| 38 |
+// [AsmJit - API] |
|
| 39 |
+// ============================================================================ |
|
| 40 |
+ |
|
| 41 |
+// If you are embedding AsmJit library into your project (statically), undef |
|
| 42 |
+// ASMJIT_API macro. |
|
| 43 |
+#define ASMJIT_API |
|
| 44 |
+ |
|
| 45 |
+// ============================================================================ |
|
| 46 |
+// [AsmJit - Memory Management] |
|
| 47 |
+// ============================================================================ |
|
| 48 |
+ |
|
| 49 |
+// #define ASMJIT_MALLOC ::malloc |
|
| 50 |
+// #define ASMJIT_REALLOC ::realloc |
|
| 51 |
+// #define ASMJIT_FREE ::free |
|
| 52 |
+ |
|
| 53 |
+// ============================================================================ |
|
| 54 |
+// [AsmJit - Debug] |
|
| 55 |
+// ============================================================================ |
|
| 56 |
+ |
|
| 57 |
+// Turn debug on/off (to bypass autodetection) |
|
| 58 |
+// #define ASMJIT_DEBUG |
|
| 59 |
+// #define ASMJIT_NO_DEBUG |
|
| 60 |
+ |
|
| 61 |
+// Setup custom assertion code. |
|
| 62 |
+// #define ASMJIT_ASSERT(exp) do { if (!(exp)) ::AsmJit::assertionFailure(__FILE__, __LINE__, #exp); } while(0)
|
|
| 63 |
+ |
|
| 64 |
+// [Guard] |
|
| 65 |
+#endif // _ASMJIT_CONFIG_H |