summaryrefslogtreecommitdiff
path: root/erts/emulator/asmjit/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/asmjit/core.h')
-rw-r--r--erts/emulator/asmjit/core.h56
1 files changed, 29 insertions, 27 deletions
diff --git a/erts/emulator/asmjit/core.h b/erts/emulator/asmjit/core.h
index 4406ed89f3..e586734e49 100644
--- a/erts/emulator/asmjit/core.h
+++ b/erts/emulator/asmjit/core.h
@@ -105,40 +105,37 @@ namespace asmjit {
//!
//! - Tested:
//!
-//! - **Clang** - Tested by GitHub Actions - Clang 3.9+ (with C++11 enabled) is officially supported (older Clang
-//! versions having C++11 support are probably fine, but are not regularly tested).
+//! - **Clang** - Tested by GitHub Actions - Clang 10+ is officially supported and tested by CI, older Clang versions
+//! having C++11 should work, but are not tested anymore due to upgraded CI images.
//!
-//! - **GNU** - Tested by GitHub Actions - GCC 4.8+ (with C++11 enabled) is officially supported.
+//! - **GNU** - Tested by GitHub Actions - GCC 7+ is officially supported, older GCC versions from 4.8+ having C++11
+//! enabled should also work, but are not tested anymore due to upgraded CI images.
//!
-//! - **MINGW** - Should work, but it's not tested in our CI environment.
+//! - **MINGW** - Reported to work, but not tested in our CI environment (help welcome).
//!
-//! - **MSVC** - Tested by GitHub Actions - VS2017+ is officially supported, VS2015 is reported to work.
-//!
-//! - Untested:
-//!
-//! - **Intel** - No maintainers and no CI environment to regularly test this compiler.
-//!
-//! - **Other** C++ compilers would require basic support in
-//! [core/api-config.h](https://github.com/asmjit/asmjit/tree/master/src/asmjit/core/api-config.h).
+//! - **MSVC** - Tested by GitHub Actions - VS2019+ is officially supported, VS2015 and VS2017 is reported to work,
+//! but not tested by CI anymore.
//!
//! ### Supported Operating Systems and Platforms
//!
//! - Tested:
//!
-//! - **Linux** - Tested by GitHub Actions (any distribution is generally supported).
+//! - **BSD** - FreeBSD, NetBSD, and OpenBSD tested by GitHub Actions (only recent images are tested by CI). BSD
+//! runners only test BSD images with clang compiler.
//!
-//! - **Mac OS** - Tested by GitHub Actions (any version is supported).
+//! - **Linux** - Tested by GitHub Actions (only recent Ubuntu images are tested by CI, in general any distribution
+//! should be supported as AsmJit has no dependencies).
+//!
+//! - **Mac OS** - Tested by GitHub Actions.
//!
//! - **Windows** - Tested by GitHub Actions - (Windows 7+ is officially supported).
//!
//! - **Emscripten** - Works if compiled with \ref ASMJIT_NO_JIT. AsmJit cannot generate WASM code, but can be
-//! used to generate X86/X64 code within a browser, for example.
+//! used to generate X86/X64/AArch64 code within a browser, for example.
//!
//! - Untested:
//!
-//! - **BSDs** - No maintainers, no CI environment to regularly test BSDs, but they should work out of box.
-//!
-//! - **Haiku** - Not regularly tested, but reported to work.
+//! - **Haiku** - Reported to work, not tested by CI.
//!
//! - **Other** operating systems would require some testing and support in the following files:
//! - [core/api-config.h](https://github.com/asmjit/asmjit/tree/master/src/asmjit/core/api-config.h)
@@ -149,7 +146,7 @@ namespace asmjit {
//!
//! - **X86** and **X86_64** - Both 32-bit and 64-bit backends tested on CI.
//! - **AArch64** - AArch64 backend is currently only partially tested (there is no native AArch64 runner to test
-//! AsmJit Builder/Compiler)
+//! AsmJit Builder/Compiler).
//!
//! ### Static Builds and Embedding
//!
@@ -454,7 +451,8 @@ namespace asmjit {
//! JitRuntime rt; // Runtime specialized for JIT code execution.
//!
//! CodeHolder code; // Holds code and relocation information.
-//! code.init(rt.environment()); // Initialize code to match the JIT environment.
+//! code.init(rt.environment(), // Initialize code to match the JIT environment.
+//! rt.cpuFeatures());
//!
//! x86::Assembler a(&code); // Create and attach x86::Assembler to code.
//! a.mov(x86::eax, 1); // Move one to eax register.
@@ -599,9 +597,10 @@ namespace asmjit {
//! int main() {
//! // Create a custom environment that matches the current host environment.
//! Environment env = Environment::host();
+//! CpuFeatures cpuFeatures = CpuInfo::host().features();
//!
//! CodeHolder code; // Create a CodeHolder.
-//! code.init(env); // Initialize CodeHolder with environment.
+//! code.init(env, cpuFeatures); // Initialize CodeHolder with environment.
//!
//! x86::Assembler a(&code); // Create and attach x86::Assembler to `code`.
//!
@@ -722,10 +721,11 @@ namespace asmjit {
//!
//! void initializeCodeHolder(CodeHolder& code) {
//! Environment env = Environment::host();
+//! CpuFeatures cpuFeatures = CpuInfo::host().features();
//! uint64_t baseAddress = uint64_t(0x1234);
//!
//! // initialize CodeHolder with environment and custom base address.
-//! code.init(env, baseAddress);
+//! code.init(env, cpuFeatures, baseAddress);
//! }
//! ```
//!
@@ -1346,7 +1346,8 @@ namespace asmjit {
//! FileLogger logger(stdout); // Logger should always survive CodeHolder.
//!
//! CodeHolder code; // Holds code and relocation information.
-//! code.init(rt.environment()); // Initialize to the same arch as JIT runtime.
+//! code.init(rt.environment(), // Initialize code to match the JIT environment.
+//! rt.cpuFeatures());
//! code.setLogger(&logger); // Attach the `logger` to `code` holder.
//!
//! // ... code as usual, everything emitted will be logged to `stdout` ...
@@ -1369,7 +1370,8 @@ namespace asmjit {
//! StringLogger logger; // Logger should always survive CodeHolder.
//!
//! CodeHolder code; // Holds code and relocation information.
-//! code.init(rt.environment()); // Initialize to the same arch as JIT runtime.
+//! code.init(rt.environment(), // Initialize code to match the JIT environment.
+//! rt.cpuFeatures());
//! code.setLogger(&logger); // Attach the `logger` to `code` holder.
//!
//! // ... code as usual, logging will be concatenated to logger string ...
@@ -1494,7 +1496,7 @@ namespace asmjit {
//! using namespace asmjit;
//!
//! void formattingExample(BaseBuilder* builder) {
-//! FormatFlags formatFlags = FormatFlags::kNone;
+//! FormatOptions formatOptions {};
//!
//! // This also shows how temporary strings can be used.
//! StringTmp<512> sb;
@@ -1503,7 +1505,7 @@ namespace asmjit {
//! // were zero (no extra flags), and the builder instance, which we have
//! // provided. An overloaded version also exists, which accepts begin and
//! // and end nodes, which can be used to only format a range of nodes.
-//! Formatter::formatNodeList(sb, formatFlags, builder);
+//! Formatter::formatNodeList(sb, formatOptions, builder);
//!
//! // You can do whatever else with the string, it's always null terminated,
//! // so it can be passed to C functions like printf().
@@ -1560,7 +1562,7 @@ namespace asmjit {
//! MyErrorHandler myErrorHandler;
//! CodeHolder code;
//!
-//! code.init(rt.environment());
+//! code.init(rt.environment(), rt.cpuFeatures());
//! code.setErrorHandler(&myErrorHandler);
//!
//! x86::Assembler a(&code);